我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ShardingSphere-Proxy5搭建使用过程分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ShardingSphere-Proxy5搭建使用过程分析

Apache ShardingSphere 是一款开源分布式数据库生态项目,旨在碎片化的异构数据库上层构建生态,在最大限度的复用数据库原生存算能力的前提下,进一步提供面向全局的扩展和叠加计算能力。其核心采用可插拔架构,对上以数据库协议及 SQL 方式提供诸多增强功能,包括数据分片、访问路由、数据安全等     

 ShardingSphere-Proxy是跨语言的数据库代理服务端,主要用来处理:分表、分库、读写分离 等。      【默认端口 3307 】

   官网地址:https://shardingsphere.apache.org/index_zh.html

Apache ShardingSphere下的一个产品,定位为透明化的数据库代理端,与mycat类似,所有的分片都由其完成。

ShardingSphere-Proxy5下载安装

官网提供三种安装方式,这里主要记录两种

二进制包安装

  • 官网下载二进制包apache-shardingsphere-5.2.0-shardingsphere-proxy-bin.tar.gz
  • 下载MySQL驱动mysql-connector-java-8.0.22.jar(根据所使用的mysql下载对应版本)
  • 将MySQl驱动放至shardingsphere-proxy解压目录中的ext-lib目录
  • 修改配置conf/server.yaml
    server.yaml是与shardingsphere-proxy服务相关的配置,这里主要配置下权限
rules:
 - !AUTHORITY
   users: # 配置连接shardingsphere-proxy的用户
     - root@127.0.0.1:root
     - sharding@:sharding
   provider: # 授权模式
     type: ALL_PERMITTED # 不用授权,获取所有权限
  • 启动shardingsphere-proxy
# windows
# 指定端口号和配置文件目录, 默认端口为3307
bin/start.bat ${proxy_port} ${proxy_conf_directory}

![[Pasted image 20220922095217.png]]
出现以上信息代表部署成功
6. 连接测试
连接方式与mysql差不多,可以用mysql命令行连接,也可以用navicat连接。

Docker 方式安装

# 拉取镜像
docker pull apache/shardingsphere-proxy

# 启动临时容器
docker run -d --name tmp --entrypoint=bash apache/shardingsphere-proxy:5.2.0

# 配置文件拷贝
docker cp tmp:/opt/shardingsphere-proxy/conf /mnt/data/shardingsphere-proxy/
#删除临时容器
docker rm tmp

# 注意镜像的扩张依赖需要放在ext-lib目录,不能直接覆盖lib目录
docker run --name shardingsphere-proxy -d -v /mnt/data/shardingsphere-proxy/conf:/opt/shardingsphere-proxy/conf -v /mnt/data/shardingsphere-proxy/ext-lib:/opt/shardingsphere-proxy/ext-lib -e PORT=3307 -p 33307:3307 apache/shardingsphere-proxy:5.2.0

docker run --name shardingsphere-proxy -d -v /mnt/data/shardingsphere-proxy/conf:/opt/shardingsphere-proxy/conf -e PORT=3307 -p 33307:3307 apache/shardingsphere-proxy:5.2.0

ShardingSphere-Proxy5分库分表

创建数据源

修改config-sharding.yaml文件添加数据源配置

databaseName: sharding_db ##逻辑库。配置多个逻辑库时需要创建其他的配置文件,并且配置文件格式需为config-sharding***.yaml

dataSources: ## 数据源,连接真实物理库,注意物理库必须有相应的库存在,负责proxy无法启动。
ds_0:
url: jdbc:mysql://127.0.0.1:13307/demo_ds_0?serverTimezone=UTC&useSSL=false
username: root
password: sunday
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
minPoolSize: 1
ds_1:
url: jdbc:mysql://127.0.0.1:3306/demo_ds_1?serverTimezone=UTC&useSSL=false
username: root
password: sunday
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
minPoolSize: 1

配置分片规则

继续修改config-sharding.yaml文件添加数据分片规则

databaseName: sharding_db

dataSources: ## 数据源,连接真实物理库,注意物理库必须有相应的库存在,负责proxy无法启动。
ds_0:
url: jdbc:mysql://127.0.0.1:13307/demo_ds_0?serverTimezone=UTC&useSSL=false
username: root
password: sunday
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
minPoolSize: 1
ds_1:
url: jdbc:mysql://127.0.0.1:3306/demo_ds_1?serverTimezone=UTC&useSSL=false
username: root
password: sunday
connectionTimeoutMilliseconds: 30000
idleTimeoutMilliseconds: 60000
maxLifetimeMilliseconds: 1800000
maxPoolSize: 50
minPoolSize: 1
## 分片规则配置
rules:
- !SHARDING
tables:
t_order: # 分片表
actualDataNodes: ds_${0..1}.t_order${0..1}
databaseStrategy: # 分库规则
standard: # 标准类型分片,目前官方有四种分片类型
shardingColumn: user_id
shardingAlgorithmName: alg_mod # 算法名称
tableStrategy: # 分表规则
standard:
shardingColumn: order_no
shardingAlgorithmName: alg_hash_mod # 算法名称,具体使用哪一种算法下面会根据算法名称配置
keyGenerateStrategy: # 主键生成规则
column: id
keyGeneratorName: snowflake
# bindingTables: # 绑定表。对于相同分片算法的表,设置绑定,避免相互关联时产生笛卡尔关联
# broadcastTables: # 广播表

keyGenerators: # 主键生成规则配置
snowflake:
type: SNOWFLAKE

shardingAlgorithms: # 分片算法配置,根据上面的算法名称配置算法的类型和算法接收的参数
alg_mod:
type: MOD
props:
sharding-count: 2
alg_hash_mod:
type: HASH_MOD
props:
sharding-count: 2

配置完成后重启proxy。

连接proxy创建分片表

配置分片表后,并没有生成相应的分片表,需要连接上sharding-proxy,在proxy中执行建表语句,在创建逻辑表时分片表会被proxy自动按照配置的规则进行创建。

CREATE TABLE `t_order` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`order_no` varchar(30) DEFAULT NULL,
`user_id` bigint(20) DEFAULT NULL,
`amount` decimal(10,2) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=779468255126355969 DEFAULT CHARSET=utf8mb4;

插入测试数据

INSERT INTO `sharding_db`.`t_order`(`id`, `order_no`, `user_id`, `amount`) VALUES (779468213359476737, '22', 22, 22.00);
INSERT INTO `sharding_db`.`t_order`(`id`, `order_no`, `user_id`, `amount`) VALUES (779468285585391617, '44', 44, 44.00);
INSERT INTO `sharding_db`.`t_order`(`id`, `order_no`, `user_id`, `amount`) VALUES (779468168534949888, '11', 11, 11.00);
INSERT INTO `sharding_db`.`t_order`(`id`, `order_no`, `user_id`, `amount`) VALUES (779468255126355968, '33', 33, 33.00);

插入后,观察物理库的表数据存储情况。

到此这篇关于ShardingSphere-Proxy5搭建使用过程的文章就介绍到这了,更多相关ShardingSphere-Proxy使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ShardingSphere-Proxy5搭建使用过程分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ShardingSphere-Proxy5搭建使用过程分析

ShardingSphere-Proxy是跨语言的数据库代理服务端,主要用来处理:分表、分库、读写分离等,这篇文章主要介绍了ShardingSphere-Proxy5搭建使用过程,需要的朋友可以参考下
2022-11-13

linux下mongodb集群搭建过程的示例分析

小编给大家分享一下linux下mongodb集群搭建过程的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mongodb的集群结构如上图网上有个mongo3
2023-06-29

Linux 系统下搭建 Gitlab 服务器的过程分析

目录1、安装依赖工具2、安装 Postfix 邮件服务器3、安装防火墙4、添加 gitlab 镜像源并安装 gitlab 服务器5、安装 gitlab6、安装后修改 gitlab 配置文件,指定访问服务器 ip 和自定义端口7、重置 Git
2023-04-13

Linux系统下搭建Gitlab服务器的过程分析

这篇文章主要介绍了Linux系统下搭建Gitlab服务器的过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-05-15

Spring容器的使用过程分析

这篇文章主要介绍Spring容器的使用过程分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、主要流程二、开发步骤2.1 准备Maven项目及环境首先创建一个Maven项目,名称为 spring-study ,以下
2023-06-15

SpringCloud环境搭建过程之Rest使用小结

这篇文章主要介绍了SpringCloud环境搭建之Rest使用,本文通过实例代码图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2022-11-13

使用Docker搭建ApacheKafka环境的详细过程

这篇文章主要介绍了使用Docker搭建ApacheKafka环境,本文使用Docker技术创建单个Kafka节点和Kafka集群环境,并且使用可视化工具连接服务查看代理服务器的配置信息,需要的朋友可以参考下
2022-11-13

redis 分片集群搭建与使用教程

目录前言搭建集群架构图前置准备搭建步骤创建集群Redis散列插槽说明集群伸缩(添加节点)故障转移使用redistemplate访问分片集群前言redis可以说在实际项目开发中使用的非常频繁,在redis常用集群中,我们聊到了redis常用
2022-06-29

java使用xfire搭建webservice服务的过程详解

使用XFire搭建Web服务的过程如下:1. 导入XFire库:将XFire库添加到Java项目的类路径中。可以从XFire官方网站(http://xfire.codehaus.org/)下载最新版本的XFire库。2. 创建服务接口:在J
2023-08-11

如何使用QuickBI搭建酷炫可视化分析

这篇文章给大家介绍如何使用QuickBI搭建酷炫可视化分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。随着各行各业大数据的渗透,BI 类数据分析需求与日俱增,如何让可视化更好的展现数据的价值,是 BI 类产品一直努力
2023-06-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录