一晃从事软件行业已经有多个年头,而从事服务器相关后端开发,也有了不短的时间,维护过中小型系统,也曾亲身设计过小型系统,但是一直都感觉不太顺意,不是自己想要的那种服务体系,很多时候都是在重复造轮子,于是一直在想是不是有可能存在一套通用的服务平台,提供与业务无关的后端服务通用功能,将这些功能糅合成一个通用服务平台,使得各产品线共享该平台提供的相关功能,各使用者仅需专注自身业务逻辑,减少重复造轮子机会,既加快了开发进度,压缩了开发成本,同时也能利用平台提升系统健壮性、可扩展性和维护便捷性。近一年来终于有了相对较为宽松和自由的时间,一直考虑的这个问题,慢慢在心里打磨逐渐有了大致的轮廓,于是就有了通用服务平台系列博客文章。发表该系列文章用意一是为了记录自身对于通用服务平台的所思所想点滴,二是为了让有关于该方面设想的同行们一起讨论、一起进步,毕竟这是一个我认为较难的挑战。

本篇是通用服务平台总体架构设计第一篇,含有架构图及部分构件功用及工作原理,剩余构件说明将放在下一篇中进行说明,如有感兴趣的同行,请持续关注。

通用汽车组织架构图片 通用集团架构_数据

                                                               通用服务平台架构设计图

上图既是通用服务平台总体架构设计,里面包含各功能模块构件,各模块间配合工作为系统提供相应功能,共同组成通用平台。下面将一一介绍这些模块构件功用及工作原理。

1. 通用代理

通用代理是整个系统对外前哨,属于接入层服务。该服务作用就是处理系统所承载各个产品客户端连接所发来的数据包,根据数据包提供关键信息和系统预定义规则将数据包转发至具体的业务服务进行处理;同时也接收各业务服务发送而来的数据包,将之转发至相应的客户端。考虑到各产品线差异,不可能为每个产品线开发代理服务,那么就需要有一个能兼容承载所有产品线的通用代理服务来完成该功能。同时按照一般代理服务需要具备的功能,赋予能单点客户端通信能力、群发数据能力、链路处理能力,在满足了该三个功能点后,代理服务基本成型。具体关于代理服务设计详见通用服务平台之通用代理服务篇。

2. 地址分发

地址分发就是客户端从平台中获取所有客户端需要的服务数据。例如客户端需要的通用代理数据,或其他客户端需要的业务服务数据。这是因为服务数据在系统运行过程中会出现变化,如服务变更部署机房、端口冲突变更端口,等等诸如此类变更,客户端需要及时对这类变更做出调整,所以需要一个地址分发的服务为客户端提供所需服务数据。具体地址分发服务设计详见相关篇章。

3. 系统数据发布

系统数据发布是通用平台内部体系一些配置数据的管理发布服务。该服务负责从系统DB中读取系统数据,并将数据发布至数据子系统,使系统其它模块构件服务能及时获取系统数据。

4. 消息处理子系统

消息处理子系统承担消息的具体分发工作,包括单一分发和群发两类。在平台中添加该子系统目的是进一步为业务服务减压和简化逻辑处理,将消息处理功能归纳统一后,可使得业务服务无需关注客户端路由信息,将需要发送的消息按照分发类型交给消息处理子系统既可完成功能。具体子系统设计详见相关篇章。

5. 多业务线服务或体系

该模块构件是预留给具体业务系统的,真正平台体系中并不存在该部分,出现在架构图中仅是为了完整性展示。本通用平台存在意义就是为多个不同业务线提供基础服务,达到一个通用平台支撑多个业务体系最终目的。

本篇给出了我个人心中的通用服务平台基础架构,以及部分模块构件功用,剩余模块构件功用将在下一篇简略介绍。