Apache kafka kafka bootstrap.server作为具有多个IP的DNS A记录
我有一个Kafka集群,有5个代理,我正在使用Concur Service Discovery将他们的IP放入dns记录中Apache kafka kafka bootstrap.server作为具有多个IP的DNS A记录,apache-kafka,spark-streaming,flume,high-availability,resolve,Apache Kafka,Spark Streaming,Flume,High Availability,Resolve,我有一个Kafka集群,有5个代理,我正在使用Concur Service Discovery将他们的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 kafka
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解析。摘自《掌握Apache Kafka》一书:
bootstrap.servers
是以逗号分隔的主机和端口对列表
这是卡夫卡经纪人在“引导”卡夫卡中的地址
Kafka客户端最初连接到的群集,以引导自身
bootstrap.servers
提供充当引导服务器的初始主机
Kafka客户端发现完整的活动数据集的起点
集群中的服务器。因为这些服务器只是用于
发现完整群集成员身份的初始连接(可能
动态更改),此列表不必包含完整的集合
服务器的数量(但是,如果服务器不可用,您可能需要多个服务器)
向下)
客户端(生产者或消费者)使用所有服务器
其中的服务器在bootstrap.servers中指定用于引导
因此,由于属性
bootstrap.servers
提供了初始主机,作为Kafka客户端发现集群中全套活动服务器的起点,我认为这两种方法都可以。但由于他们将属性的值保持为逗号分隔的列表,我想第二种方法将是推荐的方法。在方法1中,这也是一个问题,在引导过程中,随机代理可能会关闭,客户端将无法继续获取集群信息。因此,如果一个代理在引导过程中发生故障,则最好提供多个代理作为回退。Kafka 2.1在bootstrap.servers
中包含了对处理多个DNS资源记录的支持
如果在客户端配置中设置client.dns.lookup=“use\u all\u dns\u ips”
,它将使用dns返回的所有IP地址,而不仅仅是第一个(或随机的)
有关更多信息,请参阅和