【发布时间】:2022-02-02 21:25:36
【问题描述】:
我们想通过微服务订阅 Kafka 主题。为了使服务不必同时接受来自周围系统的 API 调用和 Kafka 消息,我们想插入一个“导入器服务”。但是,最终我们会再次遇到同样的问题,因为导入器服务现在必须同时处理 Kafka 消息和来自上述微服务的 API 调用。作为这个问题的解决方案,我们考虑让两个服务访问同一个数据库。然后,导入器服务可以接收 Kafka 消息,对其进行处理并将其写入数据库。原来的微服务不会转到导入服务,而是直接从数据库中获取数据。但是,这种方法似乎有点脏,因为您不应该在服务之间共享数据库。你有什么想法如何更优雅地解决这个问题吗?如果没有更好的方法,真的应该由一个服务同时处理 Kafka 消息和 API 调用吗?
【问题讨论】:
-
如果数据库分离是您的问题,请查看 CQRS 模式。另外Kafka Connect通常用于写入数据库,而不是自己编写数据库客户端服务
标签: rest apache-kafka architecture microservices publish-subscribe