使用 cancal 异步 es 数据延迟太大怎么办 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Saxton
V2EX  &bsp; Elasticsearch

使用 cancal 异步 es 数据延迟太大怎么办

  •  
  •   Saxton 2021-10-28 15:28:14 +08:00 2844 次点击
    这是一个创建于 1443 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前使用 cancal 配合 adapter 把 mysql 数据异步到了 es ,但是我在新增数据和修改数据后,拿到的数据是 更新前的数据,后面我修改了源码,强行带上了?refresh=wait_for ,但是效果还是很差,新增时可以拿到最新了,但是修改还是不行

    11 条回复    2021-11-17 13:00:01 +08:00
    defunct9
        1
    defunct9  
       2021-10-28 15:32:26 +08:00
    我记得有 mysql 的 adapter ,直接送入 ES
    Saxton
        2
    Saxton  
    OP
       2021-10-28 15:37:57 +08:00
    @defunct9 我就是用的这个,看来只能将写入 es 数据的代码一块耦合到业务代码里了,哎
    kidlj
        3
    kidlj  
       2021-10-28 16:18:18 +08:00   1
    试试 Kafka + Debezium ?我的使用经验是无延迟。

    BTW, Friends don't let friends do dual writes.
    pengtdyd
        4
    pengtdyd  
       2021-10-28 16:52:34 +08:00
    cancal 我用过,但是感觉不是很成熟,不知道你们有没有部署过高可用版本,整体使用感受就是特别像 kpi 项目,cancal 的文档我看了好几遍,就文档本身而言写的挺清晰的,但是写的比较分散。就公司内部使用来看,运维成本也比较高,小公司基本上要用的话,没有深入研究过的人,基本上是抓瞎。maxwell 没有高可用版本,这个不建议使用,国外用 Debezium 的多,我对他不是特别了解,没玩过。
    testtest1987
        5
    testtest1987  
       2021-10-29 10:05:40 +08:00
    我用的 canal 1.1.3,延迟感觉还行啊,难道是我 DB 压力太小了?
    主 MySQL->从 MySQL->Canal->MQ->Java 数据处理->ES
    Saxton
        6
    Saxton  
    OP
       2021-10-29 11:12:51 +08:00
    @pengtdyd 的 完全就一个 KPI 项目,不知道你有没有去阅读过里面的代码, 我到现在已经修了三个 BUG 了, 里面那些代码完全就是可读性为 0
    Saxton
        7
    Saxton  
    OP
       2021-10-29 11:13:37 +08:00
    @testtest1987 用的是哪一个 MQ 呢,我感觉是我 es 的问题 我分配的内存太小了 数据其实已经过去了 但刷出来的时候太慢了
    Aresxue
        8
    Aresxue  
       2021-10-29 11:27:15 +08:00   1
    refresh=wait_for 还是别加了。。,默认 1s 刷新还是能够满足伪实时诉求的,加了之后对整个 es 的负荷更多反而更加影响性能,用 canal 的话就作为一个 binlog 的采集器好了,自带的 adapter 限制和 bug 太多了。。我这边都是 canal 集群->RocketMQ 集群->多 java 应用进程->ES 集群,慢在哪一步也更好分析,目前你这样感觉要筛查下 binlog 自身的延时,还有 es 的写入频率可能要做适当的调整
    testtest1987
        9
    testtest1987  
       2021-10-29 15:05:36 +08:00
    @Saxton RocketMQ. 推送到 RocketMQ 应该是用的自带功能,之前是用 Java 解析后直接推 ES,但有个问题导致数据堆积,Cancel 挂了,后来出了个新版本,自带推送到 RocketMQ / Kafka,就直接用了
    wbd31
        10
    wbd31  
       2021-11-10 17:24:33 +08:00
    @Aresxue 云厂商的 es 默认 refresh_interval 不一定是 1s...
    Aresxue
        11
    Aresxue  
       2021-11-17 13:00:01 +08:00
    @wbd31 这个核心参数一般都会修改的,使之更契合自己的业务,比如阿里的 adb ,应该说官方默认的是 1s 。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     893 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 20:49 PVG 04:49 LAX 13:49 JFK 16:49
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86