滴滴Logi-KafkaManager核心设计原则及业务分层解析

滴滴 kafka 云平台建设需要解决的问题比较多元,因此在设计之初就需要对整体有一个清晰的思路和规划,为此我们定义了一个核心设计原则,并对业务进行了合理的分层用以指导我们后续的产品设计和代码开发。

▍1. 核心设计原则

在平台的整体设计上,我们制定了“一点三化”的设计原则:

  • 一点:以安全和稳定为核心点,建设 kafka 的网关系统,针对 topic 的生产/消费提供安全校验,同时提供多租户的隔离方案解决共享集群下多 topic 相互影响的问题;
  • 平台化:着重建设 kafka 云平台,反复进行需求调研和产品设计,提炼用户和运维的高频操作,将这些操作都通过平台实现,降低用户的使用成本;
  • 可视化:提升topic/集群监控、运维过程中指标的可观察性,所有指标尽量能在平台上可以直观体现,方便使用者及时感知集群运行状态,快速定位问题;
  • 专家化:将日常集群运维的经验沉淀在平台上,形成专家服务能力和智能化能力,进一步降低 kafka 集群的维护成本,提升整体稳定性。

滴滴Logi-KafkaManager核心设计原则及业务分层解析_第1张图片


▍2. 业务分层架构

在滴滴 kafka manager 具体的业务设计上,我们采取分层设计,从下至上分为以下几层:


  • 资源层:滴滴 kafka 引擎和 kafka manager 除了 zookpeer 之外只依赖 msyql,依赖精简,部署方便;
  • 引擎层:当前滴滴 kafka 引擎版本是2.5,我们在此基础上开发了一些自己的特性,如磁盘过载保护,并且完全兼容开源社区的 kafka;
  • 网关层:引擎层之上我们设计了网关层,网关层的设计非常巧妙,主要提供:安全管控、topic 限流、服务发现、降级能力,具体详见后文“安全性”的内容;
  • 服务层:基于kafka gateway 我们在 kafka manager 上提供了丰富的功能,主要有:topic 管理、监控管理、集群管理等;
  • 平台层:对外提供了一套 web 平台,分别针对普通用户和运维用户,提供不同的功能页面,尽可能的将一些日常使用中的高频操作在平台上进行承接,降低用户的使用成本。

滴滴Logi-KafkaManager核心设计原则及业务分层解析_第2张图片

▍3. 应用逻辑架构

在实际的应用部署和关联上,整体的 kafka manager 和 kafka 引擎、kafka gateway 之间的逻辑关系比较简单,具体如下图所示:

  • kafka gateway 包括两大块功能:服务发现、元数据网关,详细介绍见后面的元数据网关设计一节。
  • kafka manager 提供我们开发的特色功能,如:topic管理、监控管理、集群管理,以及相应的 web 平台,普通用户和研发运维人员日常操作接触最多,最高频的操作都将这上面完成。

滴滴Logi-KafkaManager核心设计原则及业务分层解析_第3张图片

你可能感兴趣的:(运维,java,大数据,分布式,编程语言)