在《分布式系统之平台十大系统》中,主要提到10大系统,但是并没有提到介于架构和平台间的三个核心类作用的系统,本篇文章主要概述这三个系统的构思设计以及功能效用。从前向后看,首先接触的是“服务网关”,它的主要作用是权限控制和防止脚本攻击,当下以及今后都会规范为“面向服务编程”,即服务方提供API,请求方只有具备API访问权限才可以继续,所有请求方-服务方模式都遵从此约定,这也就将权限控制等具有共性的功能抽象提炼出来,形成独立”服务网关“系统,从而服务网关系统可以为所管辖的任何服务方提供安全保障。当产品架构过于庞大、复杂时,难免会遇到分布式事务的难题,针对分布式事务难题,没有像关系型数据库那样的事务保障,已成实践标准的是两次提交-保证最终结果一致性的方法,即首先记录请求信息到本地数据库,倘若执行完毕没有问题就结束,如果出现问题,则按照配置方案,执行自动回滚逻辑,此时执行成功也将结束,否则上报云端进行人工处理。最后遇到的是数据存储与计算问题,当然现在有NoSQL、大数据Hadoop等,但是他们替代不了关系型数据库,关系型数据库依然盘踞核心地位,所以如何在出现I/O瓶颈前,解决数据读写缓慢的问题要有准备方案,这里主要包含两大重点,一是实现数据的读写分离,二是实现只读库构建与同步数据问题,第二项有现成的解决方案,第一项也有现成的解决方案,但是极少有单位会把这种价值含量较高技术免费分享出来,所以自己动手才能丰衣足食。接下来的内容将是对三大支柱的设计,如下:

1.服务网关
1.1.权限管理器:Token令牌、通用权限、IP拒绝名单、ID拒绝名单
1.2.数据核查器:JS脚本攻击、SQL注入
1.3.并发控制器:超出服务上限,随机拒绝请求
1.4.服务调度器:定时查询可用服务、单服务请求失败重试次数、多服务请求失败重试个数
2.分布式事务执行器
2.1.本地管理器
2.1.1.正常:注册执行逻辑
2.1.2.失败:失败自动撤销
2.1.3.撤销:失败上报云端
2.1.4.云端:接受销毁记录
2.1.5.管控:
2.1.5.1.期间内失败次数达上线:停止服务,消息报告
2.1.5.2.期间内撤销失败达上线:停止服务,消息报告
2.2.云端管理器
2.2.1.失败请求管理
2.2.2.失败请求恢复
3.读写分离器与多库备份器
3.1.读写分离器
3.1.1.程序设计读写分离项目
3.1.2.依据记录同步完成时间设计读写分离
3.1.3.依据同步时间拆分查询时间分库执行
3.1.4.依据查询结果汇总数据集并输出
3.2.多库备份器
3.2.1.程序设计读写分离项目
3.2.2.将增删改脚本记录备份库
3.2.3.备份库管理只读库与最新执行时间
3.2.4.同步执行器,依据最新执行时间读取未执行脚本于只读库执行
3.2.5.只读库管理器,管理只读库与其状态
3.2.6.脚本记录管理器,维护脚本记录

 

综上所见,服务网关是面向服务编程的必需品,分布式事务与数据库读写分离则是做强做大后的事情,因为不必担心一下子要做的事情太多,循序渐进即可。十大系统+三大支柱,技术平台就是这么简单。