我们可以运行像ActiveMQ这样的嵌入式Kafka代理吗?

时间:2018-05-15 21:08:43

标签: apache-kafka activemq spring-kafka confluent-kafka

当我说嵌入这个我的意思时,请参考以下主题 - https://stackoverflow.com/a/28858630/5375223

让我给出一些背景信息,在我们的项目中,我们目前正在使用ActiveMQ作为消息传递代理,现在我们计划迁移到Kafka。请参阅附图。

enter image description here

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

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

那么,无论如何要和Kafka这样做吗?而不是直接连接到在应用程序外运行的代理

1 个答案:

答案 0 :(得分:0)

Spring for Apache Kafka提供了一个嵌入式代理,但它主要用于测试。

kafka没有任何东西可以转移到&#34;转发&#34;从一个经纪人(嵌入或其他)到另一个经纪人的记录;你需要一些代码才能做到这一点。

无论如何,这样做的目的是什么?为什么不直接发送到外部经纪人?

无论如何,Kafka旨在与多个节点和多个zookeeper实例一起使用,以提供弹性并防止数据丢失,因此依赖单个本地实例可能会减少或消除这一点。

相关问题