MicroZero教程 1.1 系统组成与构架简介

  MicroZero的核心是Zmq通讯库,ZMQ被誉为最快的消息队列,它提供的套接字可以在多种协议中传输消息,如线程间、进程间、TCP、广播等。你可以使用套接字构建多对多的连接模式,如扇出、发布-订阅、任务分发、请求-应答等。ZMQ的快速足以胜任集群应用产品。它的异步I/O机制让你能够构建多核应用程序,完成异步消息处理任务。ZMQ有着多语言支持,并能在几乎所有的操作系统上运行。由于ZMQ只是一套开发库而非成品,需要大量的开发工作,所以才会有了现在的MicroZero(原名ZeroNet)。

  为了践行DevOps理念,我们为不同角色开发了不同的工具或组件,主要包括ZeroCenter(服务中心)、ZeroMonitor(系统监控)、ZeroApplication(应用)、ZeroStation(站点)与HttpGateway(服务网关)。

MicroZero教程 1.1 系统组成与构架简介_第1张图片

  ZeroCenter是整个ZeroNet的心脏,它承担着应用管理(服务发现、服务治理)、系统监控、负载均衡等重要功能,也是框架中唯一使用C++编写的组件。

  ZeroMonitor是专门为运维与开发人员提供的一个可视化Web管理平台,提供ZeroStation的管理(新增、启动、暂停、关闭、卸载、实时运行状态呈现),ZeroStation的跟踪(QPS、TPS),服务流程跟踪(实时跟踪与流程图还原),服务文档查看等功能。

  ZeroApplication是一个具体的服务应用,它承载并管理ZeroStation。ZeroStation即实现API或消息处理的服务节点。需要解释特别的是,因为我经常通过高铁回家,感觉高铁的每一个站的能力和服务节点是如此的类似,故取名为ZeroStation。

  HttpGateway实现服务网关功能,由于内部通讯是基于Zmq的Socket通讯,网关主要功能为解析HTTP请求内容后访问MicroZero并按Http协议返回结果,以实现对外的WebApi交互。同时,HttpGateway还实现了鉴权、安全防护、限流熔断等功能。

  下图简要地说明了MicroZero是如何将以上组件有效地组合。

MicroZero教程 1.1 系统组成与构架简介_第2张图片

  这是一个蜜蜂王国,蜂王是Zmq,Zero Monitor(服务监控及广播)、Zero Event(服务内部事件广播)、Statiion Manage(服务管理命令)、ZeroTrace(服务跟踪日志)、Document Manage(服务文档)、ApiCaler(服务调用)是蜂王的六大部委,工蜂则是Services(服务)与Front end(前端应用), Developer(开发)与Operations(运维)则是辛苦的养蜂人。

  ZeroEvent:ZeroCenter向每一个ZeroApplication发出的事件广播(PUB),ZeroApplication可通过订阅(SUB)并处理事件,实现严格的全局同步。

  ZeroMonitor:在每个Station内部维护一个访问时数器,每两秒(可配置)发出一次monitor族系的事件,ZeroMonitor(监控平台)订阅后实时展示(数字、图表)这些数据。

  Statiion Manage:提供一组Station管理的命令(暂时未提供交互式命令,需要通过工具类访问),以便监控平台进行可视化管理,并对ZeroStation自注册提供支持。

  ApiCaller:Api访问或消息发布(PUB)使用的一组工具类,包括 ApiClient、ZeroPublisher。

  Document Manage:API或Queue(可靠消息队列)初始化时,系统会自动分析接口及对应的注释,生成文档上传到ZeroCenter,监控平台进行文档的展示与查看。

  ZeroTrace:通过记录每一次网络收发的数据日志,系统具备了还原流程的能力,这也是MicroZero在DevOps上的一个重大乘突破(上图)。

MicroZero教程 1.1 系统组成与构架简介_第3张图片

  本文简单地从两个维度(工具、能力)介绍了MicroZero的各个组成部分,更详细的介绍在后续文章中对应内容中出现。

 

你可能感兴趣的:(MicroZero,MicroZero)