【问题标题】:Increasing Scalability of a microservice based system提高基于微服务的系统的可扩展性
【发布时间】:2020-08-10 05:44:49
【问题描述】:

我正在使用 KAFKA 从源获取数据。 我想知道,如果我在微服务架构中串行增加组件的数量,是否会使其更具可扩展性?或者只是增加相同组件类型的 KAFKA 消费者数量会增加它? PS:不好意思,第一次发帖。

【问题讨论】:

    标签: architecture microservices scalability


    【解决方案1】:

    每个主题分区由每个消费者组中的单个线程使用。如果要增加吞吐量,则需要对默认为 1 的特定主题进行分区。如果对主题进行分区,则可以使用每个分区的单独线程并行使用该主题。这些线程可能在不同的部署中,这取决于你的架构,这里没有限制。

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

    【讨论】:

      【解决方案2】:

      我建议您阅读 kafka 文档或一些书,例如 o'reilly 的 kafka 权威指南,以更好地理解。但基本上在kafka中你有消费者组和所有消费者(服务),共享同一个消费者组将协作,这意味着这些服务之一消费的事件不会被其他人消费,所以这样你就可以并行化消费者过程。

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

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

      【讨论】:

        猜你喜欢
        • 2012-02-11
        • 2021-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-12
        • 1970-01-01
        • 2011-06-12
        相关资源
        最近更新 更多