Kafka宕机引发的高可用问题
问题要从一次Kafka的宕机开始说起。
笔者所在的是一家金融科技公司,但公司内部并没有采用在金融支付领域更为流行的RabbitMQ,而是采用了设计之初就为日志处理而生的Kafka,所以我一直很好奇Kafka的高可用实现和保障。从Kafka部署后,系统内部使用的Kafka一直运行稳定,没有出现不可用的情况。
但最近系统测试人员常反馈偶有Kafka消费者收不到消息的情况,登陆管理界面发现三个节点中有一个节点宕机挂掉了。但是按照高可用的理念,三个节点还有两个节点可用怎么就引起了整个集群的消费者都接收不到消息呢?
要解决这个问题,就要从Kafka的高可用实现开始讲起。
数据库
- 2.1 池化技术:如何减少频繁创建数据库连接的性能损耗?
- 2.2 数据库优化方案(一):查询请求增加时,如何做主从分离?
- 2.3 数据库优化方案(二):写入数据量增加时,如何实现分库分表?
- 2.4 发号器:如何保证分库分表后ID的全局唯一性?
- 2.5 NoSQL:在高并发场景下,数据库和NoSQL如何做到互补?