【问题标题】:How to connect Kafka consumer to Django app? Should I use a new thread for consumer or new process or new docker container?如何将 Kafka 消费者连接到 Django 应用程序?我应该为消费者或新进程或新 docker 容器使用新线程吗?
【发布时间】:2020-12-27 23:49:02
【问题描述】:

我有 Django 应用程序,它应该使用 Kafka 消息并使用我的处理程序和现有模型处理它。 我使用https://kafka-python.readthedocs.io/en/master/usage.html 库。

将 KafkaConsumer 连接到 Django 应用程序的正确方法是什么。我应该使用新的守护线程吗?还是新工艺?或者一个单独的码头集装箱? 在哪里放置代码(新的 Django 应用程序?)以及如何在 Django 应用程序准备好时自动启动它。以及如何更新它动态监听的主题:我应该杀死旧消费者并在新线程中每次都开始新的消费者吗?

【问题讨论】:

    标签: python-3.x django docker microservices kafka-python


    【解决方案1】:

    有一个类似的问题,我所做的是create a custom Django command,然后继续为您的功能添加一个处理程序方法。 在部署中,您可以将其作为 sidecar 容器启动。

    class Command(BaseCommand):
        def handle(self, *args, **options):
        
            consumer = kafka.KafkaConsumer(KAFKA_TOPIC_NAME,bootstrap_server=["localhost:9092"],group_id=KAFKA_CONSUMER_GROUP)
    
            for message in consumer:
                handler_method(message)
    

    作为一个边车,它会在启动时选择消费者中的任何消息。

    【讨论】:

      猜你喜欢
      • 2018-02-12
      • 1970-01-01
      • 1970-01-01
      • 2017-11-16
      • 1970-01-01
      • 1970-01-01
      • 2018-08-04
      • 1970-01-01
      • 2021-02-08
      相关资源
      最近更新 更多