自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 程序员的一生,架构师进阶之路

项目地址

2021-02-26 17:15:41 209

原创 MySQL主键id丢失解决方案

适用场景:有备份的空表,现在某个正式环境由于误操作,数据存在,但是主键部分丢失,手动修改工作量大,可使用此方案。table_schema :更换你自己的数据库。复制出组装拼接好的sql,运行一遍即可。

2023-06-02 10:59:26 466 1

原创 openGauss5.0.0单节点安装

su omm将将文件增加一行内容。

2023-05-24 14:42:31 1159

原创 【openGauss】一键编译openGauss5.0+dolphin,体验新增的mysql兼容特性

本文参考:https://www.darkathena.top/archives/one-key-build-opengauss-and-dolphin。使用emt,密码:Sinvie@123,端口号5432,postgresql协议。新建一个/opt/onekey-build-og.sh文件,存入以下内容。新建一个/opt/install.sh文件,存入以下内容。对onekey-build-og.sh 授权可执行。如果机器上没有安装mysql客户端,则先安装一下。表名大小写敏感及反引号。

2023-05-19 13:26:29 1051

原创 避免for循环里面查数据库的思路

未优化前的代码:for循环里面再去查一遍数据,要是appTasks数据量几百上千个,就要相当于查了几百上千次数据库,查询就会很慢。优化后的代码,就是比较费cpu,有利有弊吧,比起迭代查数据库,还是好很多。需求:避免for循环里面查数据库。

2023-04-25 13:51:52 1451

原创 兼容多套数据库的sql最佳实践

sql兼容多套数据库

2023-02-20 09:52:05 778 1

原创 jar包启动脚本示例

【代码】jar包启动脚本示例。

2023-02-03 14:09:58 420

原创 docker安装达梦数据库最佳实践

docker安装达梦数据库最佳实践

2022-12-16 10:58:03 2537

原创 IDEA使用git的Undo commit失败后,再次commit无法显示之前修改过的文件

idea的git提交相关

2022-09-27 14:31:58 2070

原创 EasyExcel复杂excel导入

easyexcel处理复杂的excel

2022-08-16 14:46:17 6718 1

原创 seata1.5.1安装(nacos作为注册以及配置中心,mysql8作为存储中心)

seata1.5.1安装,nacos2.x作为注册中心、mysql8.x作为存储

2022-06-26 17:35:00 3391 18

原创 gitlab多模块工程单个模块实现自动化部署(CI/CD)

演示目的:多模块的工程,可以在gitlab上进行单个模块的自动化部署,不,这里是手动打包部署,应该叫做半自动化。这里只做参考,告诉大家gitlab可以在多模块工程中实现单个模块的自动化部署。环境说明两个服务器上的部署:192.168.10.113:docker、gitlab、gitlab-runner192.168.10.114:gateway服务、web-demo服务、maven、git、docker需求:gateway和web-demo两个服务都在同一个工程下,工程结构如下:sa

2022-05-18 16:07:51 4186 7

原创 MarkText + picgo图床选择(GitHub或MinIO)

picgo可以设置很多图床,这里重点介绍GitHub和minio,其他图床可去自行去官网查看摸索踩坑。介绍 | PicGo-CoreGitHub作为图床友好提示:目前Gitee做了盗链处理,不能作为图床了。上传图片到Gitee时,报403错误码(我踩了坑,你去踩一踩也没事),所以用图床Github算了很不想将Github作为图床,但是人穷,我也很无奈啊,一分钱难倒英雄汉。一:我国屏蔽了Github的图片,我每次都是翻墙才能查看GitHub的图片二:万一GitHub和Gitee一样,做了处.

2022-04-24 16:43:52 3235 8

原创 Springboot + websocket

Springboot + websocketSpring + WebSocket的官方文档WebSocket是一种双向通信协议。在建立连接后,WebSocket服务器端和客户端都能主动向对方发送或接收数据。快速开始WebSocket服务端pom.xml加入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta

2022-02-28 17:37:52 2284

原创 java ISO 8601 日期格式进行转换

ISO 8601 日期格式进行转换痛点懂的都懂,烦死啦!嘤嘤嘤。时间是让人猝不及防的东西,有时天晴,有时雨。如果时间有个倒退时光的API,我愿意回到原始社会,那里没有汽车,没有高楼,没有电脑,更不会有让人将时间转换为各种时间格式的需求,每天过着简单的生活,早上起来,先去看下昨天做的陷阱,有没有猎物掉进去,中午在树荫下沉思,手里搞几个水果,没事啃两口,傍晚看着夕阳,吹着晚风,围坐在篝火旁,忆往昔,峥嵘岁月稠,虽然可能也许大概maybe上顿吃了不晓得下一顿在哪里,也无妨,毕竟大家都一样。方案一(不好用)

2022-01-14 14:53:56 8980 3

原创 springboot添加第三方jar包

1:第一步,找到第三方jar包的位置。上面是连接weblogic的一个jar包,保存在E:\j2ee\weblogic文件夹下。2:cmd命令进入E:\j2ee\weblogic,执行命令:mvn install:install-file -DgroupId=com.weblogic -DartifactId=weblogic -Dversion=1.0.1 -Dpackag...

2022-01-10 11:35:07 2075

原创 activeMQ重启后,消费者不能正常消费消息

这里只讨论topic模式的吐槽:这个世界上竟然还有人在使用activeMQ的,这是我没想到的,根本不会用,要不是服务出问题了,测试环境瞎几把乱点,终于搞明白了一丢丢1.首先可进入mq的管理页面(ip:8161),点击Manage ActiveMQ broker2.点击topic,进入列表3.搜索你的topic名称,会发现有三个,说明是正常的,我的topic叫CtiNotify第①张图第②张图第③张图点击CtiNotify,可以在这个topic中发布消息,要是消费服务中做了消息打印,就

2021-12-03 13:47:24 3411

原创 jpa+queryDSL使用Projections的一些坑点

不熟悉的花十分钟看看入门的,也无妨jpa+queryDSL入门踩坑经历:需求: 连表查询时,使用Projections对象,按需选择返回字段组装成一个VO对象坑点: 返回的字段有Integer对象,如id字段; 也有String对象,如title字段,但是查询到的id字段一直为null。天才可以忽略以下一段话,搞了一上午,反反复复测试、百度,都没有看到相关的资料,功夫不负有心人,瞎猫撞见死耗子,换了个方法查询之后,啥都有了。一度怀疑是源码有bug,但是看源码是不可能看源码的,这辈子都不可能去看源码

2021-11-15 16:41:42 4568 3

原创 spring boot微服务设置开机自启动

spring boot微服务设置开机自启动痛点:一般微服务依赖于其他中间件,例如,需要先启动数据库,redis,mq等等,这就涉及到了一个服务启动的先后顺序。目前,单个微服务的部署,我没看到有什么好的方案可以解决。除非使用镜像化,docker-compose文件中倒是可以设置服务依赖顺序。折中的方案将服务加入到系统自启动,然后延迟两分钟,两分钟时间,这些中间件应该都启动好了,时间自己根据实际情况调节。在/usr/lib/systemd/system/目录下新建自启动脚本,后缀是xxx.servi

2021-11-02 15:03:33 1339

原创 重复添加字段,索引的sql脚本

解决痛点:解决重复执行的sql脚本,添加字段或者索引sql,会报错的问题添加字段DELIMITER //CREATE PROCEDURE alter_mail_contactor()BEGIN IF NOT EXISTS(SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'mail_contactor' AND COLUMN_NAME = 'l

2021-10-21 11:33:27 482

原创 springboot+flyway使用

flyway使用用途:初始化数据库,支持数据库脚本的版本管理第一步:springboot已经集成了flyway,加入依赖时并不需要添加版本号<!-- 添加 flyway 的依赖开始 --><dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId></dependency><!-- flywa

2021-07-29 14:49:09 2196 2

原创 maven私服仓库搭建、上传或者拉取jar包

maven私服仓库搭建参考:https://www.cnblogs.com/wuwei928/p/10338307.html一、使用Docker安装Nexusdocker pull sonatype/nexus3mkdir -p /data/nexus-datachown -R 200 /data/nexus-datadocker run -tid -p 8081:8081 --name nexus -e NEXUS_CONTEXT=nexus -v /data/nexus-data:/nexu

2021-06-28 16:36:25 3413

原创 springboot操作cookie

在响应中添加cookie@RequestMapping(value="/casLogin", method= RequestMethod.GET)public CommonResult<String> casLogin(HttpServletResponse response, @RequestParam String accessToken, @RequestParam String refreshToken) { try { Cookie a.

2021-04-13 13:02:38 3733

原创 jpa+QueryDSL

QueryDSL简介QueryDSL仅仅是一个通用的查询框架,专注于通过Java API构建类型安全的SQL查询。Querydsl可以通过一组通用的查询API为用户构建出适合不同类型ORM框架或者是SQL的查询语句,也就是说QueryDSL是基于各种ORM框架以及SQL之上的一个通用的查询框架。借助QueryDSL可以在任何支持的ORM框架或者SQL平台上以一种通用的API方式来构建查询。目前QueryDSL支持的平台包括JPA,JDO,SQL,Java Collections,Mongodb,L

2021-03-29 10:24:43 4747

原创 get和post请求的sql盲注防护

get和post请求的sql盲注防护网上很多方案都只拦截了get请求,但是涉及到post请求的资料却很少。踩了一些坑,这里给大家分享一波,希望大家少踩坑吧,哪里有不妥的地方,欢迎各位斧正只拦截get请求,post请求类型Content-Type为application/json的,否则,会被拦截,例如上传个图片是不行的,图片转码后,有太多的特殊敏感字符,会被sql拦截器拦住,导致上传失败。SqlInjectFilter由于实现filter只能处理一次post请求流,所以用到了包装类sqlIn

2021-03-18 13:39:58 727

原创 Docker搭建redis集群

Docker搭建redis集群这里主要介绍redis的cluster集群,其他两种集群请看最后章节环境介绍Docker 版本:19.03.12Docker 版本:docker-compose version 1.24.0, build 0aa59064Redis 版本:6.0.8系统版本:CoreOS 7.8简介在 Redis 3.0 版本后正式推出 Redis 集群模式,该模式是 Redis 的分布式的解决方案,是一个提供在多个 Redis 节点间共享数据的程序集,且 Redis 集

2021-02-25 13:44:56 906

原创 验证码倒计时的处理

//获取验证码 $("#codeTips").click(function () { let phoneNum = $("#phoneNum").val(); if (!$.trim(phoneNum)) { alert("请填写手机号!") return; } var phoneFlag = handleVali('phone'); if (phoneFlag ==

2021-02-25 11:26:25 260

原创 获取页面url的参数

/** 获取页面url的参数 例如url:http://128.192.111.64:8101/html/manage/areanode_add.html?nodeCode=430&trandom=0.23213661104649708 可以拿到[nodeCode[430],trandom[0.23213661104649708]]这种形式的数组 通过var nodeCode = getUrlVars()["nodeCode"]可以拿到430这个值

2021-02-25 11:23:11 612

原创 脚手架模块化搭建步骤

新建父子项目父模块pom.xml中引入依赖,确定各依赖的版本号<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http:/.

2021-01-12 13:57:24 275 1

原创 MyCat多租户方案

Mycat使用tar包部署MyCAT 是使用 JAVA 语言进行编写开发,使用前需要先安装 JAVA 运行环境(JRE),由于 MyCAT 中使用了JDK7 中的一些特性,所以要求必须在 JDK7 以上的版本上运行。环境准备jdk安装先查看系统是否已有自带的jdkrpm -qa |grep javarpm -qa |grep jdkrpm -qa |grep gcj如果没有输出信息,则说明系统没有安装。如果有输出信息,则执行下面的命令卸载rpm -qa | grep j

2021-01-07 14:57:05 1633 2

原创 mysql数据库主从、全量、增量备份还原

数据库主从、全量、增量情景一主数据库的服务器发生停电,宕机,机房发生了地震,海啸,战争等天灾人祸方案:主从备份优点:数据库自带备份功能,配置简单缺点:影响所有租户的使用情景二相关运维人员误删表数据方案:全量备份优点:可以备份全部数据缺点:由于每次需要备份还原的数据量相当大,因此备份还原所需时间较长。情景三某个租户误删除数据方案:增量备份。在测试库还原全量备份数据,然后再还原最近的增量数据。最后使用dts迁移工具,实现当前租户数据的还原。优点:没有重复数据

2021-01-07 14:45:04 1723

原创 Sharding-Sphere vs Mycat vs TiDB

中间件分库分表 vs NewSQL数据库中间件:Sharding-Sphere、MycatnewSQL:Spanner、TiDB、OBNewSQL优点:传统数据库面向磁盘设计,基于内存的存储管理及并发控制,NewSQL数据库那般高效利用中间件模式SQL解析、执行计划优化等在中间件与数据库中重复工作,效率相比较低分布式事务相比于XA进行了优化,性能更高基于paxos(或Raft)协议的多副本,实现了真正的高可用、高可靠天生支持数据分片,数据的迁移、扩容都是自动化的,大大减轻了DBA的工作,

2020-12-02 09:45:57 2100

原创 大数据日志监控filebeat+kafka+elk+docker部署

部署架构日志格式说明系统日志{"file":"entry.go:224","level":"info","msg":"set sensive words: [呵呵呵呵 测试一下 你好]","time":"2020-04-24T11:20:32+08:00"}访问日志,包含登录日志(请求类型值为2则为登录日志,登录日志才有额外信息)# IP - 用户名 [时间] "方法 路径 协议" 响应状态码 内容大小 "refere" "User-Agent" 请求次数 "路由名称" "后端服务地址" 花费

2020-12-02 09:38:03 2187 4

原创 knife4j 简单使用

knife4j 简单使用Swagger作为一款API文档生成工具,虽然功能已经很完善了,但是还是有些不足的地方。knife4j简介knife4j完全遵循了springfox-swagger中的使用方式,并在此基础上做了增强功能,如果用过Swagger,可以无缝切换到knife4j。快速开始1、 在pom.xml中增加knife4j的相关依赖<!--整合Knife4j--><dependency> <groupId>com.github.xiaoy

2020-12-02 09:20:59 12209 2

原创 id为Long类型的后端处理方案

id为Long类型的后端处理方案一、问题描述痛点:js的long类型最大17位数,超过17位的数字,为将多出来的位数变成零问题复现@RequestMapping("/queryUser")public List<User> queryUser(){ List<User> resultList = new ArrayList<>(); User user = new User(); //赋予一个long型用户ID user.set

2020-12-02 09:17:43 2162 1

原创 查看kafka最近消息的队列情况

1、使用 kafka-run-class 指令,获取topic的最小offset和最大offset#查看各个分区的最小offset(这个意思就是,这个offset之前的消息已经被清除了,现在consumer是从这个offset之后开始消费):./kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic topic的名字 --time -2#查看各个分区的最大offset(这个意思就是,produ

2020-11-17 09:12:29 6010

原创 自定义alert,并添加回调函数

需求:一些自定义的alert只是简单的页面效果,不能做到中断js,有了回调函数后,自定义的弹出窗点击之后,就能执行回调函数了。在一些登录场景很有用,登陆失败后,alert弹出失败信息,之后跳转到指定页面。弹出窗效果js代码 //重写alert window.alert = alert; function alert(data, callback) { //回调函数 var alert_bg = document.createElement('div');

2020-09-16 16:32:20 3463

原创 RestTemplate发送get、post请求

1、发送get请求,获取token/** * 获取消息中心的token * @return */public String getToken(){ RestTemplate client = new RestTemplate(); StringBuilder sb = new StringBuilder(MESSAGE_CENTER_HOST); sb.append("/api/v4/oauth/token?"); //添加应用编号参数 sb.ap.

2020-08-28 20:19:32 7898 1

原创 CentOS7中使用nfs共享资源

nfs服务器:192.168.186.10nfs客户端:192.168.186.71,192.168.186.74,192.168.186.89,192.168.186.92需求:客户端这四台获取服务端的/home/wwwweb/ea目录1:nfs客户端和服务端都要先启动rpcbind和nfs,没有安装的请自行安装。推荐使用rpm安装或者yum安装systemctl sta...

2020-08-20 16:44:38 437

原创 docker安装的mysql8部分表主从同步

docker安装的mysql8部分表主从配置环境介绍主数据库:192.168.1.129从数据库:192.168.1.130需求:只同步主数据库中的test库中的test.user表的数据到从数据库中基础环境配置(主从服务器都是一样的操作)关闭防火墙systemctl stop firewalld关闭selinux#临时关闭setenforce 0#永久关闭,SELINUX=enforcing改为SELINUX=disabledvi /etc/selinux/config#修改

2020-07-21 16:14:42 618

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除