apache-kafka - 您如何正确编写 Kafka Streams 健康检查?
问题描述
Kafka 将在内部杀死任何未正确轮询的节点,但我们不希望坏节点继续运行,我们希望了解哪些节点正在工作,因此我们自然希望构建一个经典的健康检查。
建立健康检查的明显方法是使用KafkaStream#state#isRunning
,但这完全是骗人的。如果到 Kafka 的底层网络连接断开,或者有十几个不会导致内部线程死亡的事情中的任何一个,KafkaStreams
即使日志到处抛出错误,它仍然会报告自己是活动的。是否有任何正确的方法可以了解 Kafka 流中发生的事情?在与 Kafka 打交道时,是否期望进行理智的健康检查是错误的做法?
需要明确的是,我不是在谈论 Kafka集群的健康检查,特别是 Streams 处理器节点。
解决方案
推荐阅读
- c++ - ROS 2 中两个工作区之间的链接
- laravel - PHP Laravel 迁移
- node.js - 未找到这些依赖项:asyncToGenerator 和其他 9 个
- django - Getting field value with DjangoRestFramework serializer
- security - 我们如何在 Django 石墨烯中为 graphql api 添加授权?
- python - 我对编程很陌生,这是我的第一个 python 脚本作业。有人可以告诉我我做错了什么吗?
- c++ - 涉及派生类成员函数
- windows - 使用 powershell 下载某些文件会产生损坏的文件
- python - where have i generated the reported ambiguity and how do i resolve it?
- python - ImportError: 尝试在没有已知父包的情况下进行相对导入 :(