ShardingSphere-Proxy 主从读写 入门使用

本文档介绍了如何使用ShardingSphere-Proxy实现MySQL的主从读写分离。首先,详细阐述了环境准备,包括MySQL的主从配置。接着,详细讲解了ShardingSphere-Proxy的配置步骤,如下载、放置MySQL-connect.jar和编写配置文件。在运行Sharding-Proxy后,通过MySQL Workbench和Java JDBC成功进行了连接测试,验证了主从读写分离功能的正确性。

ShardingSphere-Proxy 主从读写 入门使用


基于ShardingSphere5.0.0Alpha

环境准备

MySQL搭建

    准备MySQL

配置ShardingSphere-Proxy

    这里使用5.0.0版本的

  • 1.下载ShardingSphere-Proxy

  • 2.下载完成后解压放到自己的目录下,比如我这里是放到:D:/temp/ssp

  • 3.下载MySQL-connect.jar

  • 4.将MySQL-connect.jar,放到ShardingSphere-Proxy根目录的lib下,比如我这里是:D:/temp/ssp/lib/

  • 5.写入配置文件,里面本身就有配置文件,这里需要写入的有两份,如果之前存在的就直接替换:server.xml和config-master_slave.yaml

    server.xml 这份感觉不用改,如果和下面的一样就不用改

######################################################################################################
#
# If you want to configure orchestration, authorization and proxy properties, please refer to this file.
#
######################################################################################################

# orchestration:
#  name: orchestration_ds
#  overwrite: true
#  registry:
#    type: zookeeper
#    serverLists: localhost:2181
#    namespace: orchestration

authentication:
  users:
    root:
      password: root
    sharding:
      password: sharding
      authorizedSchemas: test

props:
  max.connections.size.per.query: 1
  acceptor.size: 16  # The default value is available processors count * 2.
  executor.size: 16  # Infinite by default.
  proxy.frontend.flush.threshold: 128  # The default value is 128.
    # LOCAL: Proxy will run with LOCAL transaction.
    # XA: Proxy will run with XA transaction.
  # BASE: Proxy will run with B.A.S.E transaction.
  proxy.transaction.type: LOCAL
  proxy.opentracing.enabled: false
  query.with.cipher.column: true
  sql.show: false

    config-master_slave.yaml,这个文件的配置关键字一定不要安装官方example的那个来,完全不行,要按照官方文档来,比如JDBCURL需要改成url,大致的文件内容如下:

######################################################################################################
# 
# Here you can configure the rules for the proxy.
# This example is configuration of master-slave rule.
#   
# If you want to use master-slave, please refer to this file; 
# if you want to use sharding, please refer to the config-sharding.yaml.
# 
######################################################################################################

schemaName: test

dataSources:
  master_ds:
    url: jdbc:mysql
ShardingSphere-Proxy 实现读写分离主要有以下几个关键步骤: ### 1. 环境准备 确保已经安装并配置好 ShardingSphere-Proxy,同时有可用的主从数据库环境,主库用于写操作,从库用于读操作。 ### 2. 配置读写分离规则 在 ShardingSphere-Proxy 的 `conf` 目录下的 `config-sharding.yaml`(或者对应的配置文件)中进行读写分离规则的配置。以下是一个示例配置: ```yaml dataSources: master_ds: url: jdbc:mysql://localhost:3306/master_db username: root password: root connectionTimeoutMilliseconds: 30000 idleTimeoutMilliseconds: 60000 maxLifetimeMilliseconds: 1800000 maxPoolSize: 50 minPoolSize: 1 slave_ds_0: url: jdbc:mysql://localhost:3307/slave_db_0 username: root password: root connectionTimeoutMilliseconds: 30000 idleTimeoutMilliseconds: 60000 maxLifetimeMilliseconds: 1800000 maxPoolSize: 50 minPoolSize: 1 rules: - !READWRITE_SPLITTING dataSources: readwrite_ds: staticStrategy: writeDataSourceName: master_ds readDataSourceNames: - slave_ds_0 loadBalanceAlgorithmName: round_robin loadBalancers: round_robin: type: ROUND_ROBIN ``` 在上述配置中: - `dataSources` 部分定义了主库 `master_ds` 和从库 `slave_ds_0` 的连接信息。 - `rules` 部分的 `READWRITE_SPLITTING` 规则定义了读写分离的数据源 `readwrite_ds`,使用静态策略指定写数据源为 `master_ds`,读数据源为 `slave_ds_0`。 - `loadBalancers` 部分定义了负载均衡算法,这里使用的是轮询算法 `ROUND_ROBIN`。 ### 3. 启动 ShardingSphere-Proxy 启动 ShardingSphere-Proxy 服务,它会加载配置文件并根据配置实现读写分离。可以使用以下命令启动: ```sh sh bin/start.sh ``` ### 4. 应用连接 ShardingSphere-Proxy 应用程序连接到 ShardingSphere-Proxy 提供的服务端口,而不是直接连接数据库。应用程序执行的 SQL 语句会根据读写分离规则自动路由到主库或从库。 ### 5. 验证读写分离 可以通过执行一些写操作(如 `INSERT`、`UPDATE`、`DELETE`)和读操作(如 `SELECT`)来验证读写分离是否正常工作。写操作会被路由到主库,读操作会根据负载均衡算法被路由到从库。 ```sql -- 写操作 INSERT INTO your_table (column1, column2) VALUES ('value1', 'value2'); -- 读操作 SELECT * FROM your_table; ``` 通过以上步骤,就可以使用 ShardingSphere-Proxy 实现读写分离。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值