步骤一:架构规划

本文以同城双活单元化架构为示例,介绍如何进行单元化技术架构和应用架构的规划,输出部署架构图和应用架构图,指导研发运维人员初始化环境和进行应用研发改造。

前提条件

了解 单元化架构

架构介绍

twoalive

如上图所示,该业务系统搭建在同城双活单元化架构上。

业务架构覆盖的业务场景如下:

  • 转账

  • 存款送积分

支撑业务的应用如下:

  • 交易中心(txnflow):交易服务中心,提供转账服务,依次调用转出账户的取款服务和转入账户的存款服务,分布式事务的发起者。

  • 账户中心(acccenter):提供存款和取款服务两种原子的账务操作,分布式事务的参与者。

  • 积分中心(pointcenter):提供积分返还服务,主要验证事务性消息。

部署架构中主要涉及的单元如下:

  • 两个机房(IDC):POC01 和 POC02。

  • 两组本地域(RZone):RZ01 和 RZ02。

    • 日常每组 RZone 负责 50 个分片数据,承载 50% 业务流量。

    • 使用LHC单元化应用服务-流量管理,可动态调整分片规则,进行流量调拨。

  • 一组全局域(GZone):GZ01A 和 GZ01B。在 2 个机房部署 2 个应用层单元,互为备份。

应用架构

业务应用的调用链路如下图所示。

biztrace

应用拆分

说明

本示例教程暂不涉及 GZone 类型的应用。

以下 3 个应用都是 RZone 类型应用,可按照 uid 进行单元化拆分。

应用名

Zone 类型

txnflow

RZone

acccenter

RZone

pointcenter

RZone

数据拆分

在本教程中,uid 格式如:08006660000**** ,按照 uid 进行 10 库 10 表拆分。

使用的中间件

中间件

配置信息

备注

消息队列

TopicGroupID

创建 topic、groupid 和路由规则。

数据访问代理

1 个实例,3 个库,每个库 10 库 10 表

创建实例,添加数据节点,创建数据库、数据表,并连接数据访问代理。

分布式事务

微服务