我是Kafka的新手。我一直在测试Kafka发送信息的能力。
这就是我现在的处境。
本地虚拟机中的add.java定期向本地虚拟机中的kafka发送消息。
另一台服务器中的relay.java正在从本地vm中的kafka进行轮询,并生成到另一台服务器中的kafka。
当我从本地vm中的kafka向另一台服务器中的kafka发送消息时,
我把局域网电缆从我的笔记本电脑上拔了出来。几秒钟后,我又把局域网电缆接上了。
然后我发现一些信息在局域网电缆断开时丢失了。
但是,当网络重新连接时,我想得到所有断开连接的消息而不丢失。
有什么建议吗?
任何帮助都将不胜感激。
1条答案
按热度按时间ax6ht2ek1#
首先,我建议您使用mirrormaker(1或2),因为它正好支持消费和生产到另一个集群的用例。
其次,
add.java
如果局域网断开连接,则不应丢弃消息。不管你是不是在从
relay.java
取决于你的消费者和生产者的设置。例如,您应该明确地禁用自动偏移提交,并且仅在从其生产者操作获得完成事件和确认之后才进行提交。这将导致至少一次交付。你可以在Kafka找到多篇关于处理担保的帖子