- 博客(32)
- 资源 (7)
- 收藏
- 关注
原创 hazelcast报错:java.lang.IllegalArgumentException: Target is this node! -> [172.24.8.3]:5701
猜测hazelcast把容器ip作为节点判断依据,因此将两个服务器当成同一个。网上查询后发现有两种解决方法,第一个是保证容器ip唯一,要设置子网网段;第二个方法是可以将hazelcast绑定ip,避免ip重复导致冲突。查了下,这个“Target is this node”报错是节点尝试向自身发送操作请求时,Hazelcast 检测到这种无效操作后抛出异常。172.24.8.3这个ip引起注意,发现他是容器ip,且202服务器的容器ip和203的服务器容器ip都是172.24.8.3!
2025-10-21 16:18:33
245
原创 sql优化思路
filtered 表示经过该表的 WHERE 条件过滤后,剩余行占预估扫描行数的百分比(范围 0-100),这里的过滤值得是Service层的过滤占比,存贮引擎的过滤不算,所以这个数值越高越好,若都是100,说明所有表都是用了索引直接查出数据,没有在service使用where进行过滤。orders 表 rows=10:对于每个 users 表的行,预估匹配 10 行 orders 表数据(即平均每个用户有 10 个订单)。
2025-10-12 23:00:49
887
原创 sql优化之联合索引
联合索引(Composite Index,也叫复合索引、组合索引)是指在数据库表的多个字段上共同创建的索引,而非仅基于单个字段。它的核心特点是 “将多个字段组合成一个索引键”,按照字段的创建顺序在 B+ 树(主流数据库的索引结构)中排序存储,从而优化多字段组合查询的效率。
2025-10-12 23:00:21
255
原创 sql优化之索引下推误区
因为想要使用索引,这个索引必须是有序的,而二级索引的value所保存的id是无序的,所以无法像正常索引一样高效过滤数据,只能暴力遍历,虽然还是比起回表要好得多,但目前数据库引擎并不支持这种类似于。的叶子结点value保存的是主键id,那存在索引a,where a=xxx and id=xxx能否使用索引下推呢,还是只使用a索引的。,联合索引a-b,如果使用where a=xxx and b=xxx则可以使用联合索引直接在数据引擎层过滤这两个条件。要避免这个问题也简单,直接增加完整的联合索引a-id即可。
2025-10-12 22:37:16
241
原创 sql优化之部分索引(Using index condition简称ICP)
这里和全表扫描不同,如果是全表扫描,则是将所有数据上传到service层using where筛选,比起强行使用索引下推大大节约传输和内存开销。这里涉及到联合索引的管理,如果这个语句的优化值得建立一个b的索引来避免这个部分索引,那么则可以使用完整的联合索引或者是单独建立一个新的索引。存在联合索引a-b,某个查询where b=xxx,这个时候是使用索引还是全表扫描?对于这种情况需要结合具体的情况,分析器会选择全表扫描或者部分索引。全表则是数据量小的时候会直接使用扫描全表,这里不赘述。
2025-10-12 22:34:40
182
原创 sql优化之CTE物化
CTE,Common Table Expression,即 WITH 子句定义的公用表表达式,如:FROM pay p“物化”(Materialization)是指数据库将 CTE 的查询结果实际存储到临时表(内存或磁盘) 中,而不是将 CTE 的逻辑直接合并到主查询中执行。简单说,“物化” 就是把 CTE 的计算结果 “落地” 为一个临时数据集,后续查询引用该 CTE 时,直接从这个临时数据集读取,而不是重新计算。
2025-10-09 17:36:35
456
原创 redis设置代理地址
思路也简单,如果不设置代理,这个DefaultJedisSocketFactory的socket对象就会报链接超时的异常,然后我发现刚好这个socket对象可以设置代理,于是根据调用路径,重写连接工厂的getConnection,重写链接池的getResource,重写DefaultJedisSocketFactory的createSocket,createSocket几乎都是源码,注:redis版本:spring-data-redis:2.7.18。要像http请求一样设置代理地址。
2025-09-30 15:29:08
172
原创 【bug】Caused by: java.lang.ClassNotFoundException
项目引入新maven依赖后启动报错,Caused by: java.lang.ClassNotFoundException…说是某个类找不到,但实际上这个类是能找到的。并且引入任何依赖都这样,明显是maven的问题。
2025-05-15 09:51:09
259
原创 解决报错:javax.websocket.server.ServerContainer not available
项目中使用了Websocket,启动报错:Error creating bean with name ‘serverEndpointExporter’;
2025-05-09 10:24:17
737
原创 RSA2签名-加密-解密-验签
网络上的数据传输是不安全的别人可能通过网络技术获取你的数据,因此需要加密不能将数据给别人看;别人可能伪造请求,因此需要签名,确认某个请求是我们信任的人发过来的。所以一个数据的传输需要完成如下过程:签名(防伪)—加密—发送数据—解密—验签(确实发送方)
2025-05-06 17:58:20
471
原创 问题排查:spring缓存、hazelcast缓存、动态清缓存问题
使用了spring的缓存,线上获取出来的数据都是null,本地无法复现缓存使用hazelcast实现,使用tcp-ip集群。
2025-04-23 17:11:34
366
原创 maven打包,同版本依赖无法更新bug
项目B引用了项目A,项目A发布新内容,但是不想升级版本,但是使用jenkins重新构建项目B后并不能更新项目A的新内容。
2024-12-11 17:06:04
262
原创 mongodb单机事务
使用spring的@transational注解来避免mongodb的事务问题。mongodb只能集群状态下才能使用事务,否则会抛异常。*具体使用方法可参考引用文章。
2024-11-13 10:07:02
416
原创 rocketmq消息过期/文件回收机制
如果通过mappedFileSizeCommitLog设置文件大小,但是存在老的commitLog文件且大小与新设置的文件大小不一致的话broker启动报错。可通过mappedFileSizeCommitLog设置commitLog文件大小,文件拆分的依据。可通过fileReservedTime设置过期时间,小时整数。可通过deleteWhen设置在什么时候删除。
2024-08-01 11:21:40
753
原创 rocketmqProxy架构ACL报错
报错内容:Message type is not specified导致的原因:Proxy与各个broker之间的通讯默认是使用tools配置文件来进行鉴权(开启了acl的话),有可能是tools配置的账号不是plain_acl中的管理员账号导致
2024-07-30 09:59:32
460
原创 postgreSQL索引入门
1、由于有优化器的存在,所以数据量很少的情况下可能不走索引更快,想要测试索引需要加多点数据(几千行以上)2、bool字段对于筛选数据的差异性较差,所以也不怎么走索引,实测二十几万也不走索引。explain SQL语句。
2024-07-15 16:31:07
362
原创 【学习笔记】docker
教学视频地址:B站尚硅谷docker教学视频一、基础篇1、简介略2、安装基本组成镜像:java中的类容器:通过类new出来的实例对象仓库:存放镜像的地方架构图以后再学安装阿里云镜像加速helloworld分析三要素底层原理以后再学3、常用命令1)帮助启动类命令2)镜像命令3)容器命令4、镜像5、镜像发布到阿里云6、镜像发布到私库7、容器数据卷8、常规安装简介二、高级篇......
2022-07-30 13:52:38
299
原创 【学习笔记】springcloud
教学视频地址:B站图灵springcloud教学视频(主要的)b站山硅谷springcloud教学视频学习代码:springcloud学习代码资源文章目录一、为服务架构理论知识二、springcloud简介三、springcloud技术栈1、项目搭建2、注册中心:Nacos1、项目部署2、nacosClient搭建3、nacos基本概念4、集群3、服务调用:openfeign1、添加依赖2、声明接口3、启用注解4、使用配置项4、配置中心:nacos5、流控:sentinel1、整合springclo
2022-05-21 22:49:05
1033
1
原创 【学习笔记】jvm
jvm视频教程网址黑马程序员JVM完整教程,全网超高评价,全程干货不拖沓_哔哩哔哩_bilibili一,jvm的概念 jvm:Java virtual machine即Java虚拟机,Java程序的运行环境(Java二进制字节码的运行环境),正是因为是虚拟机运行的,所以可以跨平台运行Java源代码---Javac--->Java class字节码----jvm---->载入内存的运行阶段二,jvm的内存结构image-202112091014388181,程序计数器1.1
2022-04-18 23:03:57
633
原创 【学习笔记】WebFlux响应式开发
教学视频:响应式开发教学视频代码资源:weblux学习资源文章目录一、函数式编程/lambda1、lambda表达式2、函数接口3、方法引用4、 类型推断5、级联表达式和柯里化6、Stream流编程7、并行流8、收集器(重要)9、Stream的运行机制二、JDK9 ReactiveStream响应式流三、Spring Webflux1、异步Servlet2、webflux开发原理3、webflux开发例子4、webflux参数校验四、Spring RouterFunction五、WebClient框架
2022-04-04 15:42:08
1081
原创 【学习笔记】RabbitMQ
教学视频:B站尚硅谷RabbitMQ教学视频代码资源:代码资源文章目录一、入门1、基本概念2、基本功能3、MQ的分类4、MQ的选择5、四大核心概念二、核心部分1、 名词解释2、安装3、常用命令4、创建Java开发环境6、六大核心/六大模式1)、简单模式--“HelloWorld”2)、工作模式--“WorkQueues”3)、消息应答模式(自创的,教学视频一团乱麻)4)、发布确认模式--“PublisherConfirms”5)、发布订阅模式--“Publish/Subscribe”6)、路由模式--“
2022-03-14 18:25:35
2785
1
原创 【学习笔记】JUC并发编程
【学习笔记】JUC并发编程教学视频地址:B站尚硅谷JUC并发编程教学视频代码:文章目录【学习笔记】JUC并发编程一、JUC简介二、Lock接口1、synchronize2、Lock三、线程间的通讯四、线程间的定制化通信一、JUC简介一些基本概念:串行:一个一个执行管程:monitor监视类,就是平时所说的“锁”二、Lock接口1、synchronize略,详细看之前写的 java基础-多线程 代码2、Lock略,详细看之前写的 java基础-多线程 代码三、线程间的通讯就
2022-02-24 15:54:17
276
原创 【笔记】java设计模式
教学视频地址:哔哩哔哩尚硅谷java设计模式2019教学视频文章目录一、七大设计原则1、单一职责原则2、接口隔离原则3、依赖倒转原则1)基本概念在这里插入图片描述例子:实现Person接受信息的功能_KISS-优快云博客SpringBoot 2 学习笔记(2 / 2)_KISS-优快云博客如果看不懂笔记就根据笔记所在目录去简单浏览一下教学视频1、Spring Boot 简介简化Spring应用开发的一个框架;整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案;2、微服务2014,martin fowler微服务:架构风格(服务微化)一个应用应该是
2022-02-08 20:16:54
418
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅