- 博客(75)
- 资源 (3)
- 收藏
- 关注
原创 日期格式dateFormat设置不当引发问题
特别是当我们使用 YYYYMMdd 格式来表示日期时,由于没有充分考虑月份和日之间的关系,某些情况下可能导致日期被误解,尤其是在接近一年结束或开始的时候。这可能会影响到数据的准确性,以及基于这些数据做出的决策。在给一组数据生成一个唯一批次号的时候使用固定前缀字符串+日期格式化的结构来拼接,却发生了2024年12月30日的批次号转换成了xxxxx20251230的现象。某些开发人员可能没有充分理解 YYYY 和 yyyy(小写的 ‘y’ 表示一年中的周数)之间的区别,这在不同的编程语言和库中有不同的含义。
2025-01-03 14:31:26
365
原创 一个服务中多个@Scheduled注解的定时任务并发执行的问题
一个服务中有多个@Scheduled(cron=‘xxxxx’)的都是任务,并且这些任务的间隔时间都非常短,例如并行有5个任务 每个任务的执行间隔都是30秒钟,这些任务都是这个服务的基础数据缓存功能。
2024-10-17 11:14:09
359
原创 mybatis保存实体自动更新创建时间创建人等字段
一、如果是使用jpa可以使用注解@EntityListener(AuditableListener .class)import java.util.Date;import javax.persistence.PostPersist;import javax.persistence.PostUpdate;import javax.persistence.PrePersist;import javax.persistence.PreUpdate;import org.springframe
2021-12-02 17:07:25
1846
原创 通过rest请求操作git的API接口
gitApi操作需求所需提供参数列表参数名称描述PRIVATE-TOKEN用于操作gitapi权限所需的tokenprojectId当前git项目的idauthor_email提交人邮箱author_name提交人名称commit_message提交信息1、搜索restful项目的projectIdhttps://xxx.xxx.com/api/v4/projects?private_token=sQNJ2bTfrDktCAqsaodk&am
2021-11-10 15:46:17
1342
原创 docker快速搭建http服务器
一、容器创建docker run -d --restart=always -p 8080:8080 --name oa_http -v /home/hillstone/apps/oa/volume/myfile:/usr/local/apache2/myfile -v /home/hillstone/apps/oa_http/httpd.conf:/usr/local/apache2/conf/httpd.conf -v /home/hillstone/apps/oa_http/mime.types:
2021-11-05 18:42:34
9500
原创 tomcat版本超过7.x后 不允许url携带特殊字符问题
根据rfc规范,url中不允许有 |,{,}等特殊字符,但在实际生产中还是有些url有可能携带有这些字符,特别是|还是较为常见的。在tomcat升级到7以后,对url字符的检查都变严格了,如果出现这类字符,tomcat将直接返回400状态码。可以通过修改tomcat的server.xml配置来修改规范 <Connector port="8080" protocol="HTTP/1.1" useBodyEncodingForURI="true" relaxedPathChars="[]|{}^&a
2021-08-13 14:47:15
935
原创 mysql的group_concat函数长度限制,丢失数据
mysql的group_concat函数查询结果默认长度1024,超过这个长度的结果将不显示,使用的时候可能会遇到莫名其妙丢失的问题:解决方法一:在mysql的配置文件“my.ini”或“my.conf”加上以下语句,然后重启mysql服务即可:group_concat_max_len=102400如果这个值设为-1,表示为最大值(4294967295)解决方法二:执行以下sql语句:SET GLOBAL group_concat_max_len=102400;SET SESSION gro
2021-08-12 15:02:03
2591
原创 docker容器内时间与宿主机差8小时问题处理
在宿主机执行一条cp命令即可docker cp /usr/share/zoneinfo/PRC {[容器id或者名称]}:/etc/localtime例如: docker cp /usr/share/zoneinfo/PRC tomcat:/etc/localtime
2021-07-22 18:21:44
291
原创 shell脚本根据条件筛选文件复制,可排除多个目录
根据条件查找脚本,然后复制,可用于备份以下脚本功能:把/dir1下的文件,排除/exclusionDir1、/exclusionDir2、/exclusionDir3的目录的文件,最近修改时间在8天内的文件,拷贝到/outDir下,目录不存在可自动常见目录#! /bin/bashecho '转移指定目录下文件进程启动'for i in $(find /dir1 \( -path /exclusionDir1 -o -path /exclusionDir2 -o -path /exclusionD
2021-07-15 17:37:34
1867
原创 docker安装nginx
1、先从Docker HUB中摘取最新版本的nginx镜像: docker image pull nginx2、创建临时nginx容器: docker container run -d --name nginx_temp nginx3、将nginx_temp容器中nginx的配置路径拷贝到所在主机:docker cp nginx_temp:/etc/nginx/nginx.conf /root/docker/nginx/confdocker cp nginx_temp:/etc/nginx/conf
2021-07-06 10:34:51
188
原创 docker安装tomcat
步骤:1、先从Docker HUB中摘取最新版本的tomcat镜像: docker image pull tomcat2、创建临时tomcat容器: docker container run -d --name tomcat_temp tomcat3、将tomcat_temp容器中tomcat的配置路径拷贝到所在主机:docker container cp tomcat_temp:/usr/local/tomcat/webapps webappsdocker container cp tomcat
2021-07-06 10:33:01
137
原创 docker安装mysql
1、先从Docker HUB中摘取最新版本的mysql镜像: docker image pull mysql:latest2、创建临时mysql容器: docker container run -d --name mysql_temp mysql:latest3、将mysql_temp容器中mysql的配置路径拷贝到所在主机: docker container cp mysql_temp:/etc/mysql/conf.d conf4、删除临时mysql容器:docker container rm -
2021-07-06 10:30:26
246
原创 @GetMapping中url中自定义参数丢失小数点问题解决
当使用@PathVariable传递路径参数时,如果参数存在小数点会丢失比如/report/{filename}请求路径 /report/abc.pdf 调用到后台会变成/report/abcController方法注解如下:@GetMapping(value = “/report/{filename:.+}”,)在参数后面添加个冒号和一个小数点在加上一个加号:{filename:.+}...
2021-07-02 13:19:58
1092
原创 安装的nodes.js不带cnpm工具问题
安装的node.js后只有npm工具没有cnpm工具,前端启动命令用到cnpm工具,可以通过npm安装安装cnpmnpm install -g cnpm --registry=https://registry.npm.taobao.org验证cnpmcnpm -v前端项目启动命令cnpm install #打包npm run dev #启动运行...
2021-06-10 09:19:29
1030
2
原创 typora picGo使用问题
在使用Typora编写md文档的时候有时候需要发送文档给别人,此时图片是在本地的,需要把他上传为远程服务端,此时会出现的一些问题记录一下1、在使用github作为picGo的图床的时候经常会显示上传失败,或者上传成功了返回的url可以访问,但是再Typora里面就是无法显示图片如下2、怀疑是github的访问速度太慢造成的,后来缓存gitee作为图床,在使用到一定数量图片的时候,所有图片连接突然无法显示了,此时gitee对于raw图片返回403.导致所有图片都不显示。需要注意的2点,自己权衡利弊.
2021-02-25 16:23:57
341
原创 ES6升级ES7数据迁移,数据快照
目录一、使用NFS作为存储仓库1、安装nfs2、添加es的repo存放地址3、对nfs进行配置4、添加NFS挂载5、重启2个es服务二、创建快照仓库三、生成快照数据四、在目标es中生成数据五、验证数据查询1、ES6中验证2、ES7验证数据3、结论六、与ES6的不同一、使用NFS作为存储仓库这边测试使用一台机器 源ES:一个ES6存储 目标ES:一个ES7作为读取1、安装nfsyum install nfs-utils -ysystemctl start nfs-utilssystemct
2021-01-15 13:37:50
3001
1
原创 ELK之 MetricBeat监控Kibana的Dashboard各个图表对应生成方式
如有问题欢迎指出,谢谢目录一、添加自定义字段二、监控数据面板展示1、cpu2、load3、memory4、process5、fileSystem6、fsstat附:部分图表查询方式附录1附录2一、添加自定义字段fields: type: system vmId: test123 userId: test123 customerId: test123fields_under_root: true效果如下二、监控数据面板展示图表面板查询首先添加filter过滤查询GET.
2020-12-30 11:36:15
643
原创 ES之模糊查询(类似关系型数据库的模糊查询)以及注意问题
使用ES当数据库进行查询的时候模糊查询都是会进行分词的,这边记录一下等价于关系型数据库的like查询1、ES中的索引mapping字符串有Text和Keyword两种格式Text格式的查询会进行先分词在查询keyword则不会分词使用模糊查询可以使用QueryBuilders.wildcardQuery加*通配符进行查询,对于text格式的数据可以指定字段名.keyword进行模糊查询,如下所示boolQuery.filter(QueryBuilders.wildcardQuery("de.
2020-12-25 17:31:11
6759
原创 现网环境快速测试kafka接收消息--python操作kafka
1、问题:目前现网环境中使用到的kafka服务器是别人的,我们无法登入,现在想查看某一个topic的消费信息当前服务器没有安装kafka应用程序,所以也无法使用kafka-console-consumer.sh来连接,写一个java程序来上传包在运行过于复杂,可以考虑使用python脚本来连接测试消费数据首先 ,默认linux环境自带了python,我们只需要安装一个python的kafka的第三方库即可# 上传kafka-1.3.5.tar.gz[root@k8s-fengfan opt]# .
2020-12-24 18:23:42
883
2
原创 单机版K8s安装rabbitmq最新版方法
目录一、拉取rabbitmq的镜像二、创建一个configmap三、创建Deployment的yaml文件四、创建service的yaml文件五、启动服务一、拉取rabbitmq的镜像[root@k8s-fengfan default]# docker pull rabbitmqUsing default tag: latestTrying to pull repository docker.io/library/rabbitmq ...sha256:a19f0e3e9b0986948c2072a
2020-12-23 00:09:35
1683
1
原创 Kafka学习笔记(六)· 高级应用~集群~监控
目录八、高级应用1、命令行工具1、消费组管理2、消费位移管理2、数据管道Connect1、概述2、独立模式-文件系统3、SpringBoot Kafka1、添加pom文件2、添加application.properties3、消息的发送4、消息的接收5、Kafka事务的支持九、集群管理1、集群使用场景2、集群搭建1、Kafka集群搭建3、多集群同步1、配置十、监控1、监控度量指标1、JMX2、JConsole3、代码来监控指标2、broker监控指标1、活跃控制器2、请求处理器空闲率3、主题流入字节4、主题
2020-12-22 13:57:10
1147
原创 Kafka学习笔记(六)· 稳定性
目录七、稳定性1、幂等性2、事务3、控制器4、可靠性保证5、一致性保证6、消息重复的场景及解决方案1、生产者端重复2、消费者端重复1、根本原因7、_consumer_offsets1、何时创建2、解析分区七、稳定性kafka的消息传输保障机制非常直观。当producer向broker发送消息时,一旦这条消息被commit,由于副本机制(replication)的存在,他就不会丢失。但是如果producer发送数据给broker后,遇到的网络问题而造成通信中断,那producer就无法判断该条消息是否已经
2020-12-21 16:21:29
877
原创 Kafka学习笔记(五)·分区配置以及存储
目录五、分区1、副本机制2、分区Leader选举3、分区重新分配具体步骤4、修改副本因子5、分区分配策略五、分区kafka可以将主题划分为多个分区(Partition),会根据分区规则选择把消息存储到哪个分区中,只要如果分区规则设置的合理,那么所有的消息将会被均匀的分布到不同的分区中,这样就实现了负载均衡和水平扩展,另外,多个订阅者可以从一个或者多个分区中同时消费数据,以支撑海量数据处理能力。顺便说一句,由于消息是以追加到分区中的,多个分区顺序写磁盘的总效率要比随机写内存还要高(引入Apache Ka
2020-12-18 15:51:00
2628
2
原创 Kafka学习笔记(四)·主题Topic的管理
目录四、主题1、管理1、创建主题2、查看主题3、修改主题4、删除主题2、增加分区3、KafkaAdminClient应用四、主题1、管理1、创建主题[root@k8s ~]# bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic hello --partitions 2 --replication-factor 1# localhost:2181 zookeeper所在的ip,zookeeper必穿参数,多个zookeepe
2020-12-18 15:49:43
355
2
原创 一次zookeeper启动 连接进去ls后 访问拒绝连接的问题
zookeeper启动后 查看节点时返回拒绝连接2020-12-16 15:19:36,741 [myid:] - INFO [main:Environment@98] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib2020-12-16 15:19:36,741 [myid:] - INFO [main:Environment@98] - Clien
2020-12-16 18:14:11
3928
原创 k8s启动服务失败“chdir to cwd (\“/root/WS\“) set in config.json failed: permission denied“: unknown
一次启动k8s服务时候报错OCI runtime create failed: container_linux.go:345: starting container process caused "chdir to cwd (\"/root/WS\") set in config.json failed: permission denied": unknown是因为docker容器内/root目录没有权限在使用dockerfile打包镜像的时候可以指定以下工作目录FROM openjdk:8u1
2020-12-14 17:59:45
3174
原创 使用sh脚本生成文件里面每一行都有^M
使用sh脚本生成文件里面每一行都有^M可以使用以下命令清除^M因为^M在linux里面是换行直接用^M替换文件是行不通的需要用\r转义替换sed -i 's/\r//g' xxx.file
2020-12-14 16:29:54
824
原创 Kafka学习笔记(三)· 消费者详解
目录三、消费者详解1、概念入门2、消息接收1、必要参数设置2、订阅主题和分区3、反序列化4、位移提交5、指定位移消费6、再均衡监听器7、消费者拦截器8、消费者参数补充1、fetch.min.bytes2、fetch.max.wait.ms3、max.partition.fetch.bytes4、max.poll.records三、消费者详解1、概念入门消费者和消费组Kafka消费者是消费组的一部分,当多个消费者形成一个消费组来消费主题时,每个消费者会收到不同分区的消息。假设有一个T1主题,该主题有4
2020-12-04 17:56:06
590
原创 Kafka学习笔记(二)· 生产者详解
目录二、生产者详解1、相关介绍1、java客户端数据生产流程图2、发送类型3、序列化器4、自定义序列化器5、分区器6、拦截器2、发送原理刨析3、其他生产者参数1、acks2、retries3、batch.size4、max.request.size二、生产者详解1、相关介绍1、java客户端数据生产流程图2、发送类型发送即忘记producer.send(record);同步发送//通过send()发送完消息后返回一个Future对象,然后调用Future对象的get()方法等待k
2020-12-04 17:55:24
219
原创 centos7虚拟机换了个WiFi丢失了ip问题解决记录
从家里安装的centos7然后每次用完都是直接挂起,到公司直接恢复,突然今天ip访问不了 一看ip addr发现ens33网卡中ip不见了systemctl restart network #提示重启失败#查看网卡状态systemctl status network #发现网卡处于未开启状态发现可能是网络管理工具(networkmanager)的冲突,此时吧networkmanageer禁用试试systemctl stop NetworkManagersystemctl disable N.
2020-12-04 10:48:02
499
1
原创 Kafka学习笔记(一)· Kafka入门介绍及java入门
目录一、Kafka入门1、基本概念1、特性2、使用场景3、基本概念2、kafka的安装与配置3、kafka测试消息生产与消费1、首先创建一个主题2、展示所有主题3、查看主题详情4、启动消费端接收消息5、启动生产者发送消息4、java操作kafka入门1、创建生产者2、创建消费者3、效果4、服务端常用参数配置一、Kafka入门Apache Kafka是一个分布式的发布-订阅消息系统,能够支撑海量数据的数据传递,在离线和实时的消息处理业务系统中,Kafka都有广泛的应用。Kafka将消息持久化到磁盘中,并
2020-12-03 18:12:43
490
原创 jar包替换class文件方法
直接打成非压缩的jar包或war包先将对应的jar或war包使用unzip解压出来,再用java的jar命令再打个非压缩的包,如:unzip myapp.war -d myappcd myappjar -cvfM0 myapp.war ./*
2020-11-20 09:46:25
951
原创 springCloud笔记(八)分布式链路跟踪Spring CloudSleuth
目录一、概述二、搭建链路监控步骤1、zipkin1、下载2、运行jar3、运行控制台2、服务提供者1、添加pom配置2、添加yml配置3、controller添加一个接口来测试3、服务消费方(调用方)1、添加pom配置2、添加yml配置3、添加一个controller接口测试4、一次启动eureka7001/8001/805、打开浏览器访问:http://localhost:9411一、概述在微服务框架中, 一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个前
2020-11-19 15:41:11
103
原创 springCloud笔记(七)消息驱动SpringCloudStream
目录一、概述1、什么是消息驱动2、设计思想1、标准MQ2、为什么用cloud Stream3、stream中的消息通信方式遵循了发布-订阅模式3、springcloud stream标准流程套路4、编码APi和常用注解二、案例说明三、消息驱动之生产者1、添加pom配置2、添加yml文件配置3、主启动类配置无需多余配置4、业务类1、发送消息类2、controller类5、测试四、消息驱动之消费者1、添加pom配置2、添加yml配置3、主启动类不需要多余配置4、业务类代码五、分组消费与持久化中文指导手册:h
2020-11-19 15:33:30
351
原创 springCloud笔记(六)消息总线SpringCloudBus
目录一、简介1、什么是总线2、基本原理二、springcloudbus动态刷新全局广播三、springcloudbus动态刷新定点通知一、简介bus支持两种消息代理:rabbitmq和kafkaspring cloud bus配合springcloud config使用可以实现配置的动态刷新springcloud bus是用来将分布式系统的节点与轻量级消息系统连接起来的框架,它整合了java的事件处理机制和消息中间件的功能,springcloudbus目前支持rabbitmq和kafkaspr
2020-11-19 15:16:36
166
原创 springCloud笔记(五)分布式配置中心Config
目录一、简介二、服务端配置三、客户端配置与测试1、添加pom文件2、添加yml配置3、启动类四、客户端之动态刷新配置一、简介springcloud config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环节提供了一个中心化的外部配置集中管理配置文件不同环境不同配置,动态化的配置更新,分环境部署比如dev/test/prod允许期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务回想配置中心同意拉去配置自己的信息,当配置发生变动时,
2020-11-19 15:02:51
114
原创 springCloud笔记(四)路由网关GateWay
目录一、简介二、三大核心概念三、gateway工作流程四、入门配置1、pom文件2、修改启动类3、添加yml文件五、通过微服务名实现动态路由六、Predicate的使用七、Filter的使用1、常用的GateWayFilter2、自定义全局过滤器GlobalFilter一、简介cloud全家桶中有个很重要的组件就是网关,在1.x版本中都是采用zuul网关,但是在2.新版本中,zuul一直跳票,springcloud最后自己研发了一个网关代替zuul那就是springcloud gateway,一句话,g
2020-11-19 14:50:30
739
原创 springCloud笔记(三)Hystrix断路器
目录一、概述1、分布式系统面临的问题2、服务雪崩3、Hystrix介绍4、作用二、Hystrix重要概念三、Hystrix案例四、服务降级1、服务端1、添加pom配置2、添加启动类注解3、业务类添加降级处理2、客户端1、添加pom配置2、添加yml配置3、做全局失败回调,不需要所有方法都返回自己的错误信息4、直接对客户端服务接口做服务降级五、服务熔断1、熔断是什么2、案例3、涉及到的重要参数4、结论六、服务限流七、服务监控HystrixDashboard1、添加pom依赖2、修改启动类3、修改被监控的服务项
2020-11-19 14:31:19
191
1
原创 springCloud笔记(二)负载均衡服务调用
目录一、Ribbon负载均衡服务调用1、概念2、相关配置1、pom文件3、Ribbon核心组件IRule1、IRule2、如何替换负载均衡算法呢4、Ribbon负载均衡算法原理1、负载均衡算法2、原理5、手写负载均衡算法二、OpenFeign服务接口调用1、概念介绍2、Feign和OpenFeign的区别3、OpenFeign的使用步骤1、接口加上注解2、pom文件3、yml配置4、启动类5、业务类4、Feign超时控制5、Feign日志打印功能一、Ribbon负载均衡服务调用1、概念Ribbon是N
2020-11-19 11:28:08
246
原创 springCloud笔记(一)服务注册中心
目录Eureka、Zookeeper、Consul注册中心的异同点一、Eureka1、什么是服务治理2、什么是服务注册与发现3、eureka包含两个组件:eureka servre和eureka client4、pom配置5、yml配置6、服务发现Discovery二、Zookeeper1、pom配置2、yml配置3、启动类4、引用三、Consul1、简介2、功能介绍3、下载使用4、官方文档(中文)5、配置文件1、pom配置2、yml配置3、启动类Eureka、Zookeeper、Consul注册中心的异
2020-11-19 10:50:56
274
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人