我正在设计一个基于kafka的系统,用于从网络连通性较差的远程平台传递消息。kafka集群将运行在一个舒适的数据中心,在那里所有节点都不太可能发生故障。让我担心的是网络中断期间生产商的行为(这种情况肯定会发生,而且会持续几天)。这是基于Kafka的系统尚未实施的主要原因,即所有数据都被认为是关键的,应该没有数据丢失。目前,我们有一个简单的系统,使用tcp连接,如果不可用,将数据缓冲到hdd(让我们考虑有足够的空间来缓冲数据)。
有没有人有在网络中断时使用数据到硬盘缓冲的经验?这会对Kafka集团产生负面影响吗?将有数百家供应商,几乎可以保证其中一些供应商在任何给定的时间都处于停机状态。
谢谢你的帮助!
1条答案
按热度按时间ktecyv1j1#
我看你的计划没有任何问题。如果kafka满足您的用例,您可以使用它。
当消息未成功发送时,Kafka生产者会通知您。因此,您必须处理这种情况并执行磁盘写入。另外,当连接恢复时,您还必须处理发送所有写入磁盘的数据。
这些都不会以任何方式影响集群。