当前位置: 首页 > article >正文

Amazon RDS ProxySQL 探索(一)

:::info
💡 在日常开发中,开发者们会涉及到数据库的连接,在使用Amazon RDS数据库时,若使用集群模式或者多数据库时,会出现一写多读多个Endpoint,在实际开发中, 开发者们配置数据库连接通常希望走一个endpoint,让其自动分离读写

:::

Amazon RDS & ProxySQL架构图

本文架构图,作为入门演示环境,仅采用单个ProxySQL以及Amazon Aurora (MySQL Compatible) 5.7.44集群(1写1读)

AWS RDS MySQL的创建

Step1.创建MySQL数据库[读写]

需要创建至少2个节点的数据库集群,这样会产生读写节点

ProxySQL设置

Step1.安装ProxySQL

以Debian12为例,安装ProxySQL

ProxySQL下载地址

https://proxysql.com/documentation/installing-proxysql/

Debian 12安装ProxySQL

wget https://github.com/sysown/proxysql/releases/download/v2.7.3/proxysql_2.7.3-debian12_amd64.deb
dpkg -i proxysql_2.7.3-debian12_amd64.deb

开机并启动ProxySQL

systemctl enable proxysql
# 验证状态
systemctl status proxysql

Step2.RDS MySQL创建monitor用户

CREATE USER 'monitor'@'%' IDENTIFIED BY 'monitor';
GRANT USAGE, REPLICATION CLIENT ON *.* TO 'monitor'@'%';

Step3.ProxySQL添加用户,设定规则

INSERT INTO mysql_servers(hostgroup_id,hostname,port) VALUES (10,'write_node',3306);
INSERT INTO mysql_servers(hostgroup_id,hostname,port) VALUES (20,'read_node',3306);

insert into mysql_users (username,password,default_hostgroup) values ('root','123456',20);

insert into mysql_query_rules(rule_id,active,match_pattern,destination_hostgroup,apply) values (1,1,'^select.*for update$',10,1);
 
insert into mysql_query_rules(rule_id,active,match_pattern,destination_hostgroup,apply) values (2,1,'^select',20,1);

load mysql query rules to runtime;
save mysql query rules to disk;
load mysql variables to runtime;
save mysql variables to disk;
LOAD MYSQL USERS TO RUNTIME;	
SAVE MYSQL USERS TO DISK;

相关资料

感谢各位亚马逊云科技的架构师

  • 如何结合使用 ProxySQL 和开源平台来拆分 Amazon Aurora 集群上的 SQL 读写操作
  • How to use ProxySQL with open source platforms to split SQL reads and writes on Amazon Aurora clusters
  • 开源软件 ProxySQL 与 AWS RDS 不得不说系列 Blog(一): Proxy on AWS 测试架构和 ProxySQL 基本配置

http://www.kler.cn/a/586128.html

相关文章:

  • Windows 发票闪印 PrintPDF-v3.6.10-第三方发票打印辅助工具,无需安装阅读器即可使用
  • idea 生成jpa的mvc三层
  • 基于yolov8+streamlit实现目标检测系统带漂亮登录界面
  • 雷池WAF 处理 HTTP 请求的流程
  • MySQL 8 主从同步安装与配置
  • 【git】补丁文件
  • OpenHarmony体系架构深度解析
  • 环路广播风暴演示图
  • C语言【数据结构】:时间复杂度和空间复杂度.详解
  • 市面上常用的23种设计模式,分析实现方式以及实际使用场景案例
  • Flask实现分页的三种方法
  • 面试之《前端常见的设计模式》
  • spring boot程序启动时读取覆盖配置文件中的变量
  • 蓝桥杯备考:红黑树容器map应用---英语作文
  • React19源码系列之FiberRoot节点和Fiber节点
  • springboot validation 校验字段是否为空
  • Java开发之微服务架构设计:Spring Cloud Alibaba核心组
  • 探索HTML5 Canvas:创造动态与交互性网页内容的强大工具
  • 从前端视角理解消息队列:核心问题与实战指南
  • 基于Transformer的医学文本分类:从BERT到BioBERT