MySQL 官宣:支持读写分离了!!

打印 上一主题 下一主题

主题 916|帖子 916|积分 2748

我们一直在等待的 MySQL 读/写分离功能 如今终于可以使用了!
在规模上,我们在副本之间分配读取,但这必须在应用步伐中以某种方式进行管理:指向在某个地方写入并在其他地方读取。
在 MySQL 8.2 中,MySQL Router 如今能够识别读取和写入,并将它们路由到主实例(假如是 InnoDB 集群),大概路由到异步复制源以进行写入,将其路由到辅助实例或副本以进行读取。
为了说明这一点,我部署了最简单的架构:MySQL InnoDB ReplicaSet。
MySQL InnoDB ReplicaSet

这只是一个复制源实例和一个(或多个)异步副本:

这是 MySQL Shell 中 ReplicaSet 对象的状态:

启动 MySQL Router 8.2

让我们配置(启动)MySQL Router:

我们还可以在 MySQL Shell ReplicaSet 对象中看到 Router:

使用读/写端口 ( 6450 ) 毗连到 MySQL:

我们可以看到,默认情况下,假如执行读操作,我们将访问到副本,但假如启动事务,我们将到达复制源(主),而无需更改端口并使用相同的毗连。
我们还可以看到使用只读事务时的差异:

我们可以在 MySQL Router 的配置文件中看到生成的读写分离的设置:
  1. [routing:bootstrap_rw_split]
  2. bind_address=0.0.0.0
  3. bind_port=6450
  4. destinations=metadata-cache://myreplica/?role=PRIMARY_AND_SECONDARY
  5. routing_strategy=round-robin
  6. protocol=classic
  7. connection_sharing=1
  8. client_ssl_mode=PREFERRED
  9. server_ssl_mode=PREFERRED
  10. access_mode=auto
复制代码
您还可以使用命令 ROUTER SET access_mode= 在会话中界说要访问的实例类型:

结论

综上所述,MySQL Router 8.2 支持读写分离。这是一项很有价值的功能,可以优化数据库性能和可扩展性,而无需对应用步伐进行任何更改。
通过此配置,您可以将所有读取流量定向到只读实例,并将所有写入流量定向到读写实例。
此功能不但增强了团体用户体验,还简化了数据库管理和部署。
读写实例是主实例或源实例。只读实例是副本(InnoDB Cluster ReplicaSet、ReplicaSet 辅助实例或副本聚集中的辅助实例)。
原文:https://blogs.oracle.com/mysql/post/mysql-82-transparent-readwrite-splitting
译文:https://opensource.actionsky.com/
更多文章推荐:
1.Spring Boot 3.x 教程,太全了!
2.2,000+ 道 Java口试题及答案整理(2024最新版)
3.免费获取 IDEA 激活码的 7 种方式(2024最新版)
觉得不错,别忘了随手点赞+转发哦!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莫张周刘王

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表