Я настроил рекламируемый_прослушиватель с открытым текстом и хочу подключиться к нему через конфлюэнтный клиент C#, но при попытке подключения, я получаю сообщение об ошибке «неправильная конфигурация Security.protocol», хотя я настроил брокера на использование PLAINTEXT и установил его в своем клиенте?
мой файл компоновки можно запустить, и с ним работает kafka консоль prod/con, и я протестировал клиент с помощью быстрой настройки redpanda kafka и смог отправлять и получать данные через клиент C#.
Я знаю, что начинаю, и что, вероятно, есть уже много информации, может быть, даже по этой конкретной теме, я надеюсь, что вы оставите комментарий со ссылкой на нее, чтобы я мог изучить ее. я ценю вашу помощь
Код: Выделить всё
localhost:19092/bootstrap: Enter main broker thread
localhost:19092/bootstrap: Received CONNECT op
localhost:19092/bootstrap: Broker changed state INIT -> TRY_CONNECT
localhost:19092/bootstrap: broker in state TRY_CONNECT connecting
localhost:19092/bootstrap: Broker changed state TRY_CONNECT -> CONNECT
librdkafka v2.5.3 (0x20503ff) rdkafka#producer-1 initialized (builtin.features gzip,snappy,ssl,sasl,regex,lz4,sasl_gssapi,sasl_plain,sasl_scram,plugins,zstd,sasl_oauthbearer,http,oidc, SSL ZLIB SNAPPY ZSTD CURL SASL_SCRAM SASL_OAUTHBEARER PLUGINS HDRHISTOGRAM, debug 0x2)
localhost:19092/bootstrap: Connecting to ipv4#127.0.0.1:19092 (plaintext) with socket 1004
localhost:19092/bootstrap: Connected to ipv4#127.0.0.1:19092
localhost:19092/bootstrap: Connected (#1)
localhost:19092/bootstrap: Updated enabled protocol features +ApiVersion to ApiVersion
localhost:19092/bootstrap: Broker changed state CONNECT -> APIVERSION_QUERY
localhost:19092/bootstrap: Disconnected while requesting ApiVersion: might be caused by incorrect security.protocol configuration (connecting to a SSL listener?) or broker version is < 0.10 (see api.version.request) (after 1ms in state APIVERSION_QUERY) (_TRANSPORT)
localhost:19092/bootstrap: Disconnected while requesting ApiVersion: might be caused by incorrect security.protocol configuration (connecting to a SSL listener?) or broker version is < 0.10 (see api.version.request) (after 1ms in state APIVERSION_QUERY)
localhost:19092/bootstrap: Updated enabled protocol features -ApiVersion to
localhost:19092/bootstrap: Broker changed state APIVERSION_QUERY -> DOWN
localhost:19092/bootstrap]: 1/1 brokers are down
kafka 3.8.0
Confluent.Kafka 2.5.3
Docker версия 27.2.1-rd, сборка cc0ee3e
Код C#:
Код: Выделить всё
public static async Task Main(string[] args){
string role = args[0];
string topic = args[1];
string hostname = args[2];
string port = args[3];
switch (role) {
case "producer": await Producer(topic,hostname,port); break;
case "consumer": Consumer(topic,hostname,port);break;
default: Console.WriteLine("Usage: \"producer\" or \"consumer\"");break;
}
}
public static async Task Producer(string topic,string hostname, string port){
var config = new ProducerConfig{
BootstrapServers = hostname+":"+port,
SecurityProtocol = SecurityProtocol.Plaintext,
BrokerAddressFamily = BrokerAddressFamily.V4,
Debug ="broker",
ApiVersionRequest = false,
};
using (var p = new ProducerBuilder(config).Build()){
try{
string msg = "Hello World";
var dr = await p.ProduceAsync(topic,new Message
{Value = msg}
);
Console.WriteLine($"Send: '{dr.Value}' to '{dr.TopicPartitionOffset}' ");
}catch(ProduceExceptione){
Console.WriteLine($"Error: {e.Error.Reason}");
}
}
Код: Выделить всё
services:
broker:
image: apache/kafka:latest
container_name: broker
hostname: broker
networks:
- kafka-nw
ports:
- 9092:9092
- 19092:19092
environment:
KAFKA_NODE_ID: 1
KAFKA_PROCESS_ROLES: broker,controller
#KAFKA_LISTENERS: PLAINTEXT://localhost:9092,CONTROLLER://localhost:9093
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,HOST://localhost:19092,CONTROLLER://0.0.0.0:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:19093,HOST://localhost:19092
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,HOST:PLAINTEXT
#KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,HOST:SASL_PLAINTEXT
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@localhost:9093
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
KAFKA_NUM_PARTITIONS: 3
networks:
kafka-nw:
РЕДАКТИРОВАНИЕ 04.11.2024:
Решено! Моя настройка: Ноутбук компании -> Windows -> docker -> wsl -> kafka
Как оказалось, Windows не зарегистрировала необходимые порты Kafka в моем компоновке докера из-за... После небольшого перезапуска и использования команд netstat и тому подобного все заработало. (Ничего, показанное здесь, не было изменено).
Может считаться закрытым, поскольку базовый код и композиция докера были правильными.
Подробнее здесь: https://stackoverflow.com/questions/790 ... sion-query