Apache Kafka 是一款由 LinkedIn 开发基于发布-订阅的容错开源消息传递系统。Kafka 提供分布式日志服务,因其较高的吞吐量、可伸缩性、可靠性和复制,通常被用来代替传统的消息代理。
Kafka 的设计以集群为中心,提供了健壮的持久和故障容错能力。因为 Kafka 是分布式系统,会在多个节点间进行主题分区和复制;深入研究会发现其中精密的的技术细节深度。Kafka 通过高效的性能监控和即时问题告警,成为极具吸引力的数据集成热门。Applications Manager 会收集有助于排除 Kafka 故障的所有性能指标,并针对采取措施的问题向发出告警。
自动发现 Kafka 服务器,并跟踪资源利用率详细信息,例如一段时间内的内存、CPU 和磁盘使用率增长,确保不会耗尽资源。确保 Apache Kafka 服务器正常运行并持续如期工作。在资源使用率激增或出现异常时迅速收到通知。
Kafka 在 Java 虚拟机 (JVM) 中运行,它依靠 Java 垃圾回收进程来释放内存。Kafka 集群越活跃,运行垃圾回收的频率就会越高。跟踪 JVM 堆大小,并确保启动的线程不会造成服务器内存用量过高。通过“守护线程数”、“高峰线程数”和“活动线程数”等指标跟踪线程使用率,避免系统中出现性能瓶颈。
在 Kafka 集群中,其中一个代理充当控制器,负责管理分区和副本的状态,以及执行重新指派分区等管理任务。监控活动控制器以了解发生问题时哪个代理是控制器,并监控离线分区计数以避免服务中断。监控代理的日志强制写延迟 - 将日志强制写入磁盘所花费的时间越长,管道需要备份的内容就越多。跟踪复制情况欠佳的分区,以确定复制是否以配置的速度进行。
获取主机网络使用率的概览,跟踪代理主题的网络吞吐量或汇总传输字节速率,以获取有关潜在问题所在位置的更多信息。作出例如是否启用消息端到端压缩等明智决策,。
在 Apache Kafka 的组件出现性能问题时接收即时通知。了解性能瓶颈,并确定哪个应用程序导致负载过高。在终端用户遇到问题之前迅速采取补救措施。