Проверка работоспособности клиента: проверка для потребителя / производителя, если брокер не работает - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть требование для реализации проверки работоспособности, и как часть этого я должен выяснить, сможет ли производитель опубликовать сообщение sh, а потребитель сможет получить сообщение потребителя, для этого я должен проверить, работает ли соединение с кластером который можно проверить, используя metri c «connection_count», но это не дает реальной картины, особенно для потребителя, которая будет привязана к определенным брокерам, на которых раздел для этого потребителя.

Ситуация с производителем еще сложнее, поскольку производитель может публиковать сообщение любому брокеру, который содержит раздел для topi c, на котором публикуется производитель.

В двух словах, как мне определить состояние здоровья соответствующих брокеров по производителям / потребителям?

1 Ответ

0 голосов
/ 15 апреля 2020

В конечном счете, я делю вопрос на несколько проверок.

  1. Можете ли вы связаться с брокером? AdminClient.describeCluster работает для этого

  2. Можете ли вы описать Topi c, которые вы используете? AdminClient.describeTopic может сделать это

  3. Список ISR для этих тем выше min.in.sync.replicas? Экстраполировать данные из (2)


На стороне производителя вы можете предоставить данные JMX с размером буфера ... Если буфер периодически не сбрасывается, то он не здоровый.

Для потребителя посмотрите на условия, при которых произойдет перебалансировка (например, длительное время обработки между опросами), затем вы сможете быстро определить, что значит быть «нездоровым» для них.


Некоторые из этих концепций, которые я написал между

Я хотел бы думать, что у Spring есть нечто подобное

...