北京云栖大会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
目录
相关文章
|
6月前
|
存储 分布式计算 大数据
HBase分布式数据库关键技术与实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析了HBase的核心技术,包括数据模型、分布式架构、访问模式和一致性保证,并探讨了其实战应用,如大规模数据存储、实时数据分析及与Hadoop、Spark集成。同时,分享了面试经验,对比了HBase与其他数据库的差异,提出了应对挑战的解决方案,展望了HBase的未来趋势。通过Java API代码示例,帮助读者巩固理解。全面了解和掌握HBase,能为面试和实际工作中的大数据处理提供坚实基础。
391 3
|
6月前
|
消息中间件 RocketMQ 微服务
RocketMQ 分布式事务消息实战指南
RocketMQ 分布式事务消息实战指南
606 1
|
1月前
|
NoSQL Java Redis
开发实战:使用Redisson实现分布式延时消息,订单30分钟关闭的另外一种实现!
本文详细介绍了 Redisson 延迟队列(DelayedQueue)的实现原理,包括基本使用、内部数据结构、基本流程、发送和获取延时消息以及初始化延时队列等内容。文章通过代码示例和流程图,逐步解析了延迟消息的发送、接收及处理机制,帮助读者深入了解 Redisson 延迟队列的工作原理。
|
2月前
|
人工智能 Linux 云栖大会
看过来!2024 云栖大会操作系统技术 Workshop 怎么玩?
报名倒计时2天啦,欢迎大家来“操作系统技术Workshop”打卡。专家讲解原理、现场实战演练,AI、C++ 20专场任选。
看过来!2024 云栖大会操作系统技术 Workshop 怎么玩?
|
5月前
|
消息中间件 NoSQL Java
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
227 0
|
3月前
|
消息中间件 Java Kafka
"Kafka快速上手:从环境搭建到Java Producer与Consumer实战,轻松掌握分布式流处理平台"
【8月更文挑战第10天】Apache Kafka作为分布式流处理平台的领头羊,凭借其高吞吐量、可扩展性和容错性,在大数据处理、实时日志收集及消息队列领域表现卓越。初学者需掌握Kafka基本概念与操作。Kafka的核心组件包括Producer(生产者)、Broker(服务器)和Consumer(消费者)。Producer发送消息到Topic,Broker负责存储与转发,Consumer则读取这些消息。首先确保已安装Java和Kafka,并启动服务。接着可通过命令行创建Topic,并使用提供的Java API实现Producer发送消息和Consumer读取消息的功能。
71 8
|
3月前
|
消息中间件 SQL 关系型数据库
go-zero微服务实战系列(十、分布式事务如何实现)
go-zero微服务实战系列(十、分布式事务如何实现)
|
4月前
|
负载均衡 Java 开发者
Spring Cloud实战:构建分布式系统解决方案
Spring Cloud实战:构建分布式系统解决方案
|
6月前
|
监控 NoSQL 算法
探秘Redis分布式锁:实战与注意事项
本文介绍了Redis分区容错中的分布式锁概念,包括利用Watch实现乐观锁和使用setnx防止库存超卖。乐观锁通过Watch命令监控键值变化,在事务中执行修改,若键值被改变则事务失败。Java代码示例展示了具体实现。setnx命令用于库存操作,确保无超卖,通过设置锁并检查库存来更新。文章还讨论了分布式锁存在的问题,如客户端阻塞、时钟漂移和单点故障,并提出了RedLock算法来提高可靠性。Redisson作为生产环境的分布式锁实现,提供了可重入锁、读写锁等高级功能。最后,文章对比了Redis、Zookeeper和etcd的分布式锁特性。
508 16
探秘Redis分布式锁:实战与注意事项

热门文章

最新文章