我有一个用例,我的Kafka集群将拥有1000个经纪人,而我正在编写Kafka客户端。 为了编写客户端,我需要提供经纪人列表。
问题是,在客户中提供经纪人名单的建议指南是什么?
我们可以向客户提供kafka中可用的代理服务吗? - 该代理将知道集群中的所有代理并将客户端连接到适当的代理。 - 就像在redis世界中,我们有twemproxy(胡桃夹子) - confluent-rest-api可以作为代理吗?
是否建议在客户端提供任意数量的代理,例如提供3个代理的列表,即使集群有1000个节点? - 如果提供经纪人崩溃怎么办? - 如果提供经纪人重新启动并且位置/ IP发生变化会怎样?
答案 0 :(得分:1)
传递给客户端的代理URL列表仅用于引导客户端。因此,客户端将自动自动了解所有其他可用的代理,并连接到需要“与之交谈”的正确代理。
因此,如果客户端已经运行,那些经纪人就会崩溃,客户端甚至都不会注意到。只有当所有这些代理同时关闭,并且启动客户端时,客户端才会“挂起”,因为它无法连接到群集并最终超时。
建议至少提供3个代理网址以“幸免”2个经纪人的中断。但是如果你需要更高水平的弹性,你也可以提供更多。