简介
MSEC是一个开发+运营解决方案,不只是一个开发框架,适用于在廉价机器组成的集群上开发和运营分布式的互联网后台服务。MSEC的创作冲动和构建经验,来自QQ后台团队近10年的运营思考。
MSEC是简单的,它没有复杂的配置,也没有用到高深的技术。架构非常简单,有一定计算机基础的人都能很快理解它并掌握它。
特性
RPC和自动路由:基于MSEC开发分布式后台服务,不需要关注网络调用、不需要关注负载均衡、不需要关注单机故障/网络局部波动。MSEC提供RPC方式来实现模块间调用,就跟单机程序里的函数调用一样自然,MSEC自动进行路由,自动实现负载均衡和调整,自动实现对单机故障/网络局部波动的容错。
微线程:MSEC支持c/c++语言开发,业务逻辑的编写是同步的方式,避免为了执行的高效率而将业务代码在远程调用处拆分成非常难以理解的回调函数的异步方式;同时,业务逻辑的执行却是异步的,在用户态实现了多执行流的上下文切换,非常高效。MSEC兼顾了开发的高效率和执行的高效率。
业务监控:提供业务自定义的上报并可以用曲线图的方式查看;对于模块间的调用情况自动上报并可查看
**业务处理路径一目了然:**集中的业务日志记录和查询服务,对业务处理路径和模块间调用关系生成流程图,一目了然。
支持c/c++,java,PHP等开发语言
接口管理、发布管理、容量管理web化
易于运营的KV存储 (基于redis-cluster
架构简介
如下图,整个系统由下面几部分组成:
集中化控制台:包括MSEC的集中化服务管理页面以及一系列集中化服务,包括:
名字发现和路由服务:基于zookeeper服务程序,负责每个业务服务名到IP的映射信息的管理和分发。
远程命令数据传输服务:Remote_shell server程序和remote_shell agent程序使得web console服务器可以对业务运营机下发或者获取文件、执行命令。业务运营机通过非对称密码算法对remote_shell server进行认证。具体的就是server持有私钥文件,agent持有公钥文件。Server下发的命令必须经过私钥签名,agent将验证签名,通过才执行命令。
监控服务:提供业务上报信息的存储和查询服务。业务上报信息存储在内存里,推荐内存8G~16G。定时dump到磁盘的方式防止数据掉电丢失。
日志服务:提供业务日志的存储和查询服务。日志存储在mysql表里。
业务运营服务器:部署开发框架和业务实例,处理业务请求。部署业务实例需要先部署集中化服务的Agent。
KV集群:MSEC提供了一套Web化运维管理服务页面,供业务进行KV系统的运维操作,包括Web化的容量管理、监控视图展现等