数据库中间件MyCat学习总结(2)——MyCat-Web原理介绍
Mycat是一个分库分表的基于java开发的数据库中间件,使用过程中需要有一个监控系统,mycat-web应运而生。mycat-web是一个使用SpringMVC + Mybatis的监控平台,使用常用的监控系统协议SNMP-简单网络管理协议(Simple Network Management Protocol),和RRD来进行监控界面的展示。相信用过catci的IT运维监控人员对于RRD再熟悉不过。
RRDtool是指Round Robin Database 工具(环状数据库)。Round robin是一种处理定量数据、以及当前元素指针的技术。想象一个周边标有点的圆环--这些点就是时间存储的位置。从圆心画一条到圆周的某个点的箭头--这就是指针。就像我们在一个圆环上一样,没有起点和终点,你可以一直走下去。过来一段时间,所有可用的位置都会被用过,该循环过程会自动重用原来的位置。这样,数据集不会增大,并且不需要维护。我们使用RRDtool来处理RRD数据库。使用它向RRD数据库存储提取数据。RRD适合存储时间序列的数据。就是说你必须能够在时间的几个点上度量某些值,并提供这些信息给RRDtool。如果你能够做到这一点,RRDtool就能够存储它们。这些数值必须是数字,但是不一定要是整数。
简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。该协议是互联网工程工作小组(IETF,Internet Engineering Task Force)定义的internet协议簇的一部分。SNMP的目标是管理互联网Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响也很大。SNMP已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。
MIB,Management Information Base:管理信息库,由网络管理协议访问的管理对象数据库,它包括SNMP可以通过网络设备的SNMP管理代理进行设置的变量。SMI,Structure of Management Information:管理信息结构,用于定义通过网络管理协议可访问的对象的规则。SMI定义在MIB中使用的数据类型及网络资源在MIB中的名称或表示。
使用SNMP进行网络管理需要下面几个重要部分:管理基站,管理代理,管理信息库和网络管理工具。
管理基站通常是一个独立的设备,它用作网络管理者进行网络管理的用户接口。基站上必须装备有管理软件,管理员可以使用的用户接口和从MIB取得信息的数据库,同时为了进行网络管理它应该具备将管理命令发出基站的能力。
管理代理是一种网络设备,如主机,网桥,路由器和集线器等,这些设备都必须能够接收管理基站发来的信息,它们的状态也必须可以由管理基站监视。管理代理响应基站的请求进行相应的操作,也可以在没有请求的情况下向基站发送信息。
MIB是对象的集合,它代表网络中可以管理的资源和设备。每个对象基本上是一个数据变量,它代表被管理的对象的一方面的信息。
最后一个方面是管理协议,也就是SNMP,SNMP的基本功能是:取得,设置和接收代理发送的意外信息。取得指的是基站发送请求,代理根据这个请求回送相应的数据,设置是基站设置管理对象(也就是代理)的值,接收代理发送的意外信息是指代理可以在基站未请求的状态下向基站报告发生的意外情况。
SNMP为应用层协议,是TCP/IP协议族的一部分。它通过用户数据报协议(UDP)来操作。在分立的管理站中,管理者进程对位于管理站中心的MIB的访问进行控制,并提供网络管理员接口。管理者进程通过SNMP完成网络管理。SNMP在UDP、IP及有关的特殊网络协议(如,Ethernet, FDDI, X.25)之上实现。
二、Mycat核心技术