ShardingSphere Proxy 初步体验

本文档介绍了如何使用ShardingSphere Proxy进行数据分片、读写分离和数据加密的初步体验。通过数据库初始化、配置ShardingSphere Proxy和示例运行,展示了ShardingSphere Proxy的非侵入式特性和操作流程。在数据分片、读写分离和数据加密的示例中,每个功能都需要对应的配置文件和数据库设置。虽然在实际运行中遇到了一些问题,但整体上证实了ShardingSphere Proxy的功能有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

在上篇文章中,体验了ShardingSphere JDBC的数据分片、读写分离、数据加密,本篇文章就来探索下ShardingSphere Proxy相关的功能

示例运行

ShardingSphere Proxy相对来说还是比较陌上的,首先肯定是官方文档了解一波:

数据分片、读写分离、数据加密的说明和配置和ShardingSphere JDBC一样,参考上篇文章即可

ShardingSphere JDBC如果要接入的话,从上篇文章中可以看出,其是需要改变现有业务代码的,是侵入式的

ShardingSphere Proxy感觉更像一个代码,只需要改变数据库的连接配置,是非侵入式的。但也增加了整个系统的复杂度,各有利弊吧

ShardingSphere Proxy启动相关

首先找到启动的地方:shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/Bootstrap.java

上面就是启动类,但还不能进行启动,需要先将server.yaml进行开启:shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/resources/conf/server.yaml

下面的注释全部放开:

其中配置了ShardingSphere连接是用户名和密码,下面的配置文件中就配置了两个:root和sharding

sql-show改为true,看日志利于排查问题(一个示例跑起来问题真不少啊)

rules:
  - !AUTHORITY
    users:
      - root@%:root
      - sharding@:sharding
    provider:
      type: NATIVE

props:
  max-connections-size-per-query: 1
  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
  xa-transaction-manager-type: Atomikos
  proxy-opentracing-enabled: false
  proxy-hint-enabled: false
  sql-show: true
  check-table-metadata-enabled: false
  lock-wait-timeout-milliseconds: 50000 # The maximum time to wait for a lock
  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: fals

相关的配置文件位于:shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/resources/conf

下面有各个示例开启的配置文件,先不进行开启,跟着下面的步骤进行操作即可

使用docker启动一个数据库:

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:latest

注:本地采用单个测试,所以在测试一个特性的时候,其他特性的配置文件是注释掉的

注:连接ShardingSphere Proxy时,数据库名称是Proxy的逻辑名称:schemaName,注意进行相应的修改

数据分片

1.数据库初始化

用下面的语句建立相关的数据库

CREATE SCHEMA IF NOT EXISTS demo_ds_0;
CREATE SCHEMA IF NOT EXISTS demo_ds_1;
2.ShardingSphere Proxy配置

放开配置:shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/resources/conf/config-sharding.yaml

就是简单修改密码,大致配置如下:

schemaName: sharding_db

dataSources:
  ds_0:
    url: jdbc:mysql://127.0.0.1:3306/demo_ds_0?serverTimezone=UTC&useSSL=false
    username: root
    password: root
    connectionTimeoutMilliseconds: 30000
    idleTimeoutMilliseconds: 60000
    maxLifetimeMilliseconds: 1800000
    maxPoolSize: 50
    minPoolSize: 1
  ds_1:
    
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值