一、关于
- ShardingSphere 官网:Apache ShardingSphere
- 官方文档:概览:: ShardingSphere
- 官方下载:Index of /dist/shardingsphere
- 本文使用版本:apache-shardingsphere-5.0.0-shardingsphere-proxy-bin
- 本文使用环境:windows
- 本文兼顾场景:XA 事务
二、准备
需要准备两个已开启主从复制的MySQL 数据库,如果还没有准备的话可以根据下面这个文章进行部署
三、配置
1、MySQL 驱动jar 包文件
下载解压后,需要找寻一个MySQL 驱动jar 包文件,放到lib 文件夹内,我用的是mysql-connector-java-5.1.26-bin.jar
下载:mysql-connector-java-5.1.26-bin.jar
找到Conf文件夹,读写分离配置需要配置以下两个配置文件。
- server.yaml
- config-readwrite-splitting.yaml
2、server.yaml 配置文件
ShardingSphere-Proxy 因为是一个代理端,所以可以把Proxy 看做一个伪装的MySQL 数据库,只不过Proxy 内部根据配置整合里后端各个数据库。
此配置文件主要是用来配置ShardingSphere 的基本设置,也可以理解为数据库的一些配置。
在 server.yaml 配置文件下方追加以下配置:
rules: - !AUTHORITY users: - root@%:MEIQU@uss20211! # 启动该服务的用户密码 # - sharding@:123456 # 启动该服务的用户密码 provider: # type: NATIVE type: ALL_PRIVILEGES_PERMITTED - !TRANSACTION defaultType: XA providerType: Atomikos props: max-connections-size-per-query: 1 # 一次查询请求在每个数据库实例中所能使用的最大连接数。 kernel-executor-size: 16 # 线程池大小 默认值: CPU核数 kernel-acceptor-size: 16 # 用于设置接收客户端请求的工作线程个数,默认为CPU核数*2 proxy-frontend-flush-threshold: 128 # 设置传输数据条数的 IO 刷新阈值 proxy-opentracing-enabled: false #是否开启链路追踪功能,默认为不开启 proxy-hint-enabled: false #是否启用hint算法强制路由 默认false sql-show: ture #是否打印sql 默认falsefalse # show-process-list-enabled: false # Proxy backend query fetch size. A larger value may increase the memory usage of ShardingSphere Proxy. # The default value is -1, which means set the minimum value for different JDBC drivers. proxy-backend-query-fetch-size: -1 check-duplicate-table-enabled: false sql-comment-parse-enabled: false proxy-frontend-executor-size: 0 # Proxy frontend executor size. The default value is 0, which means let Netty decide. # Available options of proxy backend executor suitable: OLAP(default), OLTP. The OLTP option may reduce time cost of writing packets to client, but it may increase the latency of SQL execution # if client connections are more than proxy-frontend-netty-executor-size, especially executing slow SQL. proxy-backend-executor-suitable: OLAP # proxy-frontend-max-connections: 0 # Less than or equal to 0 means no limitation. # sql-federation-enabled: false
部分字段解释(其他信息可以参考官方文档):
users | 里面配置的相当于是对外的用户和密码,可以认为是Sharding-Proxy这个伪装数据库的用户和密码 |
root | 可以想象成MySQL 数据库的root用户 |
sharding | 可以想象成MySQL 数据库的其他用户,可用可不用 |
type | 权限类型,NATIVE 仅限本地,ALL_PRIVILEGES_PERMITTED 所有权限 |
defaultType | 事务类型,XA XA柔性事务 |
3、config-readwrite-splitting.yaml 配置文件
在这个配置文件里配置读写分离策略,再次配置文件下方追加以下配置:
schemaName: test # 逻辑库,相当于独立主机与从机的一个中间库,搭起该服务后就要使用该逻辑库 # 注意修改已经配置好一个逻辑库并启动了,再修改这个逻辑库时就得先暂停该服务再启动。 dataSources: master01: url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&useSSL=false username: root password: 123456 connectionTimeoutMilliseconds: 30000 # 连接超时时间 idleTimeoutMilliseconds: 60000 # 空闲连接回收超时毫秒数 maxLifetimeMilliseconds: 1800000 # 连接最大存活时间毫秒数 maxPoolSize: 500 # 最大连接数 minPoolSize: 10 # 最小连接数 slave01: url: jdbc:mysql://localhost:3308/test?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&useSSL=false username: root password: 123456 connectionTimeoutMilliseconds: 30000 idleTimeoutMilliseconds: 60000 maxLifetimeMilliseconds: 1800000 maxPoolSize: 500 minPoolSize: 10 rules: - !READWRITE_SPLITTING dataSources: pr_ds: writeDataSourceName: master01 # 只用来操作写的库,这里配置主从复制的主库 readDataSourceNames: - slave01 # 只用操作度的库,这里配置主从复制的从库
4、启动
在bin 文件夹启动命令行窗口,并执行 start.bat,进行运行,待命令行窗口显示 ShardingSphere-Proxy start success,启动成功。
Sharding-Proxy 启动后默认端口为3307,如果需要修改,直接修改start.bat 文件里的3307即可。
启动后可以当做MySQL 进行原生连接,或使用Navicat 进行连接。
翻译
搜索
复制
<iframe height="240" width="320"></iframe> 标签:false,配置文件,ShardingSphere5.0,proxy,Proxy,MySql,MySQL,size From: https://www.cnblogs.com/xxhxs-21/p/17235768.html