![](https://img-blog.csdnimg.cn/20210610173805447.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
日常开发总结
文章平均质量分 69
记录工作中开发遇到的问题,心得等等
敲代码的小小酥
上天,请赐予我平静,去接受我无法改变的;给予我勇气,去改变我能改变的;赐我智慧,分辨两者的区别
展开
-
GrayLog踩坑历险记
graylog无法记录大数据日志解决、graylog统计、查询接口工具类封装、graylog采集特定日志原创 2024-01-30 12:45:20 · 1689 阅读 · 0 评论 -
SQL预编译和批量提交对性能提升效果探索
比较mysql与oracle预处理与批量提交机制原创 2023-03-21 15:37:37 · 958 阅读 · 1 评论 -
gateway网关转发请求到nacos不同namespace和不同group下服务实例源码改造
gateway转发不同namespace和不同group服务实例原创 2022-11-26 19:06:25 · 5872 阅读 · 4 评论 -
nginx配置https访问 生成ssl自签名证书,浏览器直接访问
nginx配置https访问,浏览器不报警原创 2022-11-21 23:13:02 · 6177 阅读 · 0 评论 -
maven中几个标签配置记录
maven中标签、pom、import详解原创 2022-08-16 11:00:07 · 298 阅读 · 0 评论 -
SpringBoot项目配置https访问单项认证谷歌有效证书
SpringBoot项目配置https证书,谷歌有效原创 2022-08-04 17:37:46 · 1378 阅读 · 1 评论 -
记一次TCP丢包带来的重大性能问题
tcp丢包影响到底有多大?原创 2022-07-25 00:15:14 · 2985 阅读 · 0 评论 -
geoserver离线地图服务搭建和图层发布
geoserver发布多精度图层过程原创 2022-07-01 10:44:36 · 9767 阅读 · 18 评论 -
对阿里开源插件Durid Monitor的一些简单改造
Druid 中/druid的请求是如何跳转的原创 2022-06-13 15:29:57 · 456 阅读 · 0 评论 -
记一次解决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 · 2627 阅读 · 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 · 3144 阅读 · 4 评论 -
记一次WebSocket的MaxTextMessageBufferSize值设置过大引发的问题
问题项目中用WebSocket作为客户端,接收其他厂商的数据。出现数据处理延迟的情况。前面博客中已经说到,增加线程处理数据可以解决延迟。但是在反复调试中发现,除了增加线程以外,还有一个因素影响数据的延迟,如下: wsWebSocketContainer.setDefaultMaxBinaryMessageBufferSize(51200000); wsWebSocketContainer.setDefaultMaxTextMessageBufferSize(51200000);这个参数的设置,也会原创 2022-01-10 14:03:04 · 6059 阅读 · 1 评论 -
MyBatis自定义插件实现按日期分表功能
一、项目背景在项目中,某个业务数据,每天都产生几百万条数据,所以选择对这个表按日期分表,每天的数据,insert进当天的表中。起初的解决方案有两种:1.insert语句动态定义表名,进行数据的存入操作。2.使用mycat中间件进行数据负载操作。因为项目中大数据量的业务不多,只有个别的数据量大,且也还没有达到分库的体量,只是进行分表,所以使用mycat解决方案有点儿小题大做,所以最开始使用的是方案1进行的操作。二、缺点当项目运行一段时间后,发现另一个业务数据,每天产生的数据量也很大,也需要按日期进原创 2021-12-29 11:15:52 · 2263 阅读 · 0 评论 -
记一次mysql大量插入数据,造成插入延迟,磁盘IO高的性能调优
项目场景:Kafka的数据入库到mysql中,由于业务场景的特殊性,Kafka并不是用于削峰填谷的,而是要求数据库尽可能的实时存入Kafka的最新数据。问题描述:虽然Kafka数据量巨大,但是过滤完数据后,每批kafka数据只存入五六百条数据,但是随着时间的推移,差距会越来越大,原因分析:提示:这里填写问题的分析:例如:Handler 发送消息有两种方式,分别是 Handler.obtainMessage()和 Handler.sendMessage(),其中 obtainMessage 方式当原创 2021-11-29 18:13:09 · 3674 阅读 · 0 评论 -
KafkaConsumer调用seek()方法报错
在开发中收到调用seek方法指定偏移量时,报了如下错误:java.lang.IllegalStateException: No current assignment for partition xxx报错的意思是该分区没有你指定的那个偏移量,但是在Kafka可视化工具上看,明明有那个偏移量,为何会报这个错呢。原来,subscribe()和 assign()是懒惰的-因此,还需要在您可以使用 seek()之前,先对 poll()进行"虚拟调用"。...原创 2021-11-16 11:11:08 · 2005 阅读 · 0 评论 -
调用mybatis的insert方法阻塞问题
场景:提示:这里简述项目相关背景:使用mybatis大量插入数据问题描述:提示:这里描述项目中遇到的问题:发现后调用isnert方法的数据比先调用insert方法的数据先插入到数据库(没有事务的情况下),由此引发思考,java中的insert方法难道不是等sql执行完再往下执行其他方法的吗?实验分析:提示:这里填写问题的分析:下面进行实验,我们先把表锁住,这样,mybatis调用insert方法的时候,insert语句肯定是插入不进去的,然后我们验证java中的insert方法是否会阻原创 2021-11-04 16:11:57 · 1142 阅读 · 0 评论 -
记一次Kafka消费者频繁分区再均衡bug解决
项目背景:两个Kafka消费者群组,消费同样的主题,一个消费者群组消费数据后,发给mqtt服务,供其他应用接收;另一个消费者群组消费数据后,存入mysql数据库。问题描述:提示:这里描述项目中遇到的问题:在项目中使用Kafka消费者消费数据,并配置了分区再均衡监听器,在日志文件中发现再均衡监听器频繁的输出日志,即频繁发生分区再均衡。而项目已经跑了很久,没有新的消费者加入消费者群组,为何还要频繁进行分区再均衡呢?经过分析日志还发现,当发生再均衡时会输出如下信息:Attempt to heartbe原创 2021-11-04 15:43:20 · 5809 阅读 · 1 评论 -
Kafka消费者拉取记录数配置
问题描述:提示:这里描述项目中遇到的问题:消费者从Kafka里取数据,存入数据库中。Kafka中还有大量数据没有消费,在消费者中配置的max.poll.records参数是300。但是消费者每次只拉取五六十条数据,为何不是拉取300条数据呢?原因分析:提示:这里填写问题的分析:消费者一次poll拉取多少数据,除了受max.poll.records参数影响外,还受fetch.max.bytes参数影响,即一次反馈数据量大小是多少。每次拉取不够300条,说明已经查过了fetch.max.bytes的原创 2021-11-04 14:47:38 · 9795 阅读 · 0 评论 -
MYSQL大数据量列表分页查询优化方案
问题描述:项目中,一张表里数据有几百万条,表有索引。在后台管理系统中,进行列表分页查询时,分页页数越大,查询速度越慢,还会报出慢查询,如何对其进行优化呢?原因分析:假设查询第100000页数据,每页10条,则分页查询的语句是select * from table where … limit 1000000,10。在mysql的底层处理中,对于上述的sql语句处理,是先排序,然后取出1000010条数据,然后舍去前100000条数据,返回10条数据,这就是查询慢的原因。即使有索引,在大数据量上,效原创 2021-10-25 11:34:59 · 2346 阅读 · 0 评论 -
记一次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 · 4198 阅读 · 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 · 2430 阅读 · 2 评论 -
WebSocket客户端接收大数据量数据效率慢问题解决
项目场景:对接其他厂家的一个WebSocket服务。我们这里是WebSocket客户端,对方是WebSocket服务端。当客户端连接到服务端后,发送相应的参数到服务端,服务端就会往客户端返回数据。问题描述:当服务端不停的往回返回数据时,且每次返回的数据量都很大时,造成客户端处理数据不及时,不能实时的处理掉服务端返回的数据。原因分析:客户端处理接收到的消息,用的java客户端处理的,也就是在handleMessage()方法中处理,此方法的调用是单线程的。也就是说,服务端第一次返回数据时,客户端调用原创 2021-09-16 11:25:18 · 9405 阅读 · 3 评论 -
Kafka之Fetch offset xxx is out of range for partition xxx,resetting offset情况总结
Kafka消费者出现这种日志,说明kafka消费者拉取的偏移量,在Kafka服务端没有,就会进行偏移量的重置。为什么会没有偏移量呢?可能是因为该偏移量的数据删除了。也可能是因为程序里调用了seek方法,手动指定了偏移量,而这个偏移量在Kafka中还没有存储到数据,也会报out of range。博主就是因为在负载均衡监听器中,获取consumer在kafka服务端的偏移量时,调用了consumer.commited()方法。该方法返回的就是下一个要拉取的偏移量,而在这里我又加了1。所以造成了out of原创 2021-08-10 14:31:53 · 11059 阅读 · 2 评论 -
Json-lib工具包解析小数自动四舍五入导致小数值丢失问题解决
背景项目中采用了json-lib作为json解析转化工具。在转化经纬度信息的时候,把小数点位数做了四舍五入,导致经纬度定位不准。换fastjson或Gson的话代码还得改动,且fastjson和Gson对于格式不太标准的json数据格式,会解析失败,如{a=b,c=d}这种非标准json的数据,json-lib会解析成功,而fastjson和Gson不会。所以不想改动json-lib。解决最简单的解决方式是将经纬度值改成字符串类型,这样就不会丢失精度了。但是尴尬的是经纬度信息,是从其他接口对接过来的。原创 2021-08-09 09:01:30 · 917 阅读 · 1 评论 -
记一次Spring自定义切面不执行bug定位
背景项目中,一个第三方jar包提供的方法无法满足需求,需要对jar包方法进行增强。使用了Spring的自定义切面进行方法的增强。代码如下:@Aspect@Componentpublic class SendMessageAspect{ public SendMessageAspect(){ System.out.println("测试入口"); } @Autowired ICimKeywordService keywordService;原创 2021-08-04 10:23:21 · 1072 阅读 · 0 评论 -
记一次netty追源码找bug过程
前言在一次使用一个netty封装的框架时,遇到了问题。由于对netty的原理不熟悉,所以只能瞎猫碰死耗子,一点儿一点儿找原因。最后很费力的找到了问题所在。下面复盘一下通过源码找问题的过程,总结一下哪里可以很快的找到问题原因。问题我用nettty封装的框架做 服务端,C++同事在做客户端。C++同事向我反应连接上我的服务后,只能在服务端第一次发送心跳ping之前,向服务端发送的请求才有响应,第一次服务端发送ping之后,再发请求,就没响应了。看到这个奇葩的bug,我就打开了项目,让C++客户端连接我的原创 2021-07-22 16:54:57 · 188 阅读 · 1 评论 -
常见MQ总结与汇总
一、MQ的作用和应用MQ在实际生产中用于应用解耦,异步消息,流量削峰,消息通讯等功能。流量削峰的意思就是,当有大批量的请求访问服务器时,服务器或数据库会崩溃。这时把大批量的请求发送到MQ中,MQ可以支撑住大量的访问。然后服务器或数据库在按照批次慢慢拉取MQ中的数据,这样不会造成服务器或数据库的崩溃。这就叫削峰填谷。二、常见MQ比较这是官方的比较。通过自己的学习,对几种常见的MQ的比较如下:ActiveMQ:比较古老的项目的维护,可能会应用到ActiveMQ。新的项目应用很少。单从ActiveM原创 2021-07-11 17:33:14 · 2771 阅读 · 1 评论 -
maven打包时有test单元测试的项目一直执行项目问题
问题出现在一次SpringBoot项目打包时,当执行package命令时,直接启动项目,开始运行了,而没有进行打包操作。控制台显示是走了test里的@Test单元测试,启动了项目,导致项目一直运行,而没有打包。把启动类删除之后,再执行package命令,就可以正常打包了。问题解决当时不知道原因,所以就把单元测试类删除了,进行的打包。今天偶然的看到了这个问题的解决方案。在使用mvn package进行编译、打包时,Maven会执行src/test/java中的JUnit测试用例,有时为了跳过测试,会原创 2021-07-07 16:28:40 · 2473 阅读 · 2 评论 -
如何安全关闭运行的jar包程序
springboot打成jar包运行,里面有kafka消费者,如果直接点❌关闭jar包程序,会造成消费者偏移量没提交,finally代码块不能执行,重复消费数据的问题,如何正确关闭jar包程序呢?原创 2021-06-27 16:34:41 · 2204 阅读 · 1 评论 -
Kafka踩坑记录
1.生产者发送消息如果没有key值,要设置成null,不能设置成空字符串,否则会认为空字符串是key值,会把所有消息发送到一个分区上。2.批量发送消息时,如果没有出发时间限制,也没有出发大小限制,会在最后produce.close时把消息提交。如果没有调用close方法,则消息不会发送,这时,生产者的线程也结束了,则无法再提交消息了。3.当设置为批量发送消息时,且消息的key为null时或动态变化时,producer的send方法效率会很慢。而消息的key设置为固定值时,send方法效率会很快。当单独原创 2021-06-18 10:05:36 · 521 阅读 · 1 评论 -
如何修改jar包中的代码
背景拿到一个项目,要修改bug。费了九牛二虎之力,把项目跑起来了,登录的时候,居然报空指针。看控制台报错,报错的代码是一个jar包,即这个项目把登录功能封装成了jar包。但是没有这个jar包的源码包,如何解决jar包里的空指针问题呢?解决方案1.用反编译软件,先把有问题的jar包搞成java文件。2.最关键的一步,在项目中,创建一个跟jar包中有问题的类完全相同的包路径和类名,然后,把反编译的有问题的java文件copy到这里。此时,新建的这个类就覆盖了jar包中的类。然后在这个类里修改代码即可。原创 2021-06-17 18:34:17 · 3568 阅读 · 1 评论 -
spring RestTemplate发送请求返回值乱码问题解决心得
今天在使用spring提供的RestTemplate发送请求调用第三方接口时,返回的中文值乱码,代码如下:String url=host+"/api/cctv/camera/list"; HttpHeaders headers=new HttpHeaders(); headers.set("Authorization", "Bearer 854490fc-9c45-42f1-bf02-ad5a63b72831"); headers.set("Content-Type", "applicatio原创 2021-06-10 17:50:01 · 2061 阅读 · 0 评论