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

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

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

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

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

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

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

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

  这是一个蜜蜂王国,蜂王是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的各个组成部分,更详细的介绍在后续文章中对应内容中出现。

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值