我们可以像activemq那样运行嵌入式kafka代理吗?

j0pj023g  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(453)

当我说我的意思时,请参考下面的线索-https://stackoverflow.com/a/28858630/5375223
让我给出一些上下文,在我们的项目中,我们目前使用activemq作为消息代理,现在我们计划迁移到kafka。请看附图。

如上图所示,生产者将数据发送到嵌入式代理,然后嵌入式代理将数据发送到外部代理,外部代理通过如下所示的网络url配置进行连接。因此,如果外部代理不可用,则所有消息都将位于嵌入式代理中,直到其可用为止。

<networkConnectors>
    <networkConnector name="localhost" uri="static://somehost:1234" staticBridge="true">
        <staticallyIncludedDestinations>
            <queue physicalName="someQueueName"/>
        </staticallyIncludedDestinations>
    </networkConnector>
</networkConnectors>

那么,Kafka到底有什么办法?而不是直接连接到在应用程序外部运行的代理

mzaanser

mzaanser1#

springforapachekafka提供了一个嵌入式代理,但它主要用于测试。
Kafka没有内置任何东西可以将记录从一个经纪人(嵌入式或其他方式)转发到另一个经纪人;你需要一些代码。
这样做的目的是什么?为什么不直接发送给外部经纪人呢?
无论如何,kafka设计用于多个节点和多个zookeeper示例,以提供弹性并防止数据丢失,因此依赖单个本地示例可能会减少或消除这种情况。

相关问题