
日常开发总结
文章平均质量分 89
记录工作中开发遇到的问题,心得等等
敲代码的小小酥
上天,请赐予我平静,去接受我无法改变的;给予我勇气,去改变我能改变的;赐我智慧,分辨两者的区别
展开
-
GrayLog踩坑历险记
graylog无法记录大数据日志解决、graylog统计、查询接口工具类封装、graylog采集特定日志原创 2024-01-30 12:45:20 · 3475 阅读 · 0 评论 -
SQL预编译和批量提交对性能提升效果探索
比较mysql与oracle预处理与批量提交机制原创 2023-03-21 15:37:37 · 1224 阅读 · 1 评论 -
gateway网关转发请求到nacos不同namespace和不同group下服务实例源码改造
gateway转发不同namespace和不同group服务实例原创 2022-11-26 19:06:25 · 7256 阅读 · 4 评论 -
nginx配置https访问 生成ssl自签名证书,浏览器直接访问
nginx配置https访问,浏览器不报警原创 2022-11-21 23:13:02 · 6705 阅读 · 0 评论 -
maven中几个标签配置记录
maven中标签、pom、import详解原创 2022-08-16 11:00:07 · 355 阅读 · 0 评论 -
SpringBoot项目配置https访问单项认证谷歌有效证书
SpringBoot项目配置https证书,谷歌有效原创 2022-08-04 17:37:46 · 1447 阅读 · 1 评论 -
记一次TCP丢包带来的重大性能问题
tcp丢包影响到底有多大?原创 2022-07-25 00:15:14 · 3565 阅读 · 0 评论 -
geoserver离线地图服务搭建和图层发布
geoserver发布多精度图层过程原创 2022-07-01 10:44:36 · 10782 阅读 · 18 评论 -
记一次解决jar包版本问题解决
The class hierarchy was loaded from the following locations: org.springframework.kafka.listener.ConsumerProperties:Correct the classpath of your application so that it contains a single, compatible version of org.springframework.kafka.listener.ConsumerPr原创 2022-05-23 15:26:53 · 2907 阅读 · 0 评论 -
无网环境下安装Mysql8.0
在redhat7.6操作系统上安装mysql8.0服务,服务器只有内网,没有外网,记录一下安装过程。一、软件准备1.1 下载mysql安装包下载地址:https://dev.mysql.com/downloads/mysql/1.2 准备依赖包下载地址:https://pkgs.orgnumactl 软件包:numactl-2.0.9-6.el7_2.x86_64.rpmnumactl-devel-2.0.9-6.el7_2.x86_64.rpmnumactl-libs-2.0.9-6.原创 2022-03-23 12:11:51 · 3374 阅读 · 4 评论 -
记一次WebSocket的MaxTextMessageBufferSize值设置过大引发的问题
问题项目中用WebSocket作为客户端,接收其他厂商的数据。出现数据处理延迟的情况。前面博客中已经说到,增加线程处理数据可以解决延迟。但是在反复调试中发现,除了增加线程以外,还有一个因素影响数据的延迟,如下: wsWebSocketContainer.setDefaultMaxBinaryMessageBufferSize(51200000); wsWebSocketContainer.setDefaultMaxTextMessageBufferSize(51200000);这个参数的设置,也会原创 2022-01-10 14:03:04 · 8454 阅读 · 1 评论 -
MyBatis自定义插件实现按日期分表功能
一、项目背景在项目中,某个业务数据,每天都产生几百万条数据,所以选择对这个表按日期分表,每天的数据,insert进当天的表中。起初的解决方案有两种:1.insert语句动态定义表名,进行数据的存入操作。2.使用mycat中间件进行数据负载操作。因为项目中大数据量的业务不多,只有个别的数据量大,且也还没有达到分库的体量,只是进行分表,所以使用mycat解决方案有点儿小题大做,所以最开始使用的是方案1进行的操作。二、缺点当项目运行一段时间后,发现另一个业务数据,每天产生的数据量也很大,也需要按日期进原创 2021-12-29 11:15:52 · 2498 阅读 · 0 评论 -
记一次mysql大量插入数据,造成插入延迟,磁盘IO高的性能调优
项目场景:Kafka的数据入库到mysql中,由于业务场景的特殊性,Kafka并不是用于削峰填谷的,而是要求数据库尽可能的实时存入Kafka的最新数据。问题描述:虽然Kafka数据量巨大,但是过滤完数据后,每批kafka数据只存入五六百条数据,但是随着时间的推移,差距会越来越大,原因分析:提示:这里填写问题的分析:例如:Handler 发送消息有两种方式,分别是 Handler.obtainMessage()和 Handler.sendMessage(),其中 obtainMessage 方式当原创 2021-11-29 18:13:09 · 4301 阅读 · 0 评论 -
记一次Kafka消费者频繁分区再均衡bug解决
项目背景:两个Kafka消费者群组,消费同样的主题,一个消费者群组消费数据后,发给mqtt服务,供其他应用接收;另一个消费者群组消费数据后,存入mysql数据库。问题描述:提示:这里描述项目中遇到的问题:在项目中使用Kafka消费者消费数据,并配置了分区再均衡监听器,在日志文件中发现再均衡监听器频繁的输出日志,即频繁发生分区再均衡。而项目已经跑了很久,没有新的消费者加入消费者群组,为何还要频繁进行分区再均衡呢?经过分析日志还发现,当发生再均衡时会输出如下信息:Attempt to heartbe原创 2021-11-04 15:43:20 · 6302 阅读 · 1 评论 -
记一次Mysql不走日期字段索引的原因
背景在一个表中,dataTime字段设置是varchar类型,存入的数据是日期格式的数据,并且为该字段设置了索引。但是在日志记录中,有一条关于该表的慢查询。查询语句为:select * from digitaltwin_meteorological where dataTime > '2021-10-15';explain分析sql语句,发现sql语句执行了全表扫描。为何sql中用了dataTime索引列,为啥还走全表扫描呢?探索一:起初,认为是dataTime字段类型为varchar,所原创 2021-10-22 09:58:36 · 5458 阅读 · 0 评论 -
SpringBoot根据yml配置信息动态生成bean并加入Spring容器
背景yml里配置经纬度信息,然后通过WebSocket接收配置的经纬度范围内的车辆数据。代码如下:@Componentpublic class CarInitTask implements CommandLineRunner,WebSocketHandler { Logger logger= LoggerFactory.getLogger(CarInitTask.class); @Value("${websoket.car.url}") private String webS原创 2021-10-08 16:31:58 · 2620 阅读 · 2 评论 -
记一次Spring自定义切面不执行bug定位
背景项目中,一个第三方jar包提供的方法无法满足需求,需要对jar包方法进行增强。使用了Spring的自定义切面进行方法的增强。代码如下:@Aspect@Componentpublic class SendMessageAspect{ public SendMessageAspect(){ System.out.println("测试入口"); } @Autowired ICimKeywordService keywordService;原创 2021-08-04 10:23:21 · 1221 阅读 · 0 评论 -
记一次netty追源码找bug过程
前言在一次使用一个netty封装的框架时,遇到了问题。由于对netty的原理不熟悉,所以只能瞎猫碰死耗子,一点儿一点儿找原因。最后很费力的找到了问题所在。下面复盘一下通过源码找问题的过程,总结一下哪里可以很快的找到问题原因。问题我用nettty封装的框架做 服务端,C++同事在做客户端。C++同事向我反应连接上我的服务后,只能在服务端第一次发送心跳ping之前,向服务端发送的请求才有响应,第一次服务端发送ping之后,再发请求,就没响应了。看到这个奇葩的bug,我就打开了项目,让C++客户端连接我的原创 2021-07-22 16:54:57 · 244 阅读 · 1 评论 -
常见MQ总结与汇总
一、MQ的作用和应用MQ在实际生产中用于应用解耦,异步消息,流量削峰,消息通讯等功能。流量削峰的意思就是,当有大批量的请求访问服务器时,服务器或数据库会崩溃。这时把大批量的请求发送到MQ中,MQ可以支撑住大量的访问。然后服务器或数据库在按照批次慢慢拉取MQ中的数据,这样不会造成服务器或数据库的崩溃。这就叫削峰填谷。二、常见MQ比较这是官方的比较。通过自己的学习,对几种常见的MQ的比较如下:ActiveMQ:比较古老的项目的维护,可能会应用到ActiveMQ。新的项目应用很少。单从ActiveM原创 2021-07-11 17:33:14 · 2957 阅读 · 1 评论 -
Kafka踩坑记录
1.生产者发送消息如果没有key值,要设置成null,不能设置成空字符串,否则会认为空字符串是key值,会把所有消息发送到一个分区上。2.批量发送消息时,如果没有出发时间限制,也没有出发大小限制,会在最后produce.close时把消息提交。如果没有调用close方法,则消息不会发送,这时,生产者的线程也结束了,则无法再提交消息了。3.当设置为批量发送消息时,且消息的key为null时或动态变化时,producer的send方法效率会很慢。而消息的key设置为固定值时,send方法效率会很快。当单独原创 2021-06-18 10:05:36 · 675 阅读 · 1 评论