ToB企服应用市场:ToB评测及商务社交产业平台

标题: 发送kafka生产者数据,效果消耗者吸收不到数据 producer.flush() [打印本页]

作者: 张国伟    时间: 2024-9-29 00:53
标题: 发送kafka生产者数据,效果消耗者吸收不到数据 producer.flush()
头一次碰到过  生产者发送一个数据,我在另一个下令窗口去消耗相同的topic 数据,效果无非获取到数据  这是怎么回事。
查阅了干系资料说是:
   
   办理办法:
producer.flush()
下面是干系伪代码  如下:
  1. def delivery_callback(err, msg):
  2.    if err:
  3.       logging.error('Message failed delivery: %s' % err)
  4. re['name'] = "test"
  5. re['age'] = 18
  6. producer.produce('topic_name', json.dumps(re),callback=delivery_callback)
  7. producer.flush() #若没有该句  可能推送不过去kafka
复制代码

调用producer.flush()是一个常见的做法,特别是在利用Kafka生产者发送消息时。这个方法用于确保所有缓冲的消息都被发送到Kafka服务器。在调用flush()之后,程序会阻塞直到所有的记载都被发送成功或者发送失败。
在生产者发送消息后,调用flush()可以确保消息被实时发送,从而降低消息丢失的风险。

生产者的缓冲区是指生产者在发送消息到Kafka集群时临时存储消息的内存区域。当生产者发送消息时,消息通常首先被写入这个缓冲区,然后在适当的时机被批量发送到Kafka服务器。
缓冲多久才能被消耗者吸收到信息取决于多种因素,包括但不限于:
总的来说,Kafka旨在提供低延迟和高吞吐量的消息传输服务。但实际消息到达消耗者的时间受多种因素影响,包括生产者和消耗者的配置以及网络情况等。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4