分布式、容器化kafka集群的调度方法、电子设备及存储介质技术

技术编号:37331912 阅读:43 留言:0更新日期:2023-04-21 23:09
本申请公开了一种分布式、容器化kafka集群的调度方法、电子设备及计算机可读存储介质。调度方法包括步骤:Prober

【技术实现步骤摘要】
分布式、容器化kafka集群的调度方法、电子设备及存储介质


[0001]本公开涉及计算机
,具体地涉及一种分布式、容器化kafka集群的调度方法、系统、电子设备及存储介质。

技术介绍

[0002]etcd是一种分布式key/value(键/值)存储系统,名称“etcd”源自Unix的“/etc”文件夹和“d”分布式系统,etcd用于kubernetes等分布式系统架构当中。kafka是Apache软件基金会开发的一个开源流处理平台,主要由scala以及Java语言编写,是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。Kafka

broker:由多个kafka

broker组成一个kafka集群,最小的kafka集群至少要包含不小于3个broker实例。Zookeeper是一个分布式、开源的分布式应用程序协调服务,为分布式应用提供一致性服务。在kafka集群当中,kafka依赖zookeeper来维护集群成员信息(kafka集群的元数据存储)。Kafka

proxy属于kafka

broker的代理层(kafka官方未提供此组件),主要起着负载均衡、权限控制等作用。容器是一个独立的运行环境,能对应用程序及其关联性进行隔离,本质上即是一组受到资源限制、彼此之间相互隔离的进程。Kubernetes用来管理容器集群,Kubernetes内部分为master节点,以及node节点,Master是管理者角色,node是被管理者角色(被调度)。Kubernetes的调度管理最小单元是pod。分布式、容器化kafka指的是部署在kubernetes上的kafka容器实例。Node可以是一台物理机,亦或是一台虚拟机。Pod是kubernetes管理的最小单元,一个Node上可以允许多个pod,而一个pod可以包含多个容器。Scheduler是kubernetes的调度器,可以调度部署pod。PMem(Intel Optane Persistent Memory)即“持久内存”,有别与SSD磁盘存储,PMem的延迟约1us,SSD是200us,内存DDR4是100ns,PMem的读写性能介乎于普通内存条和SATA SSD/NVMe SSD之间,但其扩展容量比普通内存条大。Naming Service(NS,名字服务),类似于域名的作用,用户访问kafka

proxy地址,配置的即是NS,通过特定名字,映射反解到对应的kafka

proxy IP地址。RACK即存放服务器的机柜。TOR即Top Of Rack,一种由服务器到交换机或交换机到交换机的一种较为常见的布线方式,TOR交换机主要面向于安全要求性较高的行业,如政府、金融、数据中心等行业,主要针对网络的汇聚、数据中心的服务器接入等场景应用,而普通交换机的网络管理与安全性能都不强。
[0003]Kafka属于有状态类服务,可包含前述kafka

proxy/kafka

broker/zookeeper等组件。现有方案并不具备Kubernetes(k8s)集群中kafka节点异常后的调度方法,比如在分布式、容器化kafka集群的组件(kafka

proxy/kafka

broker/zookeeper等)出现故障、或kafka遇到内存/CPURequestHandlerIdle/磁盘使用率等容量风险时不能排除故障、解除风险,实现集群自愈、保障稳定性。

技术实现思路

[0004]有鉴于此,本公开提供一种分布式、容器化kafka集群的调度方法、设备及存储介
质,对于分布式、容器化kafka集群的组件(kafka

proxy/kafka

broker/zookeeper)故障,提出一类调度方法,以实现集群自愈、保障稳定性;针对kafka遇到的容量风险,包含但不局限于内存/CPURequestHandlerIdle/磁盘使用率等,提出一类调度方法,来解除对应的kafka容量风险,保障稳定性。
[0005]为此,本公开实施例提供如下技术方案:
[0006]根据本公开一方面,提供一种分布式、容器化kafka集群的调度方法,所述分布式、容器化kafka集群包括用于分布式集群管理的管理器kube

apiserver、用于协同对分布式、容器化kafka集群进行调度的第一调度器scheduler和第二调度器kafka

ex

scheduler、多个用于中介服务的kafka

broker应用实例、多个用于提供一致性服务的Zookeeper组件,其特征在于,所述分布式、容器化kafka集群方法还包括多个作为kafka

broker应用实例的代理层的kafka

proxy组件、多个用于监测kafka

broker应用实例和kafka

proxy组件的Prober

agent组件、用于接收Prober

agent组件监测信息的Judger

server组件,所述调度方法包括步骤:Prober

agent组件监测对应的kafka

broker应用实例的状况并将监测异常信息发送到Judger

server组件,Judger

server组件将监测异常信息写入管理器kube

apiserver并存储到etcd中;第二调度器kafka

ex

scheduler从etcd中监听到所述监测异常信息后根据第一预设策略进行kafka

broker应用实例的调度以停用异常的kafka

broker应用实例、启用新的kafka

broker应用实例;第一预设策略包括:第二调度器kafka

ex

scheduler联动名字服务,将异常的kafka

broker应用实例的pod对应的IP进行屏蔽,使线上流量不再发往此pod上,并在同机房内、不同机柜和不同TOR位置重新部署新的kafka

broker应用实例的pod且在prober

agent检测到所述新的pod正常后联动名字服务新增对应IP,使流量引入到新的kafka

broker的pod当中。
[0007]进一步的,方法还包括:若Prober

agent组件正常运行,所述Prober

agent组件监测同机部署的kafk本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式、容器化kafka集群的调度方法,所述分布式、容器化kafka集群包括用于分布式集群管理的管理器kube

apiserver、用于协同对分布式、容器化kafka集群进行调度的第一调度器scheduler和第二调度器kafka

ex

scheduler、多个用于中介服务的kafka

broker应用实例、多个用于提供一致性服务的Zookeeper组件,其特征在于,所述分布式、容器化kafka集群还包括多个作为kafka

broker应用实例的代理层的kafka

proxy组件、多个用于监测kafka

broker应用实例和kafka

proxy组件的Prober

agent组件、用于接收Prober

agent组件监测信息的Judger

server组件,所述调度方法包括步骤:Prober

agent组件监测对应的kafka

broker应用实例的状况并将监测异常信息发送到Judger

server组件,Judger

server组件将监测异常信息写入管理器kube

apiserver并存储到etcd存储中;第二调度器kafka

ex

scheduler从etcd存储中监听到所述监测异常信息后根据第一预设策略进行kafka

broker应用实例的调度以停用异常的kafka

broker应用实例、启用新的kafka

broker应用实例,第一预设策略包括:第二调度器kafka

ex

scheduler联动名字服务,将异常的kafka

broker应用实例的pod对应的IP进行屏蔽,使线上流量不再发往此pod上,并在同机房内、不同机柜和不同TOR位置重新部署新的kafka

broker应用实例的pod且在prober

agent检测到所述新的pod正常后联动名字服务新增对应IP,使流量引入到新的kafka

broker的pod当中。2.根据权利要求1所述的分布式、容器化kafka集群的调度方法,其特征在于,还包括:若Prober

agent组件正常运行,所述Prober

agent组件监测同机部署的kafka

proxy组件的进程是否异常退出,若异常退出则将异常退出信息写入管理器kube

apiserver并存储到etcd存储中;第二调度器kafka

ex

scheduler从etcd存储中监听到所述监测异常信息后根据第二预设策略进行kafka

proxy组件的调度以停用异常的kafka

proxy组件、启用新的kafka

proxy组件,第二预设策略包括:第二调度器kafka

ex

scheduler联动名字服务,将异常的kafka

proxy组件的pod对应的IP进行屏蔽操作,使线上流量不再发往此pod上,并在同机房内重新部署一个新的kafka

proxy组件的pod在prober

agent检测此新的pod正常后联动名字服务新增对应IP,使流量引入到新的kafka

proxy组件的pod当中。3.根据权利要求1所述的分布式、容器化kafka集群的调度方法,其特征在于,还包括:Prober

agent组件运行不正常时,judger

server组件对运行不正常的prober

agent进行探活,若prober

agent组件没在设定周期内上报心跳,则judger

server组件将所述Prober

agent组件同机部署的kafka

proxy组件的进程状态设置为异常退出,并将异常退出信息写入管理器kube

apiserver并存储到etcd存储中;第二调度器kafka

ex

scheduler从etcd存储中监听到所述监测异常信息后根据第三预设策略进行kafka

proxy组件的调度以停用异常的kafka

proxy组件、启用新的kafka

proxy组件,第三预设策略包括:第二调度器kafka

ex

scheduler联动名字服务,将异常的kafka

proxy组件的pod对应的IP进行屏蔽操作,使线上流量不再发往此pod上,并在同机房内重新
部署一个新的kafka

proxy组件的pod并在prober

agent检测到此新的pod正常后联动名字服务新增对应IP,使流量引入到新的kafka

proxy组件的pod当中。4.根据权利要求1所述的分布式、容器化kafka集群的调度方法,其特征在于,还包括:judger

server组件通过远程过程调用对zookeeper组件进行健康检查,若zookeeper组件异常,则根据第四预设策略进行zookeeper组件的调度以停用异常的zookeeper组件、启用新的zookeeper组件,第四预设策略包括:Judger

server组件联动名字动服务,屏蔽异常的zookeeper组件的ip,确保kafka

broker应用实例不会再发起连接到异常的zookeeper组件,并在同机房内、不同机柜和不同TOR重新部署一个新的zookeeper组件且在Judger

server组件检测此新的zookeeper组件正常后联动名字服务新增对应IP以及端口信息,使kafka

broker应用实例可以解析到新的zookeeper组件。5.根据权利要求1所述的分布式、容器化kafka集群的...

【专利技术属性】
技术研发人员:胡东旭陈存利赵鹏
申请(专利权)人:度小满科技北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1