【问题标题】:Consume kafka messages from django app使用来自 django 应用程序的 kafka 消息
【发布时间】:2018-03-19 07:19:48
【问题描述】:

我正在设计一个基于 django 的 Web 应用程序,该应用程序能够通过 Web 套接字提供需要从 Kafka 主题中使用的数据。

此时,我想出了一个拆分为两个组件的解决方案:一个组件从 kafka 消费,对检索到的数据执行一些基本操作,并使用 http 请求将结果发送到 django 应用程序。 收到请求后,会在特定的 django 频道上写入一条消息。

是否有更好的架构来解决这种情况?我应该将所有 Kafka 部分包含在 celery 异步任务中的“while True”循环中吗? django 启动时我应该生成一个新进程吗?如果是这样,我还可以使用 django 信号通过 web 套接字发送数据吗?

谢谢, 脸书

【问题讨论】:

标签: django apache-kafka celery


【解决方案1】:

是的,您可以使用您的 django 代码/存储库并构建单独的应用程序/程序来通过 django ORM 处理 kafka 队列和数据库

只需在此程序的开头添加类似的代码

sys.path.append(os.getcwd())
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<your_app>.settings")
django.setup()

然后你就可以在这个程序中使用你的模型了,比如

from <your_app>.models.timeslots import TimeSlotReserve

另外一个好主意是向这个单独的应用程序添加一些多线程

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-05
    • 2021-12-10
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 2020-12-11
    • 2022-10-01
    相关资源
    最近更新 更多