图文结合丨GreatSQL MGR + ProxySQL集群搭建方案

mysql集群安装proxysql-基于MGR组复制集群 此语句可确定集群连接状态,其中重点关注hostgroup_id,该字段的涵义与proxysql.cnf配置中的mysql_group_replication_hostgroups的配置相关(具体关系需要学习ProxySQL相关资料),> 以上结果可以看出,可用的写入节点为192.168.100.13,可读节点只有192.168.100.12,192.168.100.13,因为192.168.100.11为离线状态,将不会接受到请求,需要人工干预,进行修复。首先确认一下当前配置。 阅读详情

前言

ProxySQL

ProxySQL 是基于 MySQL 的一款开源的中间件的产品,是一个灵活的 MySQL 代理层,可以实现读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行缓存,支持动态加载(无需重启 ProxySQL 服务),故障切换和一些 SQL 的过滤功能。

GreatSQL MGR

GreatSQL是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。

GreatSQL在高可靠方面的主要提升是针对MGR做了大量的改进和提升工作,进一步提升MGR的高可靠等级。包括但不限于以下提升:

  1. 地理标签,提升多机房架构数据可靠性。
  2. 读写节点动态VIP,高可用切换更便捷。
  3. 仲裁节点,用更低的服务器成本实现更高可用。
  4. 快速单主模式,在单主模式下更快,性能更高。
  5. 智能选主,高可用切换选主机制更合理。
  6. 全新流控算法,使得事务更平稳,避免剧烈抖动。
  7. 优化了节点加入、退出时可能导致性能剧烈抖动的问题。
  8. 解决磁盘空间爆满时导致MGR集群阻塞的问题。
  9. 解决了长事务造成无法选主的问题。
  10. 优化事务认证队列清理算法,规避每60s抖动问题。
  11. 修复了recover过程中长时间等待的问题。

了解更多详细信息可以前往➥https://gitee.com/GreatSQL/GreatSQL-Manual/blob/master/5-enhance/5-2-ha.md

部署环境介绍

部署架构图

file

GreatSQL MGR集群实现数据库复制功能及高可用。Proxysql对应用程序提供访问,对MGR集群进行读写分离,集群状态检测,实现故障切换。

部署环境配置

部署软件详情
软件名版本号
GreatSQL8.0.32-24
ProxySQL2.5.4-58
部署环境准备

本次采用的是单机多实例的部署方式,如何部署单机多实例可以前往➥https://gitee.com/GreatSQL/GreatSQL-Manual/blob/master/6-oper-guide/6-6-multi-instances.md

IP端口角色
172.17.139.773306MGR01
172.17.139.773307MGR02
172.17.139.776032、6033ProxySQL
$ cat /etc/system-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
$ uname -a
Linux gip 3.10.0-1160.el7.x86_64 #1 SMP Tue Aug 18 14:50:17 EDT 2020 x86_64 x86_64 x86_64 GNU/Linux
GreatSQL配置
#mgr settings
loose-plugin_load_add = 'mysql_clone.so'
loose-plugin_load_add = 'group_replication.so'
loose-group_replication_group_name = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa1"
loose-group_replication_group_seeds = '172.17.139.77:33061,172.17.139.77:33071'
loose-group_replication_start_on_boot = ON
loose-group_replication_bootstrap_group = OFF
loose-group_replication_exit_state_action = READ_ONLY
loose-group_replication_flow_control_mode = "DISABLED"
loose-group_replication_single_primary_mode = ON
loose-group_replication_communication_max_message_size = 10M
loose-group_replication_transaction_size_limit = 3G
loose-group_replication_arbitrator = 0
loose-group_replication_single_primary_fast_mode = 0
loose-group_replication_request_time_threshold = 20000
report_host = "172.17.139.77"

MGR01节点配置如下

[mysqld@mgr01]
datadir=/data/GreatSQL/mgr01
socket=/data/GreatSQL/mgr01/mysql.sock
port=3306
server_id=103306
log-error=/data/GreatSQL/mgr01/error.log
loose-group_replication_local_address= "172.17.139.77:33061"

MGR02节点配置如下

[mysqld@mgr02]
datadir=/data/GreatSQL/mgr02
socket=/data/GreatSQL/mgr02/mysql.sock
port=3307
server_id=103317
log-error=/data/GreatSQL/mgr02/error.log
loose-group_replication_local_address= "172.17.139.77:33071"

搭建MGR集群及ProxySQL

搭建GreatSQL MGR 集群

MGR01实例操作

greatsql> set session sql_log_bin=0;
greatsql> create user 'repl'@'%' identified with mysql_native_password by 'GreatSQL@666';
greatsql> GRANT BACKUP_ADMIN, REPLICATION SLAVE ON *.* TO `repl`@`%`;
greatsql> set session sql_log_bin=1;
greatsql> CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='GreatSQL@666' FOR CHANNEL 'group_replication_recovery';

接下来即可启动MGR集群

greatsql> set global group_replication_bootstrap_group=ON;
greatsql> start group_replication;
greatsql> select * from performance_schema.replication_group_members\G
*************************** 1. row ***************************
              CHANNEL_NAME: group_replication_applier
                 MEMBER_ID: 2920447e-35bf-11ee-89a5-00163e566da1
               MEMBER_HOST: 172.17.139.77
               MEMBER_PORT: 3306
              MEMBER_STATE: ONLINE
               MEMBER_ROLE: PRIMARY
            MEMBER_VERSION: 8.0.32
MEMBER_COMMUNICATION_STACK: XCom

MGR02实例操作

greatsql> set session sql_log_bin=0;
greatsql> create user 'repl'@'%' identified with mysql_native_password by 'GreatSQL@666';
greatsql> GRANT BACKUP_ADMIN, REPLICATION SLAVE ON *.* TO `repl`@`%`;
greatsql> set session sql_log_bin=1;
greatsql> CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='GreatSQL@666' FOR CHANNEL 'group_replication_recovery';
greatsql> start group_replication;
Query OK, 0 rows affected (5.39 sec)

MGR集群搭建成功

greatsql> select * from performance_schema.replication_group_members\G
*************************** 1. row ***************************
              CHANNEL_NAME: group_replication_applier
                 MEMBER_ID: 8f20696c-3b46-11ee-b59e-00163e566da1
               MEMBER_HOST: 172.17.139.77
               MEMBER_PORT: 3306
              MEMBER_STATE: ONLINE
               MEMBER_ROLE: PRIMARY
            MEMBER_VERSION: 8.0.32
MEMBER_COMMUNICATION_STACK: XCom
*************************** 2. row ***************************
              CHANNEL_NAME: group_replication_applier
                 MEMBER_ID: 8ff26a55-3b46-11ee-bd70-00163e566da1
               MEMBER_HOST: 172.17.139.77
               MEMBER_PORT: 3307
              MEMBER_STATE: ONLINE
               MEMBER_ROLE: SECONDARY
            MEMBER_VERSION: 8.0.32
MEMBER_COMMUNICATION_STACK: XCom

在MGR集群上创建ProxySQL所需的账号

# proxysql的监控账户
greatsql> create user 'monitor'@'%' identified with mysql_native_password by 'Monitor@666';
greatsql> grant all privileges on *.* to 'monitor'@'%' with grant option;
# proxysql的对外访问账户
greatsql> create user 'proxysql'@'%' identified with mysql_native_password by 'Proxysql@666';
greatsql> grant all privileges on *.* to 'proxysql'@'%' with grant option;

用户认证的方式需要修改为 mysql_native_password

看看有没有创建成功

greatsql> select User,Host from mysql.user;
+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| monitor          | %         |
| proxysql         | %         |
| repl             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+

安装ProxySQL

ProxySQL文档中有详细的安装教程可以浏览➥https://github.com/sysown/proxysql

RPM方式和yum方式都可以安装的,本文采用RPM方式安装,如果要用yum安装需要更换yum源

$ cat > /etc/yum.repos.d/proxysql.repo << EOF
[proxysql]
name=ProxySQL YUM repository
baseurl=https://repo.proxysql.com/ProxySQL/proxysql-2.4.x/centos/\$releasever
gpgcheck=1
gpgkey=https://repo.proxysql.com/ProxySQL/proxysql-2.4.x/repo_pub_key
EOF

Red Hat 系统要把 \$releasever 改为 7

接着直接安装即可

$ yum install proxysql

这里要注意一下,如果GreatSQL使用RPM方式安装的,会和ProxySQL需要的依赖冲突!

RPM包下载地址:https://github.com/sysown/proxysql/releases/tag/v2.5.4

所以采用RPM的--nodeps选项强制安装rpm -ivh proxysql-2.5.4-1-centos7.x86_64.rpm --nodeps

但是启动 systemctl start proxysql.service的时候会报错,需要libgnutls.so.28

这时候再安装yum install -y gnutls,再次systemctl start proxysql.service即可启动

启动ProxySQL

$ systemctl start proxysql
# 检查是否启动成功
$ systemctl status proxysql

查看下端口是否开放

$ netstat -anlp | grep proxysql
tcp  0  0 0.0.0.0:6033  0.0.0.0:*  LISTEN 1009915/proxysql    
tcp  0  0 0.0.0.0:6032  0.0.0.0:*  LISTEN 1009915/proxysql  
  • 6032 是ProxySQL的管理端口号
  • 6033 是对外服务的端口号

ProxySQL的用户名和密码都是默认的admin

配置ProxySQL

管理员登录

$ mysql -uadmin -padmin -h 127.0.0.1 -P 6032

可以看到有一些数据库可用, ProxySQL将SHOW DATABASE命令转换为SQLite3的等效命令。

greatsql> show databases;
+-----+---------------+-------------------------------------+
| seq | name          | file                                |
+-----+---------------+-------------------------------------+
| 0   | main          |                                     |
| 2   | disk          | /var/lib/proxysql/proxysql.db       |
| 3   | stats         |                                     |
| 4   | monitor       |                                     |
| 5   | stats_history | /var/lib/proxysql/proxysql_stats.db |
+-----+---------------+-------------------------------------+
5 rows in set (0.00 sec)

这些数据库作用如下:

  • main:内存配置数据库 使用此数据库,可以轻松地以自动方式查询和更新ProxySQL的配置。使用LOAD MYSQL USERS FROM MEMORY和类似命令,存储在此处的配置可以在运行时传播到ProxySQL使用的内存数据结构。

  • disk:基于磁盘的"main"镜像。 在重新启动时,"main"不会持久存在,并且可以从“磁盘”数据库或配置文件中加载,具体取决于启动标志和磁盘数据库的存在。

  • stats:包含从代理的内部功能收集的运行时指标。 示例度量标准包括每个查询规则匹配的次数,当前运行的查询等。

  • monitor:包含与ProxySQL连接的后端服务器相关的监控指标。 示例度量标准包括连接到后端服务器或对其进行ping操作的最短和最长时间。

  • myhgm:仅在调试版本中启用

此外,使用这两种类型的用户使用这些默认凭据访问管理数据库:

  • user:admin / password:admin - 具有对所有表的读写访问权限

  • user:stats / password:stats - 具有对统计表的只读访问权限。 这用于从ProxySQL中提取指标,而不会暴露太多的数据库

上述的访问凭据,可通过变量admin-admin_credentials和admin-stats_credentials进行配置。

更多详细的介绍可以前往”老叶茶馆MySQL-ProxySQL中间件(一)【微信添加】“”老叶茶馆MySQL-ProxySQL中间件(二)【微信添加】“

为配置监控账号

greatsql> set mysql-monitor_username='monitor';
greatsql> set mysql-monitor_password='Monitor@666';

上面这两句是修改变量的方式还可以在main库下面用sql语句方式修改

greatsql>UPDATE global_variables SET variable_value='monitor' WHERE variable_name='mysql-monitor_username';
greatsql>UPDATE global_variables SET variable_value='Monitor@666' WHERE variable_name='mysql-monitor_password';

配置默认组信息

greatsql> insert into mysql_group_replication_hostgroups(writer_hostgroup,backup_writer_hostgroup,reader_hostgroup,offline_hostgroup,active,writer_is_also_reader)values(10,20,30,40,1,1);

这段SQL语句是用来配置MGR集群的主备和读写分离的,向mysql_group_replication_hostgroups表插入配置

  • writer_hostgroup:写入主节点的主机组(必须大于0),这里设置为10
  • backup_writer_hostgroup:备份写入主节点的主机组,这里是20。
  • reader_hostgroup:只读节点的主机组,这里是30。
  • offline_hostgroup:离线节点的主机组,这里是40。
  • active:是否激活该配置,1表示激活。
  • writer_is_also_reader:写入主节点是否也可以作为读节点,1表示可以。

配置对外访问用户到写组10内

greatsql> insert into mysql_users(username,password,default_hostgroup)values('proxysql','Proxysql@666',10);

这个 SQL 代码的作用是将一个 MySQL 服务器节点添加到 ProxySQL 的管理中,以便 ProxySQL 可以根据定义的规则和策略来分发连接请求,从而实现负载均衡和高可用性。

配置主节点定义为写组10,从节点定义为只读组30

greatsql> insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment)values (10,'172.17.139.77',3306,1,3000,10,'mgr01');
greatsql> insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment)values (30,'172.17.139.77',3306,2,3000,10,'mgr01');
greatsql> insert into mysql_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment)values (30,'172.17.139.77',3307,2,3000,10,'mgr02');
  • hostgroup_id:指定所属的主机组(Hostgroup),这是 ProxySQL 中用于分组管理的一个概念。在这里,它被设置为 10。
  • hostname:指定 MySQL 服务器的主机名或 IP 地址,这里是 '172.17.139.77'。
  • port:指定 MySQL 服务器的端口号,这里是 3306。
  • weight:指定该节点在负载均衡中的权重。权重越高,代表更多的请求会被分配到这个节点。这里设置为 1。
  • max_connections:指定该节点允许的最大连接数。
  • max_replication_lag:指定最大的复制延迟(以秒为单位),这是一个连接到主从复制的节点时的配置。
  • comment:一个可选的注释或描述信息,这里设置为 'mgr01'。

这个 SQL 代码的作用是将一个 MySQL 用户添加到 ProxySQL 的管理中,以便 ProxySQL 可以根据定义的用户访问规则和策略来控制用户对数据库的访问,包括路由、负载均衡和故障转移等。

配置读写分离参数,与之相关的有两个表mysql_query_rules和mysql_query_rules_fast_routing这里大家可以自行配置

其中表mysql_query_rules_fast_routing是mysql_query_rules的扩展,并在以后评估快速路由策略和属性(仅在ProxySQL 1.4.7+中可用)。

greatsql> insert into mysql_query_rules(rule_id,active,match_digest,destination_hostgroup,apply)values(1,1,^SELECT.*FORUPDATE$,10,1);
greatsql> insert into mysql_query_rules(rule_id,active,match_pattern,destination_hostgroup,apply) values (2,1,'^select',30,1);
  • active:是否启用这个规则,1表示启用,0表示禁用
  • match_pattern 字段就是代表设置规则
  • destination_hostgroup 字段代表默认指定的分组,
  • apply 代表真正执行应用规则

在 ProxySQL 中,rule_id 的排序作用是控制规则的匹配顺序。ProxySQL 在处理查询请求时,会按照 rule_id 的升序顺序逐一匹配规则,直到找到第一个匹配的规则为止。一旦找到匹配的规则,ProxySQL 将根据该规则的定义来处理查询请求。这种排序的作用是确保规则按照预期的顺序进行匹配和应用,以实现精确的查询路由、分流和负载均衡。

在上述例子中,select ... for update 规则,确保其 rule_id 小于普通的 select 规则的 rule_id 是为了确保在匹配时先匹配到 select ... for update 规则,而不是普通的 select 规则。

因为 select ... for update 是一种特殊的查询,它在执行时会涉及到锁定操作,可能会影响其他查询的执行。通过让 select ... for update 的 rule_id 更小,可以确保 ProxySQL 在匹配查询规则时优先考虑匹配这个特殊的规则,从而在处理 select ... for update 时能够更精确地应用相应的路由和处理逻辑。

save使内存数据永久存储到磁盘,load使内存数据加载到runtime生效:

greatsql> save mysql users to disk;
greatsql> save mysql servers to disk;
greatsql> save mysql query rules to disk;
greatsql> save mysql variables to disk;
greatsql> save admin variables to disk;
greatsql> load mysql users to runtime;
greatsql> load mysql servers to runtime;
greatsql> load mysql query rules to runtime;
greatsql> load mysql variables to runtime;
greatsql> load admin variables to runtime;

加载完成后,可以使用select * 查询下设置的各表的信息是否有误

验证监控信息 ProxySQL 监控模块的指标都保存在monitor库的log表中 ,以下是连接是否正常的监控,对connect指标的监控 ,在前面可能会有很多connect_error,这是因为没有配置监控信息时的错误,配置后如果connect_error的结果为NULL则表示正常

greatsql> select * from monitor.mysql_server_connect_log;
+---------------+------+------------------+-------------------------+---------------+
| hostname      | port | time_start_us    | connect_success_time_us | connect_error |
+---------------+------+------------------+-------------------------+---------------+
| 172.17.139.77 | 3307 | 1692152694528579 | 2347                    | NULL          |
| 172.17.139.77 | 3306 | 1692152695231434 | 3131                    | NULL          |
+---------------+------+------------------+-------------------------+---------------+
#只截取部分

对心跳信息的监控(对ping 指标的监控)

greatsql> select * from mysql_server_ping_log limit 10;
+---------------+------+------------------+----------------------+------------+
| hostname      | port | time_start_us    | ping_success_time_us | ping_error |
+---------------+------+------------------+----------------------+------------+
| 172.17.139.77 | 3306 | 1692152694511424 | 132                  | NULL       |
| 172.17.139.77 | 3307 | 1692152694511498 | 125                  | NULL       |
+---------------+------+------------------+----------------------+------------+
#只截取部分

测试读写分离

通过proxysql 连接看看读操作,是否路由给了读组

$ mysql -uproxysql -pProxysql@666 -P 6033 -h 172.17.139.77 -e "select @@server_id;"
+-------------+
| @@server_id |
+-------------+
|      103317 |
+-------------+
#可以看到已经把路由分配给了读组

测试下写操作

greatsql> begin;
Query OK, 0 rows affected (0.00 sec)
greatsql> select User from mysql.user for update;
+------------------+
| User             |
+------------------+
| monitor          |
| proxysql         |
| repl             |
| mysql.infoschema |
| mysql.session    |
| mysql.sys        |
| root             |
+------------------+
7 rows in set (0.00 sec)
greatsql> select @@server_id;
+-------------+
| @@server_id |
+-------------+
|      103306 |
+-------------+
1 row in set (0.00 sec)
#可以看到已经把路由分配给了写组
greatsql> commit;
Query OK, 0 rows affected (0.00 sec)

如果想在 ProxySQL 中查看SQL请求路由信息stats_mysql_query_digest

greatsql> select hostgroup,schemaname,username,digest_text,count_star from  stats_mysql_query_digest;
+-----------+--------------------+----------+----------------------------------------+------------+
| hostgroup | schemaname         | username | digest_text                            | count_star |
+-----------+--------------------+----------+----------------------------------------+------------+
| 10        | information_schema | proxysql | commit                                 | 1          |
| 10        | information_schema | proxysql | select User from mysql.user for update | 1          |
| 10        | information_schema | proxysql | select * from beta1 for update         | 2          |
| 10        | information_schema | proxysql | begin                                  | 1          |
| 30        | information_schema | proxysql | select @@server_id                     | 2          |
+-----------+--------------------+----------+----------------------------------------+------------+
#只截取部分
  • count_start 统计 SQL 语句次数,可以分析哪些 SQL ,频繁执行

至此一个GreatSQL MGR + ProxySQL集群搭建方案到此部署完成

结尾

虽然ProxySQL的功能强大,但是ProxySQL毕竟不是官方原生的,在和MGR的配合上不如GreatSQL-MySQL-Router更顺滑,例如还需要额外创建存储过程以监控MGR的变化。此外就是ProxySQL的BUG其实也挺多的,当然了,如果是业务量不大,或者出于学习、实验用途,选用ProxySQL也是可以的。

推荐使用GreatSQL-MySQL-Router,对GreatSQL MGR的配合更加丝滑,兼容度更高。

使用GreatSQL-MySQL-Router构建MGR集群构建读写分离方案:https://gitee.com/GreatSQL/GreatSQL-Manual/blob/master/6-oper-guide/6-3-oper-rw-splitting.md


Enjoy GreatSQL :)

关于 GreatSQL

GreatSQL是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。

相关链接: GreatSQL社区 Gitee GitHub Bilibili

GreatSQL社区:

image

社区有奖建议反馈: https://greatsql.cn/thread-54-1-1.html

社区博客有奖征稿详情: https://greatsql.cn/thread-100-1-1.html

(对文章有疑问或者有独到见解都可以去社区官网提出或分享哦~)

技术交流群:

微信&QQ群:

QQ群:533341697

微信群:添加GreatSQL社区助手(微信号:wanlidbc )好友,待社区助手拉您进群。

ProxySQL 2.0 + MGR 8.0 读写分离 MySQL Group Replication在5.7版本还是不太稳定,索引涉及时选择了8版本,proxysql已更新至2版本,已支持MySQL Group Replication 阅读详情

相关推荐

ProxySQL 集群配置完整指南

在步骤4:配置ProxySQL 账户,我创建的对外访问账户是:用户:proxysql,密码:123456。这个表 mysql_replication_hostgroup,writer_hostgroup 和reader_hostgroup 写组和读组都要大于0且不能相同,我的环境下,写组定义与10,读组定义为20。for update规则的rule_id必须要小于普通的select规则的rule_id,因为ProxySQL是根据rule_id的顺序进行规则匹配的。

腾讯云创作之星、华为云云享专家,深耕电商全栈高并发系统实战,分享可商用商城项目源码。 1275

【MySql】ProxySQL指南

ProxySQL是灵活强大的MySQL代理层, 是一个能实实在在用在生产环境的MySQL中间件,可以实现读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行 cache,支持动态加载配置、故障切换和一些 SQL的过滤功能。还有一些同类产品比如 DBproxy、MyCAT、OneProxy 等。但经过反复对比和测试之后,还是觉得ProxySQL是一款性能不谙,靠谱稳定的MySQL 中间件产品.它有官方版和 percona 版两种.percona版是在官方版的基础上修改的,添加了几个比较实用的工

欢迎指错||纠正||建议||水评+点赞&&评论&&关注&&转发 5113

MySQL运维实战之ProxySQL(9.9)proxysql自身高可用

作者:俊达proxysql作为一个程序,本身也可能出现故障。部署proxysql的服务器也肯能出现故障。高可用架构的一个基本原则是消除单点。可以在多个节点上部署proxysql,在proxysql之前再加一层负载均衡(如使用LVS或其他技术),从而消除proxysql的单点。也可以使用keepalived等技术来实现proxysql的高可用。部署多台proxysql后,需要确保多台proxysql的配置同步。不然就可能会引起客户端访问出错。

796

MySQL高可用主从集群(二)——ProxySQL中间件部署

ProxySQL中间件部署并实现MySQL主从集群代理和读写分离

爱新觉罗ZBC 2015

ProxySQL+MHA搭建MySQL读写分离高可用集群

ProxySQL是一个高性能的、高可用性MySQL中间件。ProxySQL是基于 MySQL 的一款开源的中间件的产品,是一个灵活的MySQL代理层,可以实现读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行缓存,支持动态加载(无需重启 ProxySQL 服务),故障切换和一些 SQL 的过滤功能。允许轻松动态更新配置,便于运维管理,与MySQL兼容的管理界面可用于此目的;几乎所有的配置均可在线更改(其配置数据基于SQLite存储),无需重启proxysql;

悦分享 1095

大数据实时+离线项目架构----智慧物流大数据平台(超流行框架!)

智慧物流大数据平台 文章目录智慧物流大数据平台一、项目背景二、逻辑架构三、解决方案技术亮点:数据流转四、项目的技术选型4.1流式处理平台4.2 分布式计算平台4.3 海量数据存储框架软件版本总结 一、项目背景 本项目基于一家大型物流公司研发的智慧物流大数据平台。该物流公司是国内综合性快递、物流服务商,并在全国各地都有覆盖的网点。经过多年的积累、经营以及布局,拥有大规模的客户群,日订单达上千万。如此规模的业务数据量,传统的数据处理技术已经不能满足企业的经营分析需求。公司需要基于大数据技术构建数据中心,从而挖

weixin_48143996的博客 6430

MySQL中间件之ProxySQL(13):ProxySQL集群

返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html   ProxySQL有原生的集群功能,但是这个原生的集群功能还正在试验阶段。本文会详细介绍这个原生集群的实现细节。 1.ProxySQL部署在哪 在拓扑结构中,ProxySQL部署在应用程序和MySQL集群的中间位置。应用程序向ProxySQL发起SQL语句,Prox...

weixin_34342992的博客 216

【信创-k8s】银河麒麟V10国防版+鲲鹏/飞腾(arm64架构)在线/离线部署k8s1.30+kubesphere

银河麒麟作为国家核高基专项的重要成果,国防版凭借其卓越的安全性和可靠性,已成为军工领域的首选操作系统。之前我们在适配麒麟V4国防版的过程中已发现诸多安全性要求,而麒麟V10国防版在安全防护等级上又达到了更高的级别。本文将主要演示离线部署,因为军工项目基本不会出现联网场景。即使在线,也可以按离线方式部署,且离线部署由于有私有仓库,不会存在镜像获取不到和丢失情况。

jiaworld的博客 730

ProxySQL(六)—— 搭建 ProxySQL 集群

ProxySQL 集群详解、集群搭建步骤、验证测试、JDBC 接入配置、故障排查指南、生产环境最佳实践

wzy0623的专栏 458

Qt Coordinate System

Qt 坐标系统Qt 坐标系统 数学基础 Qt坐标系统 视口 平移变换 缩放变换 setWindow 旋转 总结数学基础 矩阵与线性变换坐标系变换Qt坐标系统 视口和OpenGL一样,视口确定了画面在窗口(QWidget)中显示的区域,Qt的绘图坐标会完全映射到视口(View port)上,就像图示一样。默认情况下,窗口和视口是重合的,视口的大小覆盖了整个窗口。和OpenGL一样,Qt的QPa

unclerunning的博客 1151

【制作100个Unity游戏之36】用unity从零开始实现类《开心消消乐》的三消类消除解压小游戏

Unity甜品消除游戏开发摘要 本文介绍了使用Unity开发甜品消除游戏的核心实现步骤: 冰块阵列生成 通过GlobalDef定义全局参数(9行7列网格) IceSpawner脚本动态生成网格化冰块阵列 添加Resolution脚本实现多分辨率适配 随机水果生成 创建FruitSpawner作为水果容器 FruitItem脚本管理水果属性(行列索引、类型) 支持动态创建水果精灵并设置位置 关键技术点 使用Instantiate动态生成预制体 通过localPosition精确控制网格布局 分辨率适配算法保持

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1291

ProxySQL构建PolarDB-X标准版高可用路由服务三节点集群

ProxySQL构建PolarDB-X标准版高可用路集群

號先生的博客 1457

(02)Cartographer源码无死角解析-(81) ROS栅格地图→服务接收子图、cairo图像绘详解、OccupancyGrid地图发布

疑问1疑问1src/cartographer/cartographer/mapping/2d/probability_grid.cc 文件中的 ProbabilityGrid::DrawToSubmapTexture 函数的 proto::SubmapQuery::Response::SubmapTexture* 示例对象 texture 中texture->mutable_slice_pose() 的含义具体是什么。

江南才尽江南山,年少无知年少狂! 1929

Mysql Group Replication 主从(单主)中间件ProxySQL安装配置

注意:第4、第5两步的操作可以在mysql group replication主节点上先行执行。   1、下载安装ProxySQL wget https://github.com/sysown/proxysql/releases/download/v1.3.3/proxysql-1.3.3-1-centos67.x86_64.rpm rpm –ivh proxysql-1.3.3-1-...

iteye_3489的博客 532

YOLO11,ultralytics-main源代码目录结构详解

本文详细介绍了YOLO11框架的ultralytics-main源代码目录结构,帮助用户更好地理解和使用YOLO模型。主要目录包括:docker文件夹,包含多种Docker镜像文件,适用于不同硬件环境;docs文件夹,存放YOLO的说明文档;examples文件夹,提供YOLO使用的示例代码;tests文件夹,包含单元测试模块;ultralytics文件夹,为核心代码所在,包含推理逻辑、配置、数据处理等模块。其中,engine文件夹负责训练和推理引擎,models文件夹存放模型架构,nn定义神经网络结构

qq_30279827的博客 1282

YOLO26涨点改进 | 检测头Head创新改进篇 | 利用DynamicConv高效动态卷积改进YOLO26检测头,DyHead通过增强检测头操作,轻量化改进、提高模型目标检测的精度

YOLO26作为新一代轻量化目标检测模型的代表,凭借精简的Backbone架构、高效的特征融合 Neck 设计,在实时检测场景(如嵌入式设备、边缘计算)中展现出优异的性能,成为工业落地与科研入门的优选模型。但在实际应用中,YOLO26原生检测头仍存在核心瓶颈:采用固定参数卷积核,无法根据输入特征的目标尺度、纹理差异动态调整卷积权重,导致多尺度目标适配不足、复杂背景下特征利用率低,且传统改进方案往往难以平衡“精度提升”与“轻量化”,要么精度提升有限,要么大幅增加参数量、拖累推理速度。

qq_36130719的博客 372

ProxySQL + MySQL MGR 实现读写分离实战

万字详解 MySQL MGR 高可用集群搭建ProxySQL 和 ShardingJDBC 属于竞品关系,国内使用ShardingJDBC更多,国外使用ProxySQL更多。当我们搭建好了MGR集群,由于组复制的存在,保证每个节点的数据都是强一致的。不会出现主节点有数据,而从节点没有数据的情况。

保持学习 2235

41、矩形和圆柱形开槽微带贴片天线设计及性能分析

本文提出了一种适用于ISM频段(2.4 - 2.48 GHz)的微带圆形贴片天线,专为生物医学植入和可穿戴设备设计。通过在贴片上蚀刻矩形槽并去除圆柱形槽,实现了小型化与性能优化。采用Rogers 3010基板材料,结合缺陷接地结构(DGS)技术,有效改善了带宽、回波损耗和极化纯度。仿真结果显示,天线在弯曲状态下仍保持良好性能,回波损耗达-13 dB,VSWR为1.6,方向性提升至5.38 dB。与以往设计相比,本次设计在回波损耗和谐振频率稳定性方面表现优异,具备良好的生物相容性和应用潜力。未来将从开槽结构、

github5actions的博客 259

基于 MySQL 8.0.40 MGR 与 ProxySQL 的高可用集群部署实践

本文介绍了构建高可用 MySQL 8.0.40 集群的完整方案,采用 MySQL Group Replication (MGR) 和 ProxySQL 实现。主要内容包括: 环境准备:3节点CentOS 7.x服务器配置,网络互通要求 MySQL安装配置:详细说明了my.cnf和mgr.cnf的关键参数设置 MGR集群搭建:包括复制账户创建、集群引导和节点加入步骤 数据同步验证:通过创建测试数据库验证集群同步功能 ProxySQL安装:作为负载均衡层部署,提供MySQL节点管理 该方案实现了应用→Proxy

代码在键上,故事在江湖。 分享云原生、后端架构与运维实践,记录技术成长路上的每一个脚印。 更多原创内容,欢迎关注微信公众号 「键上江湖」,与你一键相逢。 2511

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【MySQL集群二】使用MyCat和ProxySql代理MySQL集群

Mycat是一个开源的数据库中间件,用于提供高可用性、负载均衡和分片能力。ProxySQL是一个高性能的MySQL代理服务器,用于负载均衡、故障转移和查询过滤。在本篇博客中,我们将讲解如何在CentOS 7.9上安装和配置ProxySQL。

Java老兵的后端进阶与AI前沿探索之路。 1354

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

MGR 8.0 + ProxySQL 2.0 部署实录

架构概述 192.168.222.76(8Core16G):MGR node1 192.168.222.77(8Core16G):MGR node2 192.168.222.78(8Core16G):MGR node3 192.168.222.62:MySQL Router、Keepalived、MySQL Shell、MySQL client 192.168.222.78:MySQL Router、Keepalived、MySQL Shell、MySQL client (机器不够,78复用)

leonpenn的博客 *你本如虎,正当添翼* 2919

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

MySQL项目之基于ProxySQL+keepalived的MGR高可用集群

本项目旨在搭建一个高可用性集群,基于ProxySQL代理转发、读写分离和keepalived双VIP保证代理可用性,并采用单主组复制技术确保数据强一致性。另外,本项目使用ansible实现快速部署,利用prometheus+grafana实现高可读性监控界面,同时通过延迟备份服务器进行灾备。最后,sysbench测试机将通过配置的dns服务器提供的域名解析实现对双VIP轮询的oltp混合读写和只写测试评估。

fruitless的博客 5370

MySQL-ProxySQL基于MGR的读写分离

proxysql基于mgr实现读写分离

MZZHAO23的博客 1607

MySQL高可用之ProxySQL + MGR 实现读写分离实战

MGR(MySQL Group Replication)是MySQL 5.7.17版本诞生的,是MySQL自带的一个插件,可以灵活部署。保证数据一致性又可以自动切换,具备故障检测功能、支持多节点写入。集群是多个MySQL Server节点共同组成的分布式集群,每个Server都有完整的副本,它是基于ROW格式的二进制日志文件和GTID特性。在单主模式下, 组复制具有自动选主功能,每次只有一个server成员可以作为主节点。单主模式 group 内只有一台节点可写可读,其他节点只可以读。

weixin_40864794的博客 77

ProxySQL+MGR单主

文章目录ProxySQL+MGR单主MGR单主模式搭建前期规划前期准备安装MySQL启动组复制ProxySQL简介多级配置系统常用的表mysql_serversmysql_replication_hostgroupsmysql_group_replication_hostgroupsmysql_usersmysql_query_rulesProxySQL节点规划前期准备安装ProxySQL启动Pr...

十五十六 3972

GreatSQL Shell如何接管手动搭建(含仲裁节点)MGR集群

*GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。本文源自GreatSQL社区用户的一次提问:Q:一个包含仲裁节点(ARBITRATOR)的GreatSQL MGR集群,一开始是用手动方式构建,后来想用GreatSQL Shell接管,可以吗?A:是可以的,不过也有一定局限性具体的操作如下检查当前MGR集群情况greatsql>select*frompe...

老叶茶馆 211
上一篇: MGR新节点RECOVERING状态的分析与解决:caching_sha2_password验证插件的影响
下一篇: GreatSQL一个关于主从复制的限制描述与规避
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值