【问题标题】:How does Kafka Cluster handle single request?Kafka Cluster 如何处理单个请求?
【发布时间】:2021-08-15 00:01:30
【问题描述】:

假设我有一个 1000 个节点的 Kafka 集群。假设某个生产者向某个主题发送了一条消息,那么集群中第一个收到该消息的节点是什么? Kafka 集群内部有负载均衡器吗?假设这个节点没有消息应该推送到的lead partition,它可以将消息转发到包含这个partition的broker吗?

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    客户端知道集群的所有broker,只能生产到它可以识别的leader topic partition,并且只托管在一个broker上。控制器定义领导How many Kafka controllers are there in a cluster and what is the purpose of a controller?

    没有负载均衡器,所有代理在可以接收的请求方面都是平等的,并且不会将事件重定向到复制之外的其他人

    prouder 客户端中的分区器实例将对消息的键进行哈希处理(默认情况下,如果键不为空),并以主题中的分区数为模。使用该值,它将生成到托管该分区号的特定代理

    【讨论】:

    • 客户端如何知道集群的所有broker?客户是否与提供所有其他经纪人名单的经纪人交谈?客户如何知道该联系哪个经纪人?
    • 那是控制器的职责,也是bootstrap过程(可以给客户端一个地址,然后与控制器通信全部返回)。总体而言,在您的应用程序发送记录之前,远不止一个“单一请求”。出于某种原因,您是否总体上担心网络流量?
    猜你喜欢
    • 2020-07-29
    • 2018-08-19
    • 2013-01-12
    • 2013-01-31
    • 2014-01-07
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多