首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kafka bootstrap.servers作为DNS A-记录有多个IP

kafka bootstrap.servers作为DNS A-记录有多个IP
EN

Stack Overflow用户
提问于 2018-03-28 12:37:09
回答 2查看 7.2K关注 0票数 3

我有一个卡夫卡与5个经纪人集群,我使用领事服务发现,把他们的IP到dns记录。

代码语言:javascript
复制
kafka.service.domain.cc A 1.1.1.1 2.2.2.2 ... 5.5.5.5

是否建议只使用一个域名: kafka.bootstrap.servers = kafka.service.domain.cc:30000

还是最好有多个域名(至少2个),每个域名解析为一个代理

代码语言:javascript
复制
kafka1.service.domain.cc A 1.1.1.1
kafka2.service.domain.cc A 2.2.2.2

然后在卡夫卡中使用它们

代码语言:javascript
复制
kafka.bootstrap.servers = kafka1.service.domain.cc:30000,kafka2.service.domain.cc:30000

我对第一种方法的担忧是,域名将只被解析一次给一个随机代理,如果该代理被关闭,则不会发生新的dns解析。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-28 16:32:08

来自Mastering Apache Kafka一书

bootstrap.servers是一个以逗号分隔的主机和端口对列表,这些主机和端口对是卡夫卡代理在一个“引导”卡夫卡集群中的地址,卡夫卡客户端最初连接到这个集群以引导自己。 bootstrap.servers提供初始主机,作为卡夫卡客户端发现集群中完整的活动服务器集的起点。由于这些服务器只是用于初始连接,以发现完整的集群成员资格(这可能会动态变化),因此这个列表不必包含完整的服务器集(但是,如果服务器停机,您可能需要多个服务器)。 客户端(生产者或消费者)使用所有服务器,而不管在bootstrap.servers中指定了哪些服务器进行引导。

因此,由于属性bootstrap.servers提供初始主机,作为卡夫卡客户端发现集群中完整的活动服务器集的起点,我认为这两种方法都可以。但是,由于他们将属性的值保持为逗号分隔列表,我想第二种方法将是推荐的方法。而且,在方法1中,这也是一个问题,在引导过程中,随机代理可能会关闭,并且客户端将不会继续获取集群信息。因此,如果一个代理在引导过程中出现故障,最好提供一个以上的备份。

票数 7
EN

Stack Overflow用户

发布于 2019-10-08 06:02:48

Kafka2.1支持在bootstrap.servers中处理多个DNS资源记录。

如果在客户端配置中设置client.dns.lookup="use_all_dns_ips",它将使用DNS返回的所有IP地址,而不仅仅是第一个IP地址(或随机地址)。

有关更多信息,请参见基普-235基普-302

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49534749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档