- 博客(41)
- 资源 (1)
- 收藏
- 关注
原创 redis反序列化异常(org.springframework.data.redis.serializer.SerializationException: Could not read )
set值的时候注入了redisTemplate,get值的时候不小心注入了RedisTemplate,导致反序列化时找不到对应类型。RedisTemplate改为RedisTemplate。由此可知Redis序列化异常,不能读取Json。可是redis是做了序列化配置的,这就很奇怪了。redis反序列化异常。...
2022-07-25 15:28:27
3423
原创 使用oap切面导致controller被重复调用
在自测的时候发现某个很奇怪的问题,某个变量本该加1的变成了加2,debug后发现所有controller都被调用了两次,里面的方法也执行了两次。可以看到execution表达式定义了所有controller包,及改包下所有类的所有方法,joinPoint.proceed()后面经过排查发现写切面的时候,在环绕通知里调用了两次joinPoint.proceed()joinPoint.proceed()执行目标方法目标方法。修改原逻辑只执行一次joinPoint.proceed()......
2022-07-25 15:27:00
843
原创 HV000030: No validator could be found for constraint ‘javax.validation.constraints.NotBlank‘ validat
报错原因:枚举类型用了@NotBlank校验解决方法:用@NotNull@NotNull 和 @NotEmpty 和@NotBlank 区别@NotEmpty 用在集合类上面@NotBlank 用在String上面@NotNull 用在基本类型上
2022-06-16 20:45:00
1861
原创 Java递归生成多层级权限树工具类
标题递归生成一个权限树,可通过以下过程实现:1.首先从权限数据表中获取所有节点2.遍历所有节点,获取所有parentId为空的根节点3.为根节点建立次级子节点树并拼接上。3.通过递归为子节点建立次级子树并接上,直至为末端节点拼接上空的“树”。每条权限有自己的id、父节点parentId、权限名称name、权限还拥有次级权限children。/** * @author Liby * @date 2022-05-16 11:35 * @description:返回前端Dto * @ver
2022-05-19 00:41:05
735
原创 win 查找被占用端口进程并杀掉
win 查找被占用端口进程并杀掉C:\Users\pc>netstat -aon | findstr "18071" TCP 0.0.0.0:18071 0.0.0.0:0 LISTENING 17788 TCP [::]:18071 [::]:0 LISTENING 17788C:\Users\pc>tasklist | findstr "177
2022-05-18 18:30:22
200
原创 如何在rabbitmq中实现一个生产者,多个消费者,多个消费者都能收到同一条消息
如何在rabbitmq中实现一个生产者,多个消费者,多个消费者都能收到同一条消息场景:用户登录,邀请其它用户进行视频会议,收到邀请的用户进入会议rabbitmq实现思路:选型:发布订阅模式(Publish/Subscribe)一个生产者,多个消费者,每一个消费者都有自己的一个队列,生产者没有将消息直接发送到队列,而是发送到了交换机,每个队列绑定交换机,生产者发送的消息经过交换机,到达队列,实现一个消息被多个消费者获取的目的。这种情况下,我们有四种交换机可供选择,分别是:Direct
2022-05-06 18:27:52
14029
5
原创 docker 一键部署脚本
docker 一键部署脚本#! /bin/bash# 1. 如果已经安装了docker,卸载旧版本yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate
2022-04-29 15:59:36
905
原创 springboot整合WebSocket
springboot整合WebSocketWebSocket通信过程客户端构建一个websocket实例,并且为它绑定一个需要连接到的服务器地址,当客户端连接服务端的候,会向服务端发送一个http get报文,告诉服务端需要将通信协议切换到websocket,服务端收到http请求后将通信协议切换到websocket,同时发给客户端一个响应报文,返回的状态码为101,表示同意客户端协议转请求,并转换为websocket协议。以上过程都是利用http通信完成的,称之为websocket协议握手(webs
2022-04-27 16:53:04
20184
7
原创 fastJson使用JSON.toJSONString将java对象转换为json字符串为空
fastJsion使用JSON.toJSONString将java对象转换为json字符串为空代码如下: public static String wsMessage(Integer type, Object message) { MessageModel messageModel = new MessageModel(type, message); return JSON.toJSONString(messageModel); }转换出来的json字符串w
2022-04-27 15:35:06
2240
1
原创 kafka集群部署
kafka集群部署一、环境规划组成安装节点版本java1.8192.168.15.139 192.168.8.135 192.168.8.1361.8.0_212kafka192.168.15.139 192.168.8.135 192.168.8.1363.1.0zookeeper192.168.15.139 192.168.8.135 192.168.8.1363.1.0kafka自带efak-web19
2022-04-20 08:40:06
1971
原创 kubeadm快速搭建k8s集群(单master节点)
kubeadm快速搭建k8s集群(单master节点)一、集群部署前规划主机操作系统IPdocker版本k8s版本k8s-master1Centos7.9192.168.15.13920.10.121.23.4-0k8s-node1Centos7.9192.168.8.13520.10.121.23.4-0k8s-node2Centos7.9192.168.8.13620.10.121.23.4-0二、主要步骤节点准备工作(所有节点
2022-04-12 20:01:04
3147
原创 JPA query 报No entity found for query 异常
问题描述:javax.persistence.NoResultException: No entity found for querygetSingleResult的源码有一句: @throws EntityNotFoundException if there is no result使用getSingleResult()方法时,查询没有结果,它是抛异常的,不会返回null.,致报错。解决办法:使用try catch捕获NoResultException异常即可。return (BaseRole
2022-03-28 15:17:47
1078
原创 安装calico网络插件后K8s集群节点间通信找不到主机路由(no route to host)
安装calico网络插件后K8s集群节点间通信找不到主机路由(no route to host)背景:k8s安装calico网络插件后master节点ping不通其它node节点,但可以ping通外网,同时calico有一个pod启动异常,日志报错信息calico/node is not ready: BIRD is not ready: BGP not established with 192.168.8.xxx,192.168.8.xxx[root@master1 ~]# ping 192.168.
2022-03-18 16:06:47
6483
原创 k8s存储类(storageclass)动态创建pv失败
k8s存储类(storageclass)动态创建pv失败背景:安装kubesphere后发现prometheus的pod创建一直有问题kubectl get pod -n kubesphere-monitoring-system.......prometheus-k8s-0 0/2 Pending 0 3h47mprometheus-k8s-1
2022-03-18 11:18:35
2266
原创 k8s强制删除Terminating 状态命名空间失败
k8s删除命名空间出现The resource may continue to run on the cluster indefinitelykubesphere-monitoring-federated Terminating 7h28m并且用 kubectl delete nskubesphere-monitoring-federated --force --grace-period=0也无法删除时 kubectl edit ns kubesphere-monitoring-feder
2022-03-17 18:09:34
590
原创 Loki Http API 使用
Loki Http API 使用一、查询日志流1. 查询某个时间点日志GET /loki/api/v1/query示例:http://192.168.15.139:30100/loki/api/v1/query?direction=BACKWARD&limit=1000&query=sum(rate({job="anychatlog"}[2d]))返回:{“status”: “success”,“data”: { “resultType”: “vector”,
2022-03-16 09:53:57
9113
原创 基于rancher搭建k8s容器管理平台
基于rancher搭建k8s容器管理平台规划:服务器描述内容192.168.15.139master1节点etcd/Control /worker/rancher192.168.8.142node1节点worker、etcd192.168.8.141node2节点worker192.168.15.56node3节点worker、etcd1.rancher安装mkdir -p /usr/rancherdocker run -d --pri
2022-03-15 16:21:21
2767
原创 loki删除日志
grafana+loki+promtail其它问题一、grafana数据持久化1.配置文件模板路径/etc/grafana/grafana.ini2.生效配置文件路径/usr/share/grafana/conf/default.ini3.数据存放路径/var/lib/grafana二、设置浏览权限可编辑在配置文件中找到[users] 配置块进入配置文件将viewers_can_edit设置为true三、开启viewer角色匿名登录在配置文件中找到[auth...
2022-01-05 17:46:32
9907
7
原创 invalid argument “userService“ for “-t, --tag“ flag: invalid reference format: repository name must
invalid argument “userService” for “-t, --tag” flag: invalid reference format: repository name must be lowercase语法错误:镜像名不能大写
2021-11-26 15:47:08
1045
原创 docker 搭建grafana+loki+promtail日志监控、prometheus主机监控、skaywalking链路追踪
一、日志监控PLG日志系统组成promtail:负责收集日志并将其发送给Lokiloki:主服务器,服务存储日志和处理查询Grafana:用于查询和现实日志1.前期准备创建目录mkdir -p /usr/dz/monitor/cd /usr/dz/monitor/拉取镜像docker pull grafana/grafanadocker pull grafana/promtaildocker pull grafana/loki:2.0.1拉取promtail
2021-11-14 22:39:33
6672
原创 docker搭建 grafana+promtail+loki日志平台
docker搭建 grafana+promtail+loki日志平台PLG日志系统组成promtail:负责收集日志并将其发送给Lokiloki:主服务器,服务存储日志和处理查询Grafana:用于查询和现实日志1.拉取镜像docker pull grafana/grafanadocker pull grafana/promtaildocker pull grafana/loki2.拉取promtail和loki配置文件wget --no-check-certificate
2021-11-04 18:25:58
3036
2
原创 Java计算时间差工具类
Java计算时间差工具类package com.bairui.util;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/** * @author Liby * @date 2021-11-03 15:10 * @description:时间差工具类 * @version: */public class TimeUtil { public sta
2021-11-03 16:50:48
642
原创 refreshToken刷新token后会变化的原因以及refreshToken的复用
refreshToken刷新token后会变化的原因以及refreshToken的复用两次使用refreshToken刷新token返回的refreshToken如下:将两次返回的refreshToken解密后可以看到。处理ati不一样,其它参数都是一样的ati(access token):新的访问令牌的idjti : refreshToken 的id既然刷出了新的token,那么ati肯定变了,那么由这些信息加密成的refreshToken自然也是一直变化的那么如果想无限制刷新refres
2021-10-25 15:36:55
6844
原创 springboot使用pagehelper分页插件
springboot使用pagehelper分页插件pom文件添加依赖 <!-- 分页启动器 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <
2021-10-20 15:15:24
339
原创 初入职场:SpringBoot项目Maven打包时将依赖包和配置文件分离
SpingBoot 直接用package打包时会把源码、依赖包以及配置文件打包jar包,jar包文件要是大的话上传部署到服务器时就很难受,特别是一修改代码又要上传一次,如果打包时把jar包、依赖包和配置文件分离,只修改了代码的话只需要重新上传源码打包成的jar就行
2021-09-27 18:20:22
887
原创 异常:谷歌浏览器video标签播放视频不能拖动进度条
谷歌浏览器video标签播放视频不能拖动进度条/** * @Description: 文件下载:以流的方式 * @Date: 2021/8/24 */ public static String downloadFile(String filePath, HttpServletRequest request, HttpServletResponse response) { logger.info("传入路径参数" + filePath);
2021-09-24 18:09:44
7369
1
原创 踩坑记录: ! [remote rejected] head -> refs/for/master (change 19215 closed) error: failed to push some r
踩坑记录: ! [remote rejected] head -> refs/for/master (change 19215 closed)error: failed to push some refs to ‘ssh://gitdev.bairuitech.cn:29418/AnyChatBaseFrame’今天用git提交代码,push时遇到了这个问题,试了很多方法,最后下面这个方法解决了问题1.git commit --amend2.把Change-Id 删除3.再次提交问题解决
2021-08-30 16:33:32
10198
原创 踩坑记录:spring data jpa 循环save后只保存了一条数据
踩坑记录:spring data jpa 循环save后只保存了一条数据可以看到,循环save()后,返回的都是同一条数据,id都是129,最后数据库也只插入了同一条数据后面发现了原因,实体类创建时是在循环外部,导致每次save实际上都是对同一个对象操作我把实体类创建丢进循环里,问题解决原代码 FileEntity fileEntity = new FileEntity(); for (String url : fileUrlList) {
2021-08-29 08:56:22
1807
原创 使用spring Jpa异常:Operator SIMPLE_PROPERTY on fileId requires a scalar argument
使用spring Jpa异常:Operator SIMPLE_PROPERTY on fileId requires a scalar argument刚接触sping Jpa,今天在项目中遇到了个问题,往里面传集合类型参数时会报错,后面去看了官方文档才发现传集合类型参数要用In没加In报错 List<FileEntity> findAllByFileId(List<String> fileId);加上In问题解决List<FileEntity> fin
2021-08-28 17:49:40
1275
原创 初入职场:spring data Jap save()返回实体Id为0的解决办法
初入职场:spring data Jap save()返回实体Id为0的解决办法saveFile()是我自定义的save(),我希望调用后返回的是插入到数据库的数据,却发现返回的其它数据正常,id为0//文件上传 @RequestMapping("/upload") public FileResult upload(MultipartFile file) { FileEntity fileMsg = FileUtil.uploadFile(file, savePath);
2021-08-18 09:51:14
753
2
原创 初入职场:spring data jpa 时间自动填充(超简单)
spring data jpa 时间自动填充(超简单)spring data jpa 时间自动填充实现步骤:1.启动类添加@EnableJpaAuditing注解 //启动jpa审计(默认填充)2.实体类添加@EntityListeners(AuditingEntityListener.class)注解3.实体类createTime变量上添加 @CreatedDate注解4. @JsonFormat格式化时间,看个人需求,按我的格式用后数据库插入时间格式为:(2021-08-17 21:14:20
2021-08-17 21:27:04
1554
原创 初入职场:Java统一返回结果
在公司里开发java项目,会将响应封装成json返回,一般我们会将所有接口的数据格式统一,比如:{“success”: true,“code”: 20000,“message”: “成功”,“data”: “D:/uploadFile/20210816215037869_10587_常用命令.txt”}接下来我会以初入职场的小菜鸟的角度来实现:1.定义枚举类,把常用状态枚举出来,定义构造函数,实现geter方法import lombok.Getter;@Getterpublic en
2021-08-16 22:54:53
557
原创 文件上传与下载的工具类封装
1.文件上传 /*文件上传*/ public static String uploadFile(MultipartFile file, String savePath) { FileOutputStream out = null; logger.info(savePath); try { File uploadPath = new File(savePath); if (!uploadPath.
2021-08-16 22:16:59
302
1
原创 Screw数据库表结构文档生成工具
Screw(螺丝钉)是一款简洁好用的数据库表结构文档生成工具,支持maven 插件生成和代码生成了,支持MD、WORD、HTML三种格式文档Screw最新依赖地址https://mvnrepository.com/artifact/cn.smallbun.screw/screw-core生成效果图代码生成使用教程:1.导入数据库依赖 org.springframework.boot spring-boot-starter-jdbc
2021-08-12 11:13:10
617
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人