API和消息消费者应该在同一个微服务中吗?

时间:2018-01-29 03:11:48

标签: apache-kafka microservices distributed-system

我的团队对于如何使用消息总线构建我们的微服务感到非常震惊。

我们目前有一个API网关,其后面有许多微服务,都通过http进行通信。

在研究消息总线(Kafka)的实施之后,团队对消费者和API是否应该存在于同一服务中,或者它们应该是两个独立的服务感到不满。

有些人认为它们应该是分开的,因为它们有不同的扩展问题,而其他人认为它们应该在同一个服务中,因为它们与同一个数据库进行通信并且具有相同的域关注点。 IE)不在两个服务之间复制代码。

你有什么想法?

1 个答案:

答案 0 :(得分:2)

我们更喜欢他们在相同的服务中,因为他们逻辑上在相同的对象上工作。

这在很大程度上取决于您编写业务逻辑的方式。就像我们更喜欢在聚合(域驱动设计)中编写业务逻辑,这就是为什么在同一服务中编写消费者是有道理的。

在某些情况下,他们只是更新数据以搜索各种事物,您可以将它们写在单独的服务中。

您还可以查看Lagom(java的微服务框架)