- 博客(22)
- 收藏
- 关注
原创 SpringBoot利用ThreadPoolTaskExecutor批量插入万级数据实测
采用JDBC批插方式并使用ThreadPoolTaskExecutor多线程处理批量数据。
2024-02-04 13:58:40
520
1
原创 Redis布隆过滤器实现检索亿级数据存在
想要实现10亿的数据中快速判断某一个数据是否存在,使用sql查询会造成数据库性能、负载的问题,如若将数据存到缓存中,一个数据假设是20字节,10亿数据就是20G内存,这个方案内存占用过大。相比之下0.001容错率的布隆过滤器的内存占用为1.67G,既解决了内存问题,又解决了数据库资源使用问题。
2023-11-30 09:43:43
169
原创 注解方式优雅实现Redission
通常我们都会将redisson实例注入到方法类里面,然后调用加锁方法进行加锁,如果其他业务方法也需要加锁执行,将会产生很多重复代码,由此采用AOP切面的方式,只需要通过注解的方式就能将方法进行加锁处理。@InheritedString errorDesc() default "系统正常处理,请稍后提交";分布式锁的使用场景还是需要多注意下,根据业务场景来,并发量不大的情况下,其实没有必要加,可能在移动端操作比较频繁的情况下需要注意并发,切勿不要盲目加锁,多少会影响一些性能。
2023-11-28 14:15:26
155
原创 Sentinel熔断降级处理
四、熔断降级 MemberFeignFallback。二、properties配置文件。三、FeignSerice。
2023-10-30 17:16:32
111
原创 Spring Cloud整合Sentinel实现限流
启动jar包命令:java -Dserver.port=18080 -Dcsp.sentinel.dashboard.server=localhost:18080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.6.jar。五、降级,降级方法需包含限流方法的所有参数和BlockException参数,且返回值要保持一致。三、配置properties文件,此处需要提前配置nacos注册中心。名称要跟自己下的jar包名字对应。
2023-10-30 16:31:23
59
原创 Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.C
原因:这是由于 JDK 8 中有关反射相关的功能自从 JDK 9 开始就已经被限制了,为了兼容原先的版本,需要在运行项目时添加。选项来开启这种默认不被允许的行为。
2023-10-26 15:43:06
3428
原创 MySQL重置密码
4、接下来使用无密方式登录mysql,输入mysql -u root -p后直接按回车键就行。8、设置加密规则并更新新密码,授权(直接复制这些SQL语句你的密码会更新为hy888888)9、打开配置文件,将刚刚插入的skip-grant-tables删除并保存,退出文件。2、用记事本方式打开my.cnf并设置登录无需密码。3、Ctrl+s保存后我们重启mysql。1、进入etc目录找到my.cnf文件。
2023-09-25 13:22:33
51
1
原创 ElasticsearchRestTemplate查询踩坑-tearQuery()查询对中文字符无效
ElasticsearchRestTemplate查询踩坑-tearQuery()查询对中文字符无效
2023-08-29 10:14:45
253
原创 Spring-Data-Elasticsearch实现 条件查询+分页+高亮+排序功能
Spring-Data-Elasticsearch实现 条件查询+分页+高亮+排序功能。
2023-04-28 09:44:36
1212
原创 Elasticsearch 7.13.2启动成功,但无法访问?
原因:elasticsearch出于安全策略考虑,默认仅开启了本地访问。需要额外配置远程访问。备注:生产环境请设置密码,且不要直接开放0.0.0.0.
2023-04-18 21:26:25
1400
原创 ElasticJob定时任务学习总结
如: 如果有3台服务器,分成9片,则每台服务器分到的分片是:1=[0,1,2], 2=[3,4,5], 3=[6,7,8] 如果有3台服务器,分成8片,则每台服务器分到的分片是:1=[0,1,6], 2=[2,3,7], 3=[4,5] 如果有3台服务器,分成10片,则每台服务器分到的分片是:1=[0,1,2,9], 2=[3,4,5], 3=[6,7,8]将分片项设置为大于服务器的数量,最好是大于服务器倍数的数量,作业将会合理的利用分布式资源,动态的分配 分片项。安装并启动Zookeeper。
2023-04-11 11:10:50
377
原创 Redis“双重检测锁”机制解决缓存击穿代码实践
当系统中引入redis缓存后,一个请求进来后,会先从redis缓存中查询,缓存有就直接返回,缓存中没有就去db中查询,db中如果有就会将其丢到缓存中,但是有些key对应更多数据在db中并不存在,每次针对此次key的请求从缓存中取不到,请求都会压到db,从而可能压垮db。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用大量此类攻击可能 压垮数据库。使用“双重检测锁”机制,从数据库查询数据方法外加锁,锁内再次判断缓存是否有数据。
2023-03-29 09:36:41
987
原创 WebSocket中无法使用mapper和service问题解决
详细解释:项目启动时初始化,会初始化 websocket (非用户连接的),spring 同时会为其注入 service,该对象的 service 不是 null,被成功注入。当新用户进入聊天时,系统又会创建一个新的 websocket 对象,这时矛盾出现了:spring 管理的都是单例,不会给第二个 websocket 对象注入 service,所以导致只要是用户连接创建的 websocket 对象,都不能再注入了。在工具类中引用SpringContextUtil工作类。通过以下方式引入mapper。
2023-03-08 14:36:18
542
原创 MyBatis-Plus代码自动生成器生成的mapper无法被识别?只需加入这条代码
MyBatis-Plus代码自动生成器生成的mapper无法被识别?只需加入这条代码
2022-08-16 10:16:51
757
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人