这本身并不是编码问题,而是更多用于实时流应用程序的体系结构设计。我们有以下设置:
现在,我了解到Kafka负责处理群集中发生故障的节点(充当代理),但是如果生产者只是没有良好的网络连接并且无法将其数据发布到Kafka主题上,该怎么办?因为看不到?
我们不能丢失任何数据,但是好消息是,我们为嵌入式IoT设备提供了可扩展的存储选项,可以在IoT设备脱机时保存数据,然后在连接恢复时进行流传输。这是Kafka推荐的吗?特别是我有以下问题:
答案 0 :(得分:0)
Kafka生产者不提供离线模式,它不能以AFAIK块形式流式传输数据。 我建议您做的是为生产者发送回调,并在失败时将消息内容写入本地存储。然后,您应该有一个后台线程,该线程从本地存储中提取所有已刷新的数据,并不断尝试使用生产者发送数据。基本上,对于您在设备上使用时间序列数据库的建议,这是一种幼稚的方法。但是,无论是设备上的FS还是DB,这都是满足您需求的唯一方法。