基于微服务的系统的可扩展性

时间:2020-04-26 18:22:01

标签: architecture microservices scalability

我正在使用KAFKA从来源获取数据。 我想知道,如果我增加微服务架构中的组件数量,是否会使它更具扩展性?还是仅仅增加相同组件类型的KAFKA消费者的数量就会增加吗? PS:对不起,有任何错误,我是第一次发布问题。

2 个答案:

答案 0 :(得分:0)

我建议您阅读kafka文档或诸如o'reilly的kafka权威指南之类的书,以更好地理解。但基本上,在kafka中,您拥有消费者组,并且共享相同消费者组的所有消费者(服务)将进行协作,这意味着这些服务之一所消耗的事件将不会被其他服务所消耗,因此您可以通过这种方式并行化消费者过程。

当您创建同一服务的更多实例时,会发生这种情况,因为这两个服务将共享相同的配置,因此它们将共享相同的使用者组。

另一方面,如果这两个服务属于不同的消费者组,则它们将独立处理所有事件

答案 1 :(得分:0)

每个使用者分区中的每个线程都使用一个主题分区。如果要增加吞吐量,则需要对该特定主题进行分区,默认为1。如果对主题进行分区,则可以与每个分区同时使用带有单独线程的主题。这些线程可能位于不同的可部署对象中,这取决于您的体系结构,此处没有限制。

对主题进行分区时,可能需要在生产者端和消费者端都做一些额外的工作,以便在这些微服务之间提供数据一致性。可能有一些消息需要按照它们产生的顺序进行使用。在这种情况下,您需要将相关消息发送到同一分区,以强制按顺序使用它们。