1

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

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

或者

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

4

2 回答 2

1

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

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

于 2016-08-26T18:36:01.383 回答
0

我讨厌用“只用这个奇怪的东西代替”来回答问题,但我确实担心你的装备比你可能需要的有点太重了——或者也许你这样做了,我读错了。

考虑一个像 serf.io 这样的八卦工具。它几乎完成了,并且可以通过比 kafka 集群或 mysql 对更轻的东西为您提供您可能需要的东西。

于 2017-11-20T07:30:57.843 回答