Sunxien®
|
50a570290a
|
fix(canal/client-adapter): 修复adapter插件重试错误缺陷 (#5427)
* fix(canal/prometheus): 修复延迟指标的缺陷
-【缺陷描述】
Admin控制台修改canal.properties配置后,Server自动进行重启,在Grafan上观测到同步实例的PUT/GET/ACK延迟居高不下。
-【原因定位】
源库心跳正常触发,MemoryStoreWithBuffer正常推进位点,profiling 正常统计,但是延迟指标依然是越来越来越高。Prometheus调用collect接口采集到的exec time时间始终是固定不变的。经debug排查到StoreCollector采集器内存hold的StoreMetricsHolder与CanalInstance实例中的引用已经不同啦,CanalIntance重启时已经被重建过一份新的实例,但是StoreMetricsHolder却没有保存到内存Hold中。原因是Map.putIfAbsent调用引起。
-【修复效果】
- 修复后,重启Server心跳正常推进,延迟瞬间降下来。梳理其他Collector代码都是调用Map.put,只有这里使用putIfAbsent可能是粗心导致吧。修复效果
* fix(canal/client-adapter): 修复adapter插件重试错误缺陷
-【缺陷描述】
adapter运行期间,针对server或者Instance进行过一次重启或者断网测试,发现adapter通过client拉取数据报错以后持续打印错误日志,永远不得恢复。虽然adapter processor 针对错误有重试逻辑,但是client的tcp连接已经发生中断,且无法恢复。
-【问题定位】
adapter processor 针对错误的处理比较粗,需要细分是从上游get message报错,还是下游sync data报错?
如果是 get message报错,特别是tcp 断开,需要跳出重试,重新尝试重连。如果是下游 sync data 报错,再考虑重试写入。下游插件开发者自行保证连接重连机制、写入幂等。框架只提供重试。
- 说明:顺带更新一下 .gitignore 文件
|
2025-05-16 15:12:42 +08:00 |
|
agapple
|
3d4dbc9a8c
|
fixed issue #2099 , support user/passwd acl and canal admin operator
|
2019-08-26 18:16:33 +08:00 |
|
mcy
|
317439670c
|
modify
|
2019-07-11 10:16:12 +08:00 |
|
mcy
|
e87a0c3b63
|
canal-admin init
|
2019-07-10 16:22:38 +08:00 |
|
Xin Wang
|
8cb85753bb
|
open the switch to get codecov test coverage (#1671)
* add codecov for test coverage
|
2019-04-09 19:11:48 +08:00 |
|
agapple
|
a81d2710ff
|
fixed MQ partition
|
2019-03-21 19:27:39 +08:00 |
|
七锋
|
7fd958a490
|
fixed issue #801 , support canal docker
|
2018-08-03 17:48:32 +08:00 |
|
agapple
|
51ac311aa1
|
fixed git ignore
|
2015-12-31 14:31:55 +08:00 |
|
agapple
|
a0defe575b
|
init
|
2014-09-23 15:11:35 +08:00 |
|