【问题标题】:Is it possible to integrate celery with Kafka是否可以将芹菜与卡夫卡集成
【发布时间】:2021-03-31 16:38:41
【问题描述】:

我想在我的代码中使用 celery 引入多处理。 但目前我的队列实现是在 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

【问题讨论】:

    标签: apache-kafka celery


    【解决方案1】:

    讨论过让 kafka 作为 celery 的代理,并且有部分实现。希望对你有帮助

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

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

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

    【讨论】:

    • 自此答案以来,对 Kafka 的支持似乎已推迟到更高版本。我建议检查issue #301 属于哪个里程碑。
    【解决方案2】:

    当您正在为 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
    

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

    我之所以这么说,是因为此时距离@user3382968 提到的票证创建已经过去了 7 年,而且仍然没有进展。

    【讨论】:

    • 请添加使用示例。链接可以更改,因此最好自己添加一个小sn-p。
    • @TheTechRobo36414519 谢谢,我添加了一个使用示例。
    猜你喜欢
    • 1970-01-01
    • 2015-06-18
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多