- 博客(4)
- 收藏
- 关注
原创 OceanBase低版本SDK驱动包的坑
按照这逻辑,如果持有锁的线程没有释放锁的话,它应该还正在执行中没有销毁才对,如果已经执行完成,它应该已经释放锁才对,然而这两种可能在堆栈日志中都找不到结果,用搜索引擎、GPT也没问出个所以然来,查看数据库监控也没看到有相应的慢sql,最后只能让运维重启这个有问题的实例,就这样不了了之了。果不其然,没过多久又出现了这问题,还是老样子,打印线程堆栈日志,找问题,没结果。最后把社区的这个链接发到群里,他们也同意了这么操作,升级了SDK后,几天时间就把十几亿的数据同步到了目标表,也没有再发生线程死锁的问题。
2024-07-24 15:01:34 616
原创 @RefreshScope注意事项
我们都知道@RefreshScope是SpringCloud用于动态刷新我们配置文件内的配置项数据,可以在不重启服务的情况下就能动态更新配置项。使用方式一般是将其修饰在类上,再用@Value注解修饰需要刷新的字段上,或运用@ConfigurationProperties注解,只要在 Bean 上添加上了这个注解,指定好配置文件的前缀,那么对应的配置文件数据就会自动填充到 Bean 中。通常,我们会认为@RefreshScope可以修饰在任何被Spring管理的Bean上,其实不然。
2023-12-28 09:47:33 1154
原创 实现ThreadLocal在异步线程(包括线程池)中传递
JDK提供了本地线程共享的ThreadLocal和在创建线程时可继承的InheritableThreadLocal,但是由于大多数情况都推荐使用线程池来进行异步处理,InheritableThreadLocal就达不到我们的预期。但是可以参考它的实现思路,在进行线程间的传递时(如创建线程或创建Runnable实现类),将与父线程绑定的ThreadLocal值传递给子线程,就可实现父子线程ThreadLocal的传递。
2023-12-27 15:24:08 3912 2
原创 dubbo接口异步调用进行服务降级后类型转换异常
起因最近想了解下dubbo一些基本功能,于是就翻阅dubbo官方文档,并写写demo练习练习。在练习到:用法示例->本地伪装 ,发现了一个小问题在这里就写了mock的service接口,然后对相应的几个接口进行了测试,本以为测试结果很完美,没想到在调用到asyncSayHello方法时就出问题了DemoController.java@GetMapping("/asnycHello")public Object asnycHello(@RequestParam("name")S.
2021-02-26 23:10:02 1427
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人