蟒蛇。 kafka raft 连接到控制器

问题描述 投票:0回答:1

我想连接到端口 9093 上的 kraft 控制器(非代理)。而且我无法连接

代码示例:

#!/usr/bin/env python3

from confluent_kafka.admin import AdminClient
import json
import os

credentials = 'credentials/example.json'
with open(credentials, 'r') as json_file:
    data = json.load(json_file)


conf = {
    'bootstrap.servers': 'kafkacontroller1.example.com:9093',
    'security.protocol': 'SASL_SSL',
    'ssl.ca.location': os.path.abspath('./credentials/example/ca_cert'),
    'ssl.certificate.location': os.path.abspath('./credentials/example/ca'),
    'ssl.key.location': os.path.abspath('./credentials/example/ca_key'),
    'ssl.key.password': data['SSLKeyPassword'],
    'sasl.mechanism': 'PLAIN',
    'sasl.username': data['username'],
    'sasl.password': data['password'],
    'enable.ssl.certificate.verification': 'false',
    'debug': 'security,broker,protocol'
}

admin_client = AdminClient(conf)

try:
    cluster_metadata = admin_client.list_topics(timeout=10)
    
    controller_id = cluster_metadata.controller_id
    print(f"Controller ID: {controller_id}")

    brokers = cluster_metadata.brokers
    print(f"Total brokers: {len(brokers)}")

    print(f"Number of controllers: {1 if controller_id else 0}")

except Exception as e:
    print(f"Error occurred: {e}")

当然没有连接。 提供的代码示例适用于代理,但不适用于控制器。 所以问题是 - 我是否应该尝试连接到控制器?如果是这样,我会在那里看到什么? 如果可能的话,我希望从控制器获得某种可理解的集群状态。

python apache-kafka kraft
1个回答
0
投票

简短的回答是否定的 - Raft 控制器专门用于代理,引导服务器配置专门用于“发现”代理。 AdminClient 将找到集群领导节点并正确转换任何请求。

© www.soinside.com 2019 - 2024. All rights reserved.