我希望编写一个生产者,该生产者可以每16秒将所有消息刷新到主题后保留在Kafka中。有可能吗?我正在使用Kafka python。
这个想法是: 我有100条消息,按照正常行为,生产者会这样做:
制作人: 讯息1 讯息2 讯息3 ... 讯息100
消费者: 讯息1 讯息2 讯息3 ... 讯息100
我想这样做: 制片人: 讯息1 讯息2 讯息3 ... 讯息100
消费者: 消息1消息2消息3 ...
[16秒后]
...消息N-1条消息N
[16秒后]
消息100
有可能只使用Kafka吗? Tkz
答案 0 :(得分:1)
一个Kafka主题已经有点缓冲了,生产者也分批发送消息,而不是一个一个地发送消息。
您可以根据所使用的kafka库来增加该批次的大小,并手动刷新它,但是您似乎希望暂停用户一段时间,可以这样做,但这是可行的。还会导致消费群体重新平衡,因为它期望活跃的消费者持续不断地发出心跳(另一个可以更改的超时设置)
其他解决方案是在您的使用者代码中使用出队,并使用计时器,该计时器会不断添加,但只能按计划排空
如果您想要消息N-1和N,然后恢复到某个较早的事件,则需要寻找使用者组(靠近主题结尾)
答案 1 :(得分:0)
您可以在需要的时间暂停使用方(分区),并继续进行轮询(或经纪人按照@OneCricketeer的建议将您的使用方踢出客户),在此期间它不会在暂停的分区上返回任何记录,然后继续使用方时间间隔之后的(分区)。