Датчик живучести для клиента RabbitMQ (Потребитель) - PullRequest
0 голосов
/ 19 ноября 2018

Я хотел бы узнать / получить мнение о том, как настроить датчик живучести для потребителя очереди RabbitMQ.Я не уверен, как проверить, обрабатывает ли потребитель все еще сообщения из очереди.Я уже пытался найти некоторые подсказки по Интернету, но не смог найти.Так что просто задайте вопрос здесь, чтобы увидеть, есть ли у кого-нибудь идея.

Кодовый блок, который я хочу убедиться в правильной работе:

                var consumer = new EventingBasicConsumer(channel);
                consumer.Received += (model, ea) =>
                {
                    var body = ea.Body;
                    var message = Encoding.UTF8.GetString(body);
                    Console.WriteLine($"Message Received: {message}");
                };

Спасибо.

1 Ответ

0 голосов
/ 19 ноября 2018

Во-первых, вам нужно будет указать конечную точку HTTP в коде приложения, которая проверяет, жив ли пользователь или нет.

Существует много способов проверить жизнеспособность потребителя, например, вы можете проверить отметку времени последнего использованного сообщения. Если он слишком старый, вы можете объявить потребителя мертвым, вернув ошибку HTTP 500, в противном случае вернуть HTTP 200. Это зависит от вашей бизнес-логики, вы можете использовать то, что я предложил, или любой другой метод, который соответствует вашим потребностям.

Получив конечную точку HTTP, вы можете определить пробу живучести в манифесте Kubernetes.

livenessProbe:
      httpGet:
        path: /healthz
        port: 8080
        httpHeaders:
        - name: X-Custom-Header
          value: Awesome
      initialDelaySeconds: 3
      periodSeconds: 3

(взято из https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/)

...