EDAS平台经验分享
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
演示结论(二)
GTS和本地事务之间的关系
本地事务,如果使用Spring的事务管理,可以实现最高的串行操作。如果使用的是 Spring JDBC,那么可以对操作的数据进行select for update操作。
GTS(TA)
Transactional A
数据库产生undo记录
Transactional B
SLB
1. 负载均衡。 2. 通过SLB申请公网ip地址,无需为每台ECS申请公网Ip地址。
DRDS
1. 分布式数据库中间件。 2. 负责管理多台RDS(MySQL、PostgreSql等)服务器。 3. 每个RDS默认划分8个数据库。 4. 平滑扩容指的是增加RDS服务器,数据库会平均分配到新的服务
PC
MVC
业务 服务层
基础 服务层
持久层
开户 服务编排
Http
转账
数据校验
交易流水
流程控制
HSF
分布式事务
交易流水
安全控制
HSF
报文转换
全局分区 HSF
开户
HSF
转账转入
HSF
转账转出
TCP
TCP
分布式数据访问层
HSF
……
Master DB
Slave DB
NoSQL/HDF S
安全 中心
消息 中心
注册 中心
器上。
OceanBase
1. 分布式数据库。 2. 与MySql兼容,MySql的大部分命令可以使用。 3. Explain命令对于索引的信息描述比较少。 4. 主要应用在分布式环境下的数据一致性场景,比如异地双活。 5. 状态类型数据可以用OceanBase来存储。 6. 原理基于GFS的理论,简单的说,当天数据会存储在内存当中,
历史数据会持久化到硬盘,无需分库分表。
02
效果演示
转账功能
Web Server Biz Server
转账交易
1
GTS 聚合转账
6 转账流水
Service Server OceanBase
Transactional 2 账户转出① 转出账户检查3② 账户密码校验
③ 现有余额检查
4 Transactional
缓存 中心
监控 中心
基于EDAS平台的部署架构
ECS VPC
SLB
http
HSF RPC Agent
ECS
HSF
RPC Agent
ECS
应用监控 应用诊断
服务注册中心
流量管理 链路跟踪
批量运维
数据化运营
弹性伸缩 …
VPC
Redis
Agent VPC OceanBase
VPC VPC VPC
DRDS
EDAS平台经验分享
CONTENTS
01 平台产品 03 开发流程
02 效果演示 04 部署流程
01
平台产品
EDAS特性
1. 服务管控平台。 2. 通过在虚拟机(ECS)上安装Agent与EDAS通讯,从而进行
服务的监控。 3. EDAS上的服务注册中心不局限于HSF,还支持Dubbo和
Spring Cloud。
技术栈
微服务架构:HSF 数据库:OceanBase、MySQL 分布式数据库: DRDS 分布式事务:GTS 分布式缓存:Redis 监控:阿里云平台提供的监控服务
环境搭建
1. 通过Maven创建Web工程。 2. 从官网下载tomcat4e.zip,并进行安装。 3. 从官网下载taobao-tomcat-7.0.59.tgz和taobao-hsf.tgz(Pandora),
(交换机),但是VPC受限于地域(比如华东1,华东2),虽然都属于 华东地区,Switch还会受可用区限制,比如说华东1区的可用区B无法使 用华东2区的Switch,但是有些地域又是可以的。这块需要尤其注意。 4. 公网,就是有固定的ip地址,可以通过互联网访问了。 5. 调用链跟踪组件,只需要在VPC上的任何一台ECS上安装即可。
账户转入
5
① 账户信息 ② 账户转账明细
① 转入账户检查
7
DRDS
MySql
转
出
账
号
H
a
转账流水
s
h
关注问题
1、分布式事务 GTS的隔离级别 如何保证数据的一致性 GTS和本地事务之间的关系 本地事务(Spring)的原理
2、验证分布式数据库 分片规则的定义
基于EDAS平台的逻辑架构
展现层
Transactional C
Transactional D
演示结论(三)
分片规则定义
03
开发流程
开发环境
IDE:Eclipse/ IntelliJ IDEA JDK:1.8 Web容器:Ali Tomcat、Pandora 本地注册中心:edas-config-center 构建工具:Maven 版本控制:Git
MySQL MySQL
效果演示—转账成功
账户表
账户明细表
流水表
效果演示—转账失败
输入错误的转入账户
账户表
账户明细表
流水表
演示结论(一)
GTS的隔离级别
默认为读未提交,最高实现读已提交。
如何保证数据的一致性
因为只能达到读已提交,所以只能保证数据的弱一致性。
本地事务(Spring)的原理
a. 需要setAutoCommit(false)。 b. 需要保证是同一个连接。 c. 是否可以进行多数据源的事务操作?
ECS
1. 虚拟机。 2. 用来应用的部署。 3. 通过安装Agent,可以被EDAS管理。 4. Web容器用tomcat,内部安装了Pandora,该组件用来服
务注册。
集群
1. 可以集中管理多台 ECS服务器。
2. 集群中的ECS之间 采用了VPC网络 (专网)连接。
02
VPC
1. 网络分成了经典网络、专网和公网。 2. 经典网络可以理解成内网; 3. 专网是将所有的资源设备均做了网络直连,所以需要创建VPC和Switch
B失败产生回滚操作,通 过undo记录恢复之前的 数据,并删除undo记录。
id
value
1
hello
id
value
不等TA提交即可
1
world
读取A修改的值
不等TA提交即可 读取A修改的值
read
如果需要修改, 需要等待TA的事 务提交
不等TA的事务提 交即可修改,产 生脏数据
write
GTS(TC)
将taobao-hsf.tgz解压缩后放入到Tomcat的deploy目录下。 4. 从官网下载edas-config-center.zip,解压后运行,这个是
阿里给出的简化的本地注册中心,方便进行开发使用。 5. 搭建Spring、Spring MVC、MyBatis开发环境。
Controller主要代码