本文以同城双活单元化架构为示例,介绍如何进行单元化技术架构和应用架构的规划,输出部署架构图和应用架构图,指导研发运维人员初始化环境和进行应用研发改造。
前提条件
了解 单元化架构
架构介绍
如上图所示,该业务系统搭建在同城双活单元化架构上。
业务架构覆盖的业务场景如下:
转账
存款送积分
支撑业务的应用如下:
交易中心(txnflow):交易服务中心,提供转账服务,依次调用转出账户的取款服务和转入账户的存款服务,分布式事务的发起者。
账户中心(acccenter):提供存款和取款服务两种原子的账务操作,分布式事务的参与者。
积分中心(pointcenter):提供积分返还服务,主要验证事务性消息。
部署架构中主要涉及的单元如下:
两个机房(IDC):POC01 和 POC02。
两组本地域(RZone):RZ01 和 RZ02。
日常每组 RZone 负责 50 个分片数据,承载 50% 业务流量。
使用LHC单元化应用服务-流量管理,可动态调整分片规则,进行流量调拨。
一组全局域(GZone):GZ01A 和 GZ01B。在 2 个机房部署 2 个应用层单元,互为备份。
应用架构
业务应用的调用链路如下图所示。
应用拆分
本示例教程暂不涉及 GZone 类型的应用。
以下 3 个应用都是 RZone 类型应用,可按照 uid 进行单元化拆分。
应用名 | Zone 类型 |
txnflow | RZone |
acccenter | RZone |
pointcenter | RZone |
数据拆分
在本教程中,uid 格式如:08006660000****
,按照 uid 进行 10 库 10 表拆分。
使用的中间件
中间件 | 配置信息 | 备注 |
消息队列 | TopicGroupID | 创建 topic、groupid 和路由规则。 |
数据访问代理 | 1 个实例,3 个库,每个库 10 库 10 表 | 创建实例,添加数据节点,创建数据库、数据表,并连接数据访问代理。 |
分布式事务 | 无 | 无 |
微服务 | 无 | 无 |