是否有可能将芹菜与卡夫卡融为一体

ash*_*nik 8 celery apache-kafka

我想在使用celery的代码中引入多处理.但目前我的队列实施是在卡夫卡.

目前芹菜网站仅提到这4家经纪人:http: //docs.celeryproject.org/en/master/getting-started/brokers/index.html#broker-overview

是否可以将Celery与Kafka集成,类似于下面提到的RabbitMQ:

from celery import Celery
app = Celery('tasks', broker='pyamqp://guest@localhost//')
@app.task
def add(x, y):
    return x + y
Run Code Online (Sandbox Code Playgroud)

小智 8

有关于让 kafka 作为 celery 的代理的讨论,并且有它的部分实现。我希望这可以帮助你

https://github.com/celery/kombu/issues/301

看起来它将于 10 月 31 日左右上市。

https://github.com/celery/kombu/milestone/2

  • 自此答案以来,对 Kafka 的支持似乎已推迟到更高版本。我建议检查哪个里程碑 [issue #301](https://github.com/celery/kombu/issues/301) 属于。 (7认同)
  • 嗨,我知道,老问题,但似乎 kafka 支持已于 28 天前合并 https://github.com/celery/kombu/pull/1506 (6认同)

vil*_*zio 8

当您正在寻找 Kafka 的多处理解决方案时,我建议您查看 Faust 库。

这是一个与 Celery 比较的例子(非常接近你的):

https://faust.readthedocs.io/en/latest/playbooks/vscelery.html

import faust

app = faust.App('myapp', broker='kafka://')

@app.agent()
async def add(stream):
    async for op in stream:
        yield op.x + op.y
Run Code Online (Sandbox Code Playgroud)

《浮士德》的创作者之一也是《芹菜》的作者。

我这么说是因为此时此刻,自@user3382968 提到的票证创建以来已经过去了 7 年,但仍然没有任何进展。

  • 浮士德已被抛弃。它被分叉为 fast-streaming,但也已被放弃。它与kafka未来的kraft版本不兼容,并且永远不会更新以支持它。 (2认同)