我有一个卡夫卡与5个经纪人集群,我使用领事服务发现,把他们的IP到dns记录。
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个),每个域名解析为一个代理
kafka1.service.domain.cc A 1.1.1.1
kafka2.service.domain.cc A 2.2.2.2然后在卡夫卡中使用它们
kafka.bootstrap.servers = kafka1.service.domain.cc:30000,kafka2.service.domain.cc:30000我对第一种方法的担忧是,域名将只被解析一次给一个随机代理,如果该代理被关闭,则不会发生新的dns解析。
发布于 2018-03-28 16:32:08
来自Mastering Apache Kafka一书
bootstrap.servers是一个以逗号分隔的主机和端口对列表,这些主机和端口对是卡夫卡代理在一个“引导”卡夫卡集群中的地址,卡夫卡客户端最初连接到这个集群以引导自己。bootstrap.servers提供初始主机,作为卡夫卡客户端发现集群中完整的活动服务器集的起点。由于这些服务器只是用于初始连接,以发现完整的集群成员资格(这可能会动态变化),因此这个列表不必包含完整的服务器集(但是,如果服务器停机,您可能需要多个服务器)。 客户端(生产者或消费者)使用所有服务器,而不管在bootstrap.servers中指定了哪些服务器进行引导。
因此,由于属性bootstrap.servers提供初始主机,作为卡夫卡客户端发现集群中完整的活动服务器集的起点,我认为这两种方法都可以。但是,由于他们将属性的值保持为逗号分隔列表,我想第二种方法将是推荐的方法。而且,在方法1中,这也是一个问题,在引导过程中,随机代理可能会关闭,并且客户端将不会继续获取集群信息。因此,如果一个代理在引导过程中出现故障,最好提供一个以上的备份。
https://stackoverflow.com/questions/49534749
复制相似问题