ApacheKafka—从同一主题生成和使用消息是一种不好的做法吗?

qgzx9mmu  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(367)

假设您有一个微服务体系结构,其中多个服务产生和使用单元状态。
有多种设计方法,你推荐哪种?
下面是我想到的一些选择:
创建常规主题 unit-status 并使服务使用和生成有关此主题的消息。这会导致您使用自己的消息并必须对其进行过滤。我认为这是一个肮脏的解决方案,但对于新的消费者来说,很容易获得所有的单元状态事件。
例如,为每个状态创建一个特定的主题 unit-status-created , unit-status-packaged , unit-status-loaded , unit-status-deleted 每个服务只生成它自己的主题,但是可以从主题列表中消费,不包括它自己的主题。例如,加载服务将从列表中使用( unit-status-created , unit-status-deleted , unit-status-packaged ). 这允许服务只对特定事件感兴趣,但当添加新的状态主题时,它需要对所有服务进行代码或配置更改。
为每个状态指定它自己的分区,并使用除在中生成的分区以外的所有分区。这种设计使事情变得更复杂(簿记哪个分区包含特定的状态),在添加分区时不自动平衡,在活动时添加分区使事情变得更危险,因此没有我的偏好。

olhwl3o2

olhwl3o21#

根据我的理解,我建议第一点
添加新的微服务将更容易添加新的微服务,并且仍然能够在没有太多更改的情况下工作。
业务逻辑应该是microservice it本身的一部分,而不是消息队列的一部分

相关问题