应对智慧医保复杂的业务结算

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS SQL Server,基础系列 2核4GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 本场景介绍了应对智慧医保复杂的业务结算,阿里云数据库产品量身打造一体化的在/离线数据库服务。保障实时业务的效率的同时极大的提高结算服务的性能。

应对智慧医保复杂的业务结算


1. 在ECS实例上安装相关软件

在ECS实例上安装相关软件本案例以8 vCPU 16 GiB规格的ECS实例为例。

登录ECS。,选择实例,点击开通的实例ID名称。ECS控制台1)登录。远程连接2)单击。立即登录方式,单击Workbench远程连接3)可选择

在ECS上执行如下命令,安装压测工具SysBench。1)执行如下命令下载SysBench。

yum install gcc gcc-c++ autoconf automake make libtool bzr mysql-devel git mysql 
git clone https://github.com/akopytov/sysbench.git
2)进入SysBench目录。
cd sysbench
3)切换到SysBench 1.0.18版本。
git checkout 1.0.18
4)运行autogen.sh。
./autogen.sh
5)编译。
./configure --prefix=/usr --mandir=/usr/share/man
make
make install

执行如下命令配置SysBench Client,使内核可以使用所有的CPU处理数据包(默认设置为使用2个CPU),同时减少CPU之间的上下文切换。

sudo sh -c 'for x in /sys/class/net/eth0/queues/rx-*; do echo ff>$x/rps_cpus; done'
sudo sh -c 'echo 32768 > /proc/sys/net/core/rps_sock_flow_entries'
sudo sh -c 'echo 4096 > /sys/class/net/eth0/queues/rx-0/rps_flow_cnt'
说明:ff表示使用8个CPU(1个f表示4个CPU)。请根据实际配置修改,例如本案例中ECS为8核CPU,因此输入ff。

2. 准备模拟数据,写入RDS MySQL

准备模拟数据,写入RDS MySQL

在ECS中,执行如下命令,准备压测数据。

,在RDS MySQL中创建一个名为dbfortest的数据库。RDS 控制台登录

sysbench --threads=8 --table-size=25000 --tables=250 --events=0 --time=60 --mysql-db=xxx --mysql-user=xxx --mysql-password=xxx --mysql-host=xxx --mysql-port=xxx oltp_read_write prepare
涉及到的参数说明如下:

参数

说明

threads

测试线程数,可设置为8、16、32、64、128、256、512等,可根据实际的实例规格和环境时延进行尝试。

您可按照示例代码中的8进行设置。

table_size

要准备的表的大小,可按照示例代码中的25000进行设置。

tables

要准备的表的数量,可按照示例代码中的250进行设置。

events

测试请求数量,按照示例代码中的0进行设置。

time

测试时间,可按照示例代码中的60进行设置。

mysql-db

压测数据要注入的数据库名称,本示例中即为RDS MySQL中预先创建的dbfortest数据库。

mysql-user

RDS MySQL实例账号。

mysql-password

RDS MySQL实例账号对应的密码。

mysql-host

RDS MySQL实例连接地址。

可进入实例的数据库连接页面获取。

mysql-port

RDS MySQL实例连接端口。

可进入实例的数据库连接页面获取。

该命令会自动在RDS MySQL预先创建的dbfortest数据库中创建N个名为sbtest1、sbtest2……sbtestN的表(N为tables参数指定的表数量),其表结构如下,供您了解:
CREATE TABLE `sbtestN` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `k` int(11) NOT NULL DEFAULT '0',
  `c` char(120) NOT NULL DEFAULT '',
  `pad` char(60) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  KEY `k_100` (`k`)
) ENGINE=InnoDB AUTO_INCREMENT=25001 DEFAULT CHARSET=utf8

3. 搭建DTS同步链路

搭建DTS同步链路

,购买DTS数据同步任务。任务配置要求如下:DTS购买页登录

商品类型:若您仅为体验,建议选择数据传输服务DTS(后付费),将根据使用时长收费。体验完成后再释放。

功能:选择数据同步。

源实例:选择MySQL。区域按照已有的RDS MySQL实例的地域选择。

目标实例:选择 AnalyticDB MySQL。区域按照已有的ADB MySQL实例的地域选择。

同步拓扑:选择单向同步。

其他按照默认选择即可,不影响本次体验。

数据同步列表,找到购买的数据同步任务,点击配置同步链路。DTS控制台购买完成后,在

选择相应的实例ID,填写账号密码后,点击授权白名单进入下一步。

选择要同步的数据库dbfortest,点击“>”,将dbfortest数据库添加至已选择对象。其余配置均可采用默认配置。

点击下一步,当定义状态为“已定义”后,点击预检查并启动。

4. 观测ADB MySQL中数据

观测ADB MySQL中数据

本步骤需要在ADB MySQL控制台中,登录对应的ADB MySQL的实例,观测其数据。

连接到ADB MySQL实例。

执行如下命令,查看实例中的数据库:

show databases;

可以看到,dbfortest数据库已经开始从RDS MySQL向ADB MySQL进行同步了。

等几分钟后(数据同步和校验需要时间),执行如下命令,查看同步结果:

use dbfortest;
show tables;

可以看到250张表已经完成了同步。

5. 运行压测程序,模拟RDS MySQL流量

运行压测程序,模拟RDS MySQL流量

在ECS中,执行如下命令,运行压测程序。

sysbench --db-driver=mysql  --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=xxx --table_size=25000 --tables=250 --events=0 --time=60   --threads=4 --percentile=95 --report-interval=1 oltp_read_write run

涉及到的参数说明如下:

参数

说明

report-interval

表示N秒输出一次测试进度报告,0表示关闭测试进度报告输出,仅输出最终的报告结果。

您可按照示例代码中的1进行设置。

threads

测试线程数,可设置为8、16、32、64、128、256、512等,可根据实际的实例规格和环境时延进行尝试。

您可按照示例代码中的4进行设置。

table_size

要准备的表的大小,可按照示例代码中的25000进行设置。

tables

要准备的表的数量,可按照示例代码中的250进行设置。

events

测试请求数量,按照示例代码中的0进行设置。

time

测试时间,可按照示例代码中的60进行设置。

mysql-db

压测数据要注入的数据库名称,本示例中即为RDS MySQL中预先创建的dbfortest数据库。

mysql-user

RDS MySQL实例账号。

mysql-password

RDS MySQL实例账号对应的密码。

mysql-host

RDS MySQL实例连接地址。

可进入实例的数据库连接页面获取。

mysql-port

RDS MySQL实例连接端口。

可进入实例的数据库连接页面获取。

可以看到程序已经开始运行:

6. 观察ADB MySQL的数据同步

观察ADB MySQL的数据同步

在ADB MySQL实例中执行如下命令:

show processlist;

可以看到DTS正在同步数据:

7. 校验数据一致性

等待程序运行结束后(共运行60s),随机抽查数据,校验同步的一致性。

在RDS MySQL中执行如下命令:


         

得到结果“064ee326182860c39e27fe239205925a”。

在ADB MySQL中执行同样的SQL:


         

得到结果“064ee326182860c39e27fe239205925a”。

由此可见,数据从RDS MySQL经由DTS同步到ADB MySQL后,数据是一致的。也可以更换其他表、其他条件来校验数据的一致性。

实验链接:https://developer.aliyun.com/adc/scenario/c931223493134a8e9e89711481679c2c

相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
开发框架 Java .NET
Sitemesh3使用及配置
Sitemesh3使用及配置
225 0
|
缓存 运维 Java
nacos常见问题之点击下线提示报错如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
533 2
|
10月前
|
运维 自然语言处理 Linux
os-copilot安装和使用体验测评
OS Copilot是阿里云推出的操作系统智能助手,基于大模型技术,支持自然语言问答、命令执行和系统运维调优等功能,帮助用户更高效地使用Linux系统。本文介绍了OS Copilot的产品优势、功能特点及使用方法,包括对话模式、-t/-f/管道等参数的使用,以及安装和配置步骤。通过OS Copilot,用户可以简化复杂命令的操作,提升工作效率。同时,文中也分享了个人开发者在实际使用中的体验和建议,指出了一些有待改进的地方。
|
11月前
|
机器学习/深度学习 流计算
基于simulink的直接转矩控制方法建模与性能仿真
本研究基于Simulink实现直接转矩控制(DTC)建模与仿真,采用电压空间矢量控制及Park、Clark变换,实现电机磁场定向控制。系统通过磁链观测器、转矩估计器等模块,精确控制电机转矩和磁链,提高控制性能。MATLAB2022a版本实现核心程序与模型。
|
10月前
|
NoSQL 前端开发 Redis
单点登录云平台子系统集成方式
单点登录云平台子系统集成方式
330 0
|
Python
超详细的Python中 pip 常用命令,值得收藏!
超详细的Python中 pip 常用命令,值得收藏!
432 0
|
关系型数据库 MySQL
若依修改----验证码关闭
若依修改----验证码关闭
|
存储 算法 Linux
CTF—GIF文件格式、隐写方法及案例
CTF—GIF文件格式、隐写方法及案例
665 0
|
存储 Kubernetes API
Kubernetes 1.26版本更新解读
Kubernetes 1.26版本更新解读
|
JSON API Go
Go-Zero从0到1实现微服务项目开发(二)
继续更新GoZero微服务实战系列文章:上一篇被GoZero作者万总点赞了,本文将继续使用 Go-zero 提供的工具和组件,从零开始逐步构建一个基本的微服务项目。手把手带你完成:项目初始化+需求分析+表结构设计+api+rpc+goctl+apifox调试+细节处理。带你实现一个完整微服务的开发。
361 1
下一篇
开通oss服务