Я использую кластер Kafka из Bitnami в Azure (https://bitnami.com/stack/kafka/cloud/azure). Это кластер из одного узла с брокером на одной виртуальной машине и Zookeeper на другой. Я включил порты 9090 и 2181.
У меня есть .Net Core WebApps, работающие в Azure с Confluent .NET Client (v1.0.0) для Kafka. В WebApp настроены производители и потребители.
Проблема, с которой я сталкиваюсь, заключается в том, что вскоре после запуска веб-приложения происходит сбой потребителя из-за истечения пульса . Но пока что он может получать некоторые сообщения от производителя. Даже если я просто запускаю только одного Потребителя, он автоматически завершается ошибкой после SessionTimeoutMs из-за истечения срока действия пульса.
Я не могу понять, почему сердцебиение прекращается (когда сообщения принимаются потребителем). Это происходит на отдельном порту? Если я установлю SessionTimeoutMs = 300000 (макс.), Он истекает ровно через 5 минут.
Журнал сервера (когда я добавляю потребителя в WebApp - обратите внимание, что пульс истекает в течение 16 секунд):
[2019-05-22 17:57:42,302] INFO [GroupCoordinator 1001]: Preparing to rebalance group test-consumer-group-new2 in state PreparingRebalance with old generation 4 (__consumer_offsets-40) (reason: Adding new member rdkafka-03f8db78-4f74-4cb2-9389-bb949c53281c) (kafka.coordinator.group.GroupCoordinator)
[2019-05-22 17:57:42,303] INFO [GroupCoordinator 1001]: Stabilized group test-consumer-group-new2 generation 5 (__consumer_offsets-40) (kafka.coordinator.group.GroupCoordinator)
[2019-05-22 17:57:42,349] INFO [GroupCoordinator 1001]: Assignment received from leader for group test-consumer-group-new2 for generation 5 (kafka.coordinator.group.GroupCoordinator)
[2019-05-22 17:57:58,403] INFO [GroupCoordinator 1001]: Member rdkafka-03f8db78-4f74-4cb2-9389-bb949c53281c in group test-consumer-group-new2 has failed, removing it from the group (kafka.coordinator.group.GroupCoordinator)
[2019-05-22 17:57:58,403] INFO [GroupCoordinator 1001]: Preparing to rebalance group test-consumer-group-new2 in state PreparingRebalance with old generation 5 (__consumer_offsets-40) (reason: removing member rdkafka-03f8db78-4f74-4cb2-9389-bb949c53281c on heartbeat expiration) (kafka.coordinator.group.GroupCoordinator)
[2019-05-22 17:57:58,404] INFO [GroupCoordinator 1001]: Group test-consumer-group-new2 with generation 6 is now empty (__consumer_offsets-40) (kafka.coordinator.group.GroupCoordinator)
Мой server.properties:
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://40.X.X.X:9092
Конфигурация потребителя:
var conf = new ConsumerConfig
{
GroupId = "test-consumer-group-new2",
BootstrapServers = "40.X.X.X:9092",
SecurityProtocol = SecurityProtocol.Plaintext,
SaslMechanism = SaslMechanism.Plain,
SaslUsername = "user",
SaslPassword = "<passowrd>"
}
Я также не понимаю старое / новое Поколения в Кафке и не смог найти документацию по этому же. Кто-нибудь может пролить свет на это? Спасибо.