Тест живучести для клиента RabbitMQ (потребитель)
Я хотел бы узнать / получить мнения о том, как настроить датчик живучести для потребителя очереди 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 ответ
Во-первых, вам нужно будет указать конечную точку 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/)