通过Kafka与mysql事件进行复制

时间:2016-08-26 17:32:31

标签: mysql apache-kafka replication database-replication mysqlbinlog

我需要维护外部数据库的副本(包括一些额外的派生数据)。使用相同的硬件集,以下哪个解决方案可以提供更高的一致性(低延迟)和高可用性?假设对外部数据库的更新发生在每秒1000条记录中。

a)使用mysql 5.7复制(二进制日志文件机制)创建外部数据库的本地mysql副本。

OR

b)从外部系统获取实时Kafka事件,执行HTTP GET以获取更新的对象详细信息,并使用这些详细信息来维护本地mysql副本。

2 个答案:

答案 0 :(得分:1)

第一个几乎肯定会给你较低的滞后(因为只有两个系统,而不是三个)。可用性大致相同 - Kafka具有高可用性,但无论如何您都有两个数据库。

如果您认为您希望将数据实时发送到其他系统,则第二种情况会更好。那是: MySQL1 - >卡夫卡 - > (MySQL2 + Elastic Search + Cassandra + ...)

答案 1 :(得分:0)

我不想回答问题而只是使用这个古怪的东西来代替'但是我确实担心你的负担过重而不是你可能需要的 - 或许你做了,而且我读错了。

考虑像serf.io这样的八卦工具。它几乎完成了,并且可以用比kafka集群或mysql对更轻的东西给你准确的东西。