У нас есть микросервисная архитектура, переданная Kafka на Confluent, где каждая служба настроена в своей собственной группе потребителей, чтобы сбалансировать доставку сообщений между несколькими экземплярами.
Например:
SERVICE_A_INSTANCE_1 (CONSUMER_GROUP_A)
SERVICE_A_INSTANCE_2 (CONSUMER_GROUP_A)
SERVICE_A_INSTANCE_3 (CONSUMER_GROUP_A)
SERVICE_B_INSTANCE_1 (CONSUMER_GROUP_B)
SERVICE_B_INSTANCE_2 (CONSUMER_GROUP_B)
Когда сообщение отправляется, оно должно использоваться только одним экземпляром каждой группы потребителей.
Это работало нормально до двух дней назад. Внезапно каждое сообщение доставляется всем экземплярам, поэтому каждое сообщение обрабатывается несколько раз. По сути, группа потребителей перестала работать, а сообщения не распространяются.
Важные моменты:
- Мы используем Kafka Paas в Confluent на GCP.
- Мы проверили это в другой среде, и все заработало как положено
- На наших потребителях изменений не было
- С нашей стороны в кластер не было внесено никаких изменений (мы не можем знать, изменил ли Confluent что-либо)
Мы подозреваем, что это может быть проблема на Confluent или обновление, которое не совместимо с нашей текущей конфигурацией. Kafka 2.2.0 был недавно выпущен и в нем есть некоторые изменения в поведении групп потребителей.
В настоящее время мы работаем над переходом на AWS MSK, чтобы выяснить, существует ли проблема.
Есть идеи о том, что может быть причиной этого?