浙江移动微服务应用实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 浙江移动微服务应用实践
演讲人:陈航
2. 曾经的困境
3. 微服务应用驱动技术变革提升架构水平
系统架构是决定系统稳定性和业务支撑效率的“水位”,在固定的架构情况下,成本一定,要想提升业务交付效率,
要牺牲系统稳定性;同样,在保证系统稳定性的情况下,要牺牲系统业务交付效率。
成本控制
成本控制
技术变革
微服务架构
传统架构
效率
效率
稳定
稳定
成本效率稳定之铁三角约束:成本控制*效率*稳定 = f(架构水准)
4. 架构先行
浙江公司全面升级系统架构,具备业务系统五层架构、业务内聚、技术平台化、异构产品支撑、双平面部署和单元化部署六大
特征,保障系统在开发态和运行态的稳定性、兼容性和灵活性。
单元A
接
入
层
实体渠道
企业
服务
能力层
业务
中心
层
第三方渠
道
电子渠道
内服务总线
客
户
中
心
订
单
中
心
账
户
中
心
技术
平台
能力开放
网
格
中
心
开
通
中
心
…
技
术
中
间
件
分布式数据访问总线层
数据
库层
oracle
MyS
ql
其他
单元化部署
容器A
容器B
容器N
单
元
B
五层
架构
单元
化部
署架
构
业务
内聚
架构
双平
面部
署架
构
技术
平台
化
异构
产品
支持
5. 业务内聚架构|遵照能力中心化业务内聚力进行微服务拆分
产商品中心
账户中心
业务能力中心
渠道中心
客户中心
订单中心
零售库存中心
支付中心
开通中心
中心符合度原则(工程独立、部署独立、数据库独立)
中心A
(交易服务
后台进程
消费者服务
……)
弹性计算平台
ESB总线
CSF
消息总线
缓存总线
1、功能高内聚原则:业务功能必须是高度内聚,业务处理逻辑内部形成闭环;
MSP
2、数据高自治原则:中心操作的数据必须在相对独立且稳定的范围内,避免直接操作
外部数据、避免外部中心直接访问
3、系统低耦合原则:独立部署和运行,单独升级和变更,代码是独立;
4、服务高复用原则:业务功能相对独立和稳定的服务,可外部访问,不重复实现。
数据库A
5、能力高扩展原则:处理能力和数据容量水平伸缩能力。
附加要求
1、配置化要求:相似功能整合,差异点收敛为配置参数,实现基于配置的功能差异化要求;
2、规则化要求:业务规则必须进行规范化管理,实现规则的显性化查询、预判,业务流程判断和触发必须通过业务规则驱动。
能力中心
DCO
S
Dev
Ops
微
服
务
平
台
6. 业务内聚化|子中心裂变促进细分微服务粒度
子中心1
子中心1
子中心2
子中心2
订单中心
子中心3
账务中心
子中心4
子中心1
开通中心
客户中心
客户中心
政企客户子中心
子中心2
子中心3
账户中心
流量子中心
子中心4
子中心5
通用子中心
账户中心
子中心3
1、业务模式、能力区间有明显差异
2、数据模型有明显差异
3、工程规模太大
4、现状就独立,没必要融合
7. 技术平台化|微服务服务平台支撑架构演进
• 多角色统一门户交互能力
• 多服务协作实现可控架构
• 可横向扩展中间件服务
• 插拔式嵌入技术组件
• PaaS交付方式
8. 技术平台化|微服务服务平台支撑平滑中心应用细颗粒度拆分
微
服
务
平
台
能力网关(手机号码、渠道、营业员、地市路由)
• 平台先行
• 数据库拆分、服务拆分
客户认
证 客户综
合信息
查询 用户信
息查询
客户信
息查询 账户信
息查询 订购产
品
客
户
数据存储
产
品
账本信
息查询
余额查
询
客户认
证
信用度
查询
积分查
询
账
户
订单处
理
订
单
云
化
服
务
框
架
业务服务
(原子&组合)
客户信
息查询
组件库
数据存储
客
户
客户综
合信息
查询
账户信
息查询
账本信
息查询
用户信
息查询
订购产
品
产
品
余额查
询
积分查
询
账
户
信用度
查询
订单处
理
订
单
消
息
通
知
• 分维度路由、并行
• 老系统数据、服务下线
• 重复执行
• 拆不掉的,成立新的服务
9. 技术平台化|服务治理模块,实现中心服务的统一管控
服务资产归类体系
服务总线
全生命周期管理
服务视图
1、需求
方提交需
求
跨多个平台的高效便捷的全流程管理
提交
,实现质量与效率的双重保障
数据总线
消息总线
流程总线
界面资产
能力资产
需求
创建
需求
配置
需求管理平台
2、管理
员审核
服务
注册 服务
信息
同步
云化服务
平台 资产运营
管理平台
4、对外
的服务
注册
服务
发布
需求
确认 OER
数据交换
需求管理平台
3、开发人
员服务开
发
ESB
开发
5、服
务发布
需求
审核
任务
分配
审核
注册
发布
10. 技术平台化|微服务编排能力,串接各应用中心实现业务能力
11. 技术平台化|系统异常,在线定位精准定位
服务调用全链路跟踪
根据CRM的五层技术架构,通过日
志上下文传递全局唯一流水,实现
调用链的完整性和一致性
大数据技术
通过kafka、Storm、Hadoop等大
数据技术实时或全量分析收集的日
志数据,为决策提供数据支持
有效的业务监控
可视化整体展示
及时的关联提醒
以前 •无法实现服务调用链分析
•无法获取服务调用时长
•无法快速定位问题
现在 •1分钟之内显示完整调用链
•贯穿整个服务调用的各个层次
•快速知道各子服务时长,便于
性能分析、故障定位
开发无关性
通过底层CSF框架内嵌,对调用链
进行预定义,从而实现对于开发人
员的透明化,无需关心底层技术实
现
单业务办理回溯
12. 开发组织变革|
系统规划师
战略规划(SPT)
系统架构师
项目经理
团
队
业务赋能(BAT)
核心能力(CCT)
角
色
产品经理
需求分析师
支撑保障(SGT)
数据分析师
研发工程师
13. 核心技术应用1|云化服务框架的智能化集群保障机制,保障大并发访问时的高可用
高可用
实现机制
从
云化服务框架实时监控服务端健康状况,如发现异常,
从
则进行链路调整,确保大并发访问时的高可用。
CSF框架-注册中心 主
注册
状态监测
服务端变化
通知
C3
C1
C4
C3
CSF框架-客户端
服务端故障屏
蔽
服
务
消
费
方
集
群
方 服
集 务
群 消
费
P1
调用
1.
P2
P3
P4
CSF框架-服务端
方 服
集 务
群 提
供
◼
主
2.
C1
C2
CSF框架-客户端
调整链路
智能化实时监控
服务自发现与实时障碍监控,对服务发生变
更时实时更新注册中心的服务目录;
从
3.
◼
P1
3
高可用的主从同步机制,能够保证在分布式
高并发情况下服务提供的全局一致性;
◼
从
CSF框架-注册中心
2 通知C1,P2异常
高可用的服务框架
P2
1 监测P3
异常
P3
P4
CSF框架-服务端
故障屏蔽达到秒级
注册中心采用实时监控服务端机制,检测服
务端异常时,能够实现秒级切换通知调用方
调整链路。
14. 核心技术应用1|以柔性架构,实现系统局部异常业务正常可用
熔断器
故障诊断
服务调用
熔断开关
平台远程
访问
否
DO CALL
柔性策略
1. 直接返回失败
1. 连续N次CALL超时; 2. 人工处理
2. 最近一个固定时段CALL失败率 3. CALL进队列排队至资源释放
超过百分比X
是
或熔断结束
3. 手动设定的CALL熔断信号
4.
只执行高优先级服务(放弃列
4. 服务权重上限 5. 可用线程告警 5. 跳过服务
6. 自定义其他规则 6. 失败重试
7. 自定义其他策略
表)
15. 核心技术应用2|系统业务配置集中管理、统一配置、在线推送
16. 核心技术应用3 |高效服务协同的消息处理框架,支持亿级消息处理
消息发送/
发布方
消息接收/
订阅方
消息检查、重试
分布式消息处理框架
消息检查、重试
事务管理
消息接收
器
JMS消息
消息拦截
器
处理
节点
1
节点监听
消息持久化
事务管理
消息中间件
消息发送
器
消息流入
路由 处理
节点
2
节点监听
故障恢复
1.
◼
2.
◼
3.
◼
消息转换
器
消息流出
路由 处理
节点
节点监听 N
JMS消息
消息持久化
4.
◼
5.
◼
亿级消息处理能力
消息直接持久化到磁盘,充分利用磁盘的顺序读
写性能,可支持亿级的消息堆积处理能力,消息
处理效率可达到15万/秒;
事务最终一致性
消息事务采用分段提交,并提供消息检查以及重
试机制,实现最终事务一致性;
消息高可靠性
消息采用分组分区处理机制,通过负载均衡实现
故障的快速恢复,可实现消息处理正确率为
99.99%;
标准化接入协议
支持标准JMS协议,可接入开源或者商用主流消
息中间件引擎 。
友好的分布式扩展
支持水平分布式扩展,集群可按需扩容,灵活应
对大并发访问。
17. 核心技术应用4 |通用的流程集成平台,实现流程开发态和运行态透明化管理
5
4
1.
跨系统流程编排
支持界面流程编排、跨系统流程集成和串接能力;
4、监控预警
2.
对接主流流程引擎
支持IBM WPS、Oracle BPM、普元BPS等主流引
5、运行可视
化
当前节点
2、对接第三
方流程
监
控
部
流程实例2
流程实例N
2
3.
分布式部署和横向扩展
支持根据地市、客户等路由进行分布式调用,可基
于访问量设置扩展策略;
署
流程实例1
擎;
流程实例1
…… 流程实例2
流程实例N
流程集成平台
1
物流系统
1、流程可编
排
3、弹性扩张
业务流程创建与流程引擎分
离,流程驱动与业务运营互不
影响
业务系统Web集群
3
Comframe控制台
业务逻辑集群
业务数据库
业务系统调用流程API
流程引擎回调业务方法
流程引擎集群
4.
预警提醒能力
针对系统并发量、失败率的突增进行告警;
5.
运行可视化
支持以图形化方式查看长流程执行时的节点状态、
流程数据库
节点信息。
18. 核心技术应用5|分布式缓存框架,屏蔽异构缓存引擎差异,提高数据缓存线性扩展能力
1、分布式数据缓存
能力层
应用中心 应用中心 应用中心 应用中心
缓存客户端 缓存客户端 缓存客户端 缓存客户端
◼
通过分片加载、访问路由等方式,提供缓存集
群,满足大量数据的分布式缓存;
2、多种缓存引擎兼容
分布式缓存
◼
支持Memcached、Redis等主流开源缓存引
擎,支持oracle Coherence等商用引擎,并
标准服务
数据加载
数据路由
数据刷新
缓存适配
……
安全控制
根据客户使用场景,可线性扩展其他缓存引擎;
3、缓存安全控制
◼
支持部分应用对缓存数据的修改和更新操作,
其他应用只能读取等功能,保障缓存数据的安
全性,规避误操作等问题。
Memcach
ed
开源引擎
Reids
Conherance
商用引擎
19. 核心技术应用6|分布式数据访问总线,屏蔽异构数据库差异,提升数据操作速度
1.
能力层
应用中心 应用中心 应用中心 应用中心
DADB客户端 DADB客户端 DADB客户端 DADB客户端
集群支持在线水平扩展,可应对突发性大并发访
问,最大并发访问性能可提升60%以上;
2.
◼
分布式数据总线
对象化
◼
在线水平扩展
高速数据缓存
支持事务级缓存,即二级缓存,减少与服务器通
信次数,数据访问速度提升10倍以上;
数据缓存
事务控制 ……
3.
◼
主流数据库兼容
SQL统一管控,支持表关联、分组、排序等常用函
数30多个,兼容Oracle、MySql、NoSql等5种主
数据路由
流数据库;
4.
Oracle
MySQL
关系型数据库
内存
数据库
内存数据存储
NoSQL
◼
数据垂直/水平拆分
支持灵活垂直/水平分库,垂直分库支持按照业务
中心维度拆分,水平分库支持按照业务特性关键
非结构化数据
字段拆分。
20. 核心技术应用7|分布式系统下事务管控,保障数据一致性
事务一致性常见问题
面向多场景的适配能力
从服务提供方、业务调用方梳理各类异常场景,针
对不同类型形成不同的处理策略
➢ 消息异常处理后的二次处理
➢ CSF应用实例连接数过大
➢ 同步、异步等多类非一致性
卡状态
修改 资
源
中
心
mdb
修改 计
费
中
心
框架区域优化
话费入账
上发计费
同步业
务链路
调用
异步业
务非流
程类
异步业
务流程
类
高效的保障解决方案
账户中心
卡资源占用
同步业
务多方
调用
场景示例:同步业务(多方调用)
业务流程中,需要调用对端中心实现业务逻
辑。如卡充值,账户中心需要调用资源接口
进行卡实占操作。
调用方A
事务控制层
服务调用完整记录
csf公共调用层
2、事务回滚时,
持久化异常调
用情况,并清
理线程调用
1、缓存每次调
用的csf 调用的
接口,入参,
并放入线程中
框架事务控制点持久化
Func_B
Func_C
21. 技术应用8| 以高兼容性和高扩展性平台架构,提升需求交付效率
1、编排式开发:基于
流程编排,通过现有的
代码,编排实现新的业
务能力
开发态
2、嵌入式集成:基
于服务框架,通过集
成日志模块,实现服
务调用日志自动输出,
业务代码无感知
3、多协议暴露:基
于服务框架服务暴露
机制,服务开发完成
后,平台提供多种协
议暴露供多渠道使用
22. 技术应用9| 基于平台实现系统高可用和自动伸缩,满足突变的系统流量
1、容错机制:基于异步
消息、错误隔离和重试等
机制,实现前后端逻辑分
离,后端错误对前台无感
知
运行态
2、流量个性化控制:
基于服务框架,通过策
略配置和执行,根据渠
道、业务等进行个性化
控制
3、数据自动分片:基
于分布式数据总线,通
过策略控制进行数据自
动分片和数据迁移,并
屏蔽底层异构数据库
23. THANK YOU!