一个 Canal 实例和多个 Canal 实例监听同一个MySQL实例,对主库产生的压力是一样的吗?

ao218c7q  于 3个月前  发布在  Mysql
关注(0)|答案(4)|浏览(84)

Question

如题,一个 Canal 实例和多个 Canal 实例监听同一个MySQL实例(版本5.7),对主库产生的压力是一样的吗?
由于一个 Canal 应用只能配置一个 Kafka 集群,由于业务需要将 binlog 写入多套 Kafka 集群,那么就得配置多个 Canal 应用,担心一个 MySQL 实例被多个 Canal 监听会产生较大压力进而影响业务;
如果确实是业务需要,多个 Canal 监听同一个数据库实例,这样正常吗?比如,以4c16g配置的数据库实例为例,控制被 Canal 监听的数量在多少之内是比较合理的呢?

i1icjdpr

i1icjdpr1#

  1. 肯定是canal-server越多 master压力越大 因为每个从库连上来master都需要创建线程并且持续传输binlog啊
  2. 不知道你写入多套kafka集群是什么业务场景,写到一套不同的消费组来消费不能满足业务需求吗?
  3. 具体多少个从库比较合适 你要结合实际的负载来看
owfi6suc

owfi6suc2#

感谢回答我的问题。
多套Kafka集群是由于历史原因在多套云上部署了,且都需要消费binlog。
针对同一套Kafka集群现在也确实是通过多个消费者组来消费的。

2w3kk1z5

2w3kk1z53#

另外,一般怕master压力大,对延迟不那么敏感,你也可以通过监听slave的binlog来做

tag5nh1u

tag5nh1u4#

我们 RDS 用的是 AWS Aurora,之前有找AWS相关人员探究过这一块,后来对方表示不支持从从库获取 binlog(Aurora 的主从同步是通过 redo log 实现的),所以我们目前只能依赖主库来同步😥

相关问题