我在一个中央数据库中有一个表,它不断地附加到。我想每隔几分钟批量处理这些附加,并将它们发送到一堆“从”服务器。反过来,这些服务器将处理该数据,然后将其丢弃(想想分布式仓库)。每个“从属”服务器都需要不同的数据子集,并且我可以使用一个自然的分区键。
基本上,我需要最终保持一致:每批数据最终都将交付给每个“从属”服务器(可靠性),即使“从属”在该批次准备好交付时已关闭(耐用性)。我不在乎批次的交付顺序。
我考虑过的可能解决方案,
- MySQL 复制不符合我的要求,因为我必须在每台服务器上复制整个表。
- ETL & ESB 产品太臃肿了,我不做任何数据处理。
- 普通的 JMS,我可以使用,但我正在寻找更简单的东西
- JGroups 很有趣,但是离开该组的成员一旦重新加入就不会收到消息。
- 跨服务器推送文件和确认文件:可以,但我不知道任何框架,所以需要自己编写。
注意:这个问题是关于如何将数据从中央服务器移动到其他 N 个具有可靠性和持久性的服务器;不是如何创建或摄取它。
(于 8 月 24 日编辑以添加耐用性要求)