在kafka console producer中,--broker列表包含服务器列表。制作人和他们都有联系吗(或者)生产商是否使用服务器列表连接其中一个服务器,如果该服务器出现故障,则切换到下一个服务器,以此类推?
类似地,在kafka控制台中--bootstrap服务器获取kafka服务器的列表。如果有两个kafka服务器,是否需要在--bootstrap服务器中同时指定它们?我试着用一台服务器(kafka-server1)运行消费者,当我停止kafka-server1时,它继续接收主题的数据。
1条答案
按热度按时间qaxu7uf21#
他们俩的行为是一样的。
如果你看Kafka的源代码,你会发现这两个选项导致相同的结果
"bootstrap.servers"
配置属性使用者和生产者都将以循环方式连接到提供的地址列表,以创建到kafka控制器的初始“boostrap”连接,kafka控制器知道在给定时间集群中所有可用的代理。对于高可用性,最好至少给出3个。
如果有两个kafka服务器,是否需要在--bootstrap服务器中同时指定它们?
关于有多个可用地址可供使用,在云环境中,您可能在可用性区域上有代理,建议每个可用性区域至少列出2个代理,因此3个区域总共有6个代理。
可以使用负载均衡器/反向代理将为客户端提供的地址简化为单个
kafka.your.network:9092
地址,但是为了拥有一个单独的、众所周知的地址,你引入了额外的dns和网络跳数来确定连接。在任何情况下,代理的所有可用地址都将交给客户端,然后在本地缓存。
但是,重要的是要认识到,所有发送/轮询请求都只与主题分区的单个前导进行通信,而不管您提供了多少地址以及一个主题将有多少副本。