美团命名服务的挑战与演进
本文根据美团基础架构部技术专家舒超在2019 ArchSummit(全球架构师峰会)上的演讲内容整理而成。 命名服务主要解决微服务拆分后带来的服务发现、路由隔离等需求,是服务治理的基石。美团命名服务(以下简称MNS)作为服务治理体系OCTO的核心模块,目前承载美团上万项服务,日均调用达到万亿级别。为了更好地支撑美团各项飞速发展的业务,MNS开始从1.0向2.0演进。本文将围绕本次演进的初衷、实现方案以及落地的效果等方面进行展开,同时本文还介绍了命名服务作为一个技术中台组件,对业务的重要价值以及推动业务升级的一些成果。希望本文对大家能够有所启发。 一、MNS 1.0简介 从架构上看,MNS 1.0 主要分为三层:首先是嵌入业务内部的SDK,用作业务自定义调用;然后是驻守在每个机器上的SgAgent,以代理的方式将一些易变的、消耗性能的计算逻辑与业务进程分离开来,从而降低SDK对业务的侵入,减少策略变动对业务的干扰;远端是集中式的组件,包括健康检查模块Scanner,鉴权缓存模块MNSC,以及基于ZooKeeper(以下简称ZK)打造的一致性组件MNS-ZK,作为通知和存储模块。在层级之间设立多级缓存,利用“边缘计算”思想拆分逻辑,简化数据,尽量将路由分配等工作均摊到端上,从而降低中心组件负载。更多详情大家可参考《 美团大规模微服务通信框架及治理体系OCTO核心组件开源