设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 安全 > 正文

千亿级eBay平台的Kafka深度实践(3)

发布时间:2021-01-12 16:02 所属栏目:53 来源:网络整理
导读:openstack 提供了一套接口做这种事情,但是接口后面必须要选择一个基于 ALQP 的协议,同样对于配置也是一样,Kafka ?默认配置是什么样的,我们也有一些配置优化,改了一些配置让它对所有节点优化,怎么管理这些配置也是在

openstack 提供了一套接口做这种事情,但是接口后面必须要选择一个基于 ALQP 的协议,同样对于配置也是一样,Kafka ?默认配置是什么样的,我们也有一些配置优化,改了一些配置让它对所有节点优化,怎么管理这些配置也是在 Prism 服务器里做的.

3、系统监控和自动化

那么说了这么多,平台最终上线的时候,我们要对它进行运维,运维里最重要的是我们要把系统监控好,并且当它出现问题的时候我们要及时修复它.对于这个系统监控是非常重要的课题.

3.1 集群节点监控

可以看出来,我们在这个系统中,其实是涉及到很多节点,对所有的我们打包起来,让它完成一个业务语义.

在监控方面我们肯定要有统一视角看到一系列集群运行状况,对于所有集群节点来说,并不是说宕一个节点就不行了,因为 Kafka 有数据冗余,宕一两个节点是没有问题的.

所以这里我就列出运营的节点是宕的,还是说健康的,我们运维人员对宕掉的节点进行修复.我们目前还是用人工的方式进行修复,因为我们需要分析这些也点宕掉的原因.

目前来讲,系统运行时间并没有超过一年,所以我们目前采用了人工的方式.以后我们会考虑当任何一个节点出现问题的时候,进行自动替换,自动替换的时候必然要引入一些规则,什么情况下可以自动停,什么情况下不能自动停.

4.2 ?Kafka状态监控

对于 Kafka 来讲,我们对每个节点,还有 Kafka 本身状态的监控.对于 Kafka 系统运维人员来说,这个节点的系统资源也是需要监控很重要的内容,对于管理员来讲系统状态是很重要的.

还有一种情况不仅对管理员重要,对用户也是很重要的,比如 Kafka 状态监控,对于用户来讲,比如我想知道我昨天进入 Kafka 集群有多少数据,所以这个方面的监控,除了给运维人员,也提供给系统的用户.

对于 consumer 也是一样,对于 Kafka 来讲很重要的监控是我要知道我的 consumer 到底有一个 leg.

如果这个 leg 一直增加的话,就说明 consumer 的应用肯定有问题的,我必须要对它进行一定处理,所以这个地方相当于我们帮助用户把这些问题严控起来.

发生问题的时候,不仅 consumer 管理员要知道,它的用户也要知道,所以报警系统也是通知到用户.另外我们有些应用是有端到端要求的,我们必须知道数据从应用发出来,到进到 Kafka,到底有多长时间.

3.3 故障节点监测与处理

那么在 Kafka 里面,在运维过程我们发现有一个很重要的课题,对于慢节点怎么处理,什么叫慢节点?

其实 Kafka 能够很好的处理节点坏掉的情况,因为宕掉一两个节点对于它来说不要紧,它可以很快把坏的节点拿掉,它可以从别的节点上迅速选过来.

但是这种慢节点并没有死掉,只是比较慢的工作,比如正常情况下,它的吞吐率只有原来的1/10,那 Kafka 就不能把它拿掉,我们发现大部分系统都是存在这种问题.

为什么说一个节点出现性能问题,会影响整个 Kafka 集群呢?我们只有 Kafka 是做数据集群的.一旦这个节点性能出现问题,你到所有其他节点网络连接的数据都会有问题.

相当于它会拖累很多其他节点,出去 Kafka 集群在这个时候把这个节点干掉了,如果没有干掉,这个拖累会一直存在.

所以这就是我们为什么要在慢节点检测,慢节点比死掉的节点处理更麻烦,因为这种也点还在.比如我们可以看你的 CPU 在多长时间达到多少以上,我们要建立一些规则.

同时我们也要对磁盘进行监控,IO 的性能是不是出现了大的问题.同时要对系统日志异常进行分析,最后还有一个更为直接的方式,我们创建一些 footprint topic,我定期对 topic 进行测试,首先看看通不通,再看看速率有没有问题,这样我就可以知道节点有没有问题.

如果我检测出来慢节点之后怎么处理?

最简单的处理方式,就是把它停掉,其实把它停掉还是安全的,如果你觉得停掉对系统吞吐率造成影响的话,我们可以采取重启的方式,但是对于很多慢节点来说,你把它重启了它还是会慢.

如果一个节点,一个盘占用需非常高,这就说明资源分配很不均匀,这个我们引入 partition ?reassignrnert 来处理就不太好做,还是需要人工去处理.

3.4 Offset索引和自动背援

刚才我们说了我们的 Kafka 集群是在每个数据中心有独立拷贝的,比如北京数据中心整个 Kafka 宕掉了,那我能不能切到上海数据中心继续 consumer,那怎么做到这一点,不用人为干预情况下,会自动的切过去?

这就需要用到 Kafka 的代理,如果代理知道数据中心出问题了,把 Kafka 返回的信息发回到另一个数据中心,这时候就可以进行很好的处理.

对于 consumer 需要做另外一个事情,因为对于同一个信息在不同数据中心是不一样的.

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读