北京云栖大会Tech Insight Workshop:《数据访问代理在分布式交易系统中的操作实战》篇

简介: 本篇是北京云栖大会Tech Insight Workshop金融云主体《使用SOFA来快速构建金融级分布式交易系统》中的一个组成部分。 通过前面的『使用微服务框架快速构建一个分布式交易系统』为您快速搭建了基于微服务的支付系统,但是随着业务量的不断上涨,单库单表的数据库设计已经不能够满足业务的要求,.

背景介绍

本篇是北京云栖大会Tech Insight Workshop金融云主体《使用SOFA来快速构建金融级分布式交易系统》中的一个组成部分。

通过前面的『使用微服务框架快速构建一个分布式交易系统』为您快速搭建了基于微服务的支付系统,但是随着业务量的不断上涨,单库单表的数据库设计已经不能够满足业务的要求,这时可以通过数据访问代理为交易系统的核心订单库增加水平扩展能力。

DEMO整体架构与说明

image
在本篇中,会逐步引导学员通过蚂蚁中间件的数据访问代理控制台来使用数据访问代理来操作支付服务后端的多个数据节点,并通过数据访问代理进行分库分表操作,以及最终实现透明访问。

注意:下列的DEMO详细教程需要用到DEMO代码工程的支付服务的源代码,该部分代码会在近期对外进行开放

实验涉及SOFA产品

详细教程

  • 进入数据访问代理控制台:金融云-【产品与服务】- 【中间件】-【数据访问代理】
    image
  • 控制台-数据访问代理实例管理,这里可以创建一个新的实例或使用已有的数据访问代理实例
    image
  • 当创建完成数据访问代理实例后,需要添加已存在的物理数据节点。点击查看物理数据节点页面,可以添加数据库节点或者查看当前已有的数据库节点
    image
  • 添加一个新的物理数据节,可以是金融云RDS实例,也可以是OceanBase实例,具体详情请参照产品帮助文档。注意这里的物理数据节点需要用户提前采购生成,并获取所需的节点信息,如节点ID,链接地址等。
    image
  • 当数据节点导入成功后,即可进行数据库(即逻辑数据库)的创建,具体过程参加帮助文档,创建名为payment的数据库,成功后可以在当前数据访问代理实例的详细信息中查看:
    image
  • 查看数据库payment的详情信息
    image
  • 新增sequence单表
    image
  • 新增添加拆分表,并录入拆分规则,如下图所示,表示数据表(逻辑数据表)pay_order将被进行规则拆分,后端会对应10张物理数据表,拆分规则是字段“order_no”的第15位。
    image
  • 数据表设置完毕后,可以选择开始执行表 DDL
    image
  • 最终这些操作需要在点击数据表信息详情页面中的【生效】按钮方可生效
    image
  • 查看代码(参照支付系统的DEMO 代码示例)并做相应的改造,调整序列的生成代码
    image
  • 新增分布式序列的查询语句image
  • 新增全表扫描 Hint
    image
  • 调整 application.properties 中的数据库链接地址和密码
    image
目录
相关文章
|
7月前
|
机器学习/深度学习 人工智能 Shell
人工智能平台PAI操作报错合集之在分布式训练过程中遇到报错,是什么原因
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
5月前
|
人工智能 Linux 云栖大会
看过来!2024 云栖大会操作系统技术 Workshop 怎么玩?
报名倒计时2天啦,欢迎大家来“操作系统技术Workshop”打卡。专家讲解原理、现场实战演练,AI、C++ 20专场任选。
看过来!2024 云栖大会操作系统技术 Workshop 怎么玩?
|
8月前
|
存储 搜索推荐 Java
微服务SpringCloud ES分布式全文搜索引擎简介 下载安装及简单操作入门
微服务SpringCloud ES分布式全文搜索引擎简介 下载安装及简单操作入门
103 2
|
9月前
|
SQL 存储 NoSQL
分布式NoSQL列存储数据库Hbase操作(二)
分布式NoSQL列存储数据库Hbase操作(二)
161 0
|
消息中间件 存储 NoSQL
阿里云国际站代理商:使用Redis实现一个分布式的全局ID怎么操作?
阿里云国际站代理商:使用Redis实现一个分布式的全局ID怎么操作?Redis(Remote Dictionary Server)是一款基于内存的高性能键值对(Key-Value)存储系统。它支持多种数据结构,如字符串、整数、浮点数等,具有高速读写、持久化、分布式等特点。在很多场景下,Redis可以作为数据库、缓存、消息队列等多种应用的数据存储方案。本文将介绍如何使用Redis实现一个分布式的全局ID生成器。
|
Java 关系型数据库 数据库
分布式微服务系统的跨库查询/操作的解决思路(关系型数据库)
分布式微服务系统的跨库查询/操作的解决思路(关系型数据库)
4565 0
分布式微服务系统的跨库查询/操作的解决思路(关系型数据库)
|
JSON 自然语言处理 Java
39-微服务技术栈(高级):分布式搜索引擎ElasticSearch(索引库、文档操作)
在前面读者朋友们可以了解到ES承载着和MySQL一样的“存储-查询”功能,那么就类似的会有建表语句、表结构、表数据,有了这些才可以存储-查询数据。而这些对应的在ES中是:Mapping映射(表结构-建表语句)、索引库(表本身)、文档(表数据)。本节笔者将带领大家完整上述概念的创建、使用。
204 0
|
缓存 NoSQL API
分布式服务器框架之Servers.Common中使用CSRedis测试操作Redis中的string、hash_table、list、set、zset
在Servers.Common类库总创建了一个TestRedis.cs文件,我是在Servers.GameServer中去初始化的。主要是测试了Redis中常用的数据类型和常用的API,有一些不常用的可能没有写。需要详细了解API的话可以安装上CSRedis之后F12追进去查看,上面有详细的API说明。
分布式服务器框架之Servers.Common中使用CSRedis测试操作Redis中的string、hash_table、list、set、zset
|
供应链 Cloud Native 安全
|
Cloud Native 安全 Linux
议程剧透!1个主论坛4场Workshop,龙蜥操作系统峰会盛大来袭 | 2022 云栖大会
每场 Workshop 开放 30 个报名名额,人人一份龙蜥伴手礼!先报先审!
议程剧透!1个主论坛4场Workshop,龙蜥操作系统峰会盛大来袭 | 2022 云栖大会