Kafka连接集成多个消息队列

时间:2019-07-19 12:29:39

标签: apache-kafka microservices integration message-queue apache-kafka-connect

我正在设计一个系统,其中必须与多个基于消息队列(MQ)的后端集成。每个后端都有一个微服务,用于处理MQ有效负载。我选择Kafka作为消息传递的媒介,并考虑将Kafka-MQ-Connects用于MQ集成。

我可以想到两种整合方法。

  1. 每个后端的Kafka-MQ-Connect(源/接收器)连接+每个后端的Kafka主题(至/从)。

enter image description here

优点。    -可以扩展到新的后端,而无需接触现有的连接器。

缺点    -需要维护的连接器和主题太多。

  1. 所有后端的单个Kafka-MQ-Connect(源/接收器)+单个Kafka主题(至/从)。此外,接收器连接可以动态路由到MQ,并且微服务将具有内置的消息过滤器,以仅过滤相关消息。

enter image description here

优点。    -很少维护主题和连接器。

缺点    -添加新的MQ后端需要更改连接器。

哪种方法更好?除了上述之外,还有其他集成替代方案吗?

1 个答案:

答案 0 :(得分:2)

尽管您没有提供任何其他要求(例如,您打算多久添加一次新数据源以及您拥有的流量),但我还是选择第一种方法。将来添加/删除新的/现有的数据源将更加容易。

我不会说很难维护多个接收器/源连接器和主题。根据我的经验,很难维护从多个主题/源复制数据的连接器。例如,如果您想在特定主题上应用SMT(简单消息转换),那么如果您没有隔离的连接器,那么您将无法实现它,因为SMT应用于连接器级别。此外,如果为所有源配置单个连接器,但在某个时候连接失败,则所有目标系统都将停机。