我需要维护一个外部数据库的副本(包括一些额外的派生数据)。在硬件相同的情况下,以下哪种解决方案可以为我提供更快的一致性(低延迟)和高可用性?假设对外部数据库的更新速度为每秒1000条记录。
a)使用mysql 5.7复制(二进制日志文件机制)创建外部数据库的本地mysql副本。
或
b)从外部系统获取实时Kafka事件,执行HTTP Get来获取更新的对象详细信息,并使用这些详细信息来维护本地mysql副本。
发布于 2016-08-27 02:36:01
第一个几乎肯定会给你更低的延迟(因为只有两个系统,而不是三个)。可用性是相同的- Kafka是高可用性,但你在两端都有两个数据库。
如果您认为需要将数据实时发送到其他系统,则第二种方法更好。即: MySQL1 -> Kafka -> (MySQL2 +弹性搜索+卡桑德拉+ ...)
发布于 2017-11-20 15:30:58
我讨厌用“用这个奇怪的东西代替”来回答问题,但我确实担心你的准备工作比你可能需要的要重了一点--或者你确实是这样做的,我读错了。
考虑一下像serf.io这样的八卦工具。它就快完成了,可以用比kafka集群或mysql对更轻量级的东西来满足你的需求。
https://stackoverflow.com/questions/39171809
复制相似问题