Apache Kafka生产者未发送消息

时间:2019-10-31 08:49:34

标签: django apache-kafka kafka-producer-api kafka-python

我在Django项目中使用kafka-python。在settings.py文件中初始化生产者。调用producer.send没有发送消息。

以前,我的生产者每次都在一个函数中初始化,而我正在使用producer.send()。get(timeout = 1)发送消息,并且运行良好。现在,我已将初始化更改为设置文件,并在调用.get()时删除了send,但它不起作用。 下面的旧工作代码:

module_x.py中:

from kafka import KafkaProducer

def my_func():
   KAFKA_CONNECTION = KafkaProducer(bootstrap_servers=CONFIGS.KAFKA_URL)
   producer = KAFKA_CONNECTION
   producer.send(topic, key=key, value=json.dumps(data)).get(timeout=1)

以下更改了代码: 现在将初始化更改为设置文件,以避免每次调用my_func时进行初始化。

settings.py中:

KAFKA_CONNECTION = KafkaProducer(bootstrap_servers=CONFIGS.KAFKA_URL)

module_x.py中:

from django.conf import settings

def my_func():
   producer = settings.KAFKA_CONNECTION
   producer.send(topic, key=key, value=json.dumps(data))

请注意,我什至尝试在.get(timeout=1)上使用send,但得到Kafka.TiemoutError

producer.flush()之后必须使用producer.send还是在初始化时使用linger_ms。 ?

0 个答案:

没有答案