Если вы знаете, сколько брокеров должно быть в кластере , вы можете использовать AdminClient, чтобы вывести список всех брокеров, о которых контроллер Kafka знает о
using (var adminClient = new AdminClient(new AdminClientConfig { BootstrapServers = brokerList }))
{
var meta = adminClient.GetMetadata(TimeSpan.FromSeconds(20));
Console.WriteLine($"{meta.OriginatingBrokerId} {meta.OriginatingBrokerName}");
meta.Brokers.ForEach(broker =>
Console.WriteLine($"Broker: {broker.BrokerId} {broker.Host}:{broker.Port}"));
Источник - https://github.com/confluentinc/confluent-kafka-dotnet/blob/master/examples/AdminClient/Program.cs
Однако вам действительно нужно будет проверить подмножество посредников, в которых существуют реплики тем (т. Е. Описать тему вместо этого и проверить количество реплик), и что вообще существует доступный контроллер (который будет, если AdminClient вернул данные) ... Производитель и Потребитель уже предоставляют сведения об исключениях, когда соединение также недоступно для установления.