当前位置: 首页 > news >正文

9 垂直分片

1. 服务器准备

使用docker创建两个数据库容器:
在这里插入图片描述
容器名server-user,端口3301
容器名server-order,端口3302

1.1 创建server-user容器

创建容器:

docker run -d \
-p 3301:3306 \
-v /simon/server/user/conf:/etc/mysql/conf.d \
-v /simon/server/user/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--name server-user \
mysql:8.0.29

登录MySQL服务器:

#进入容器:
docker exec -it server-user env LANG=C.UTF-8 /bin/bash
#进入容器内的mysql命令行
mysql -uroot -p
#修改默认密码插件
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

创建数据库:

CREATE DATABASE db_user;
USE db_user;
CREATE TABLE t_user (id BIGINT AUTO_INCREMENT,uname VARCHAR(30),PRIMARY KEY (id)
);

1.2 创建server-order容器

创建容器:

docker run -d \
-p 3302:3306 \
-v /simon/server/order/conf:/etc/mysql/conf.d \
-v /simon/server/order/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--name server-order \
mysql:8.0.29

登录MySQL服务器:

#进入容器:
docker exec -it server-order env LANG=C.UTF-8 /bin/bash
#进入容器内的mysql命令行
mysql -uroot -p
#修改默认密码插件
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

创建数据库:

CREATE DATABASE db_order;
USE db_order;
CREATE TABLE t_order (id BIGINT AUTO_INCREMENT,order_no VARCHAR(30),user_id BIGINT,amount DECIMAL(10,2),PRIMARY KEY(id) 
);

2. 代码实现

2.1、创建实体类

@TableName("t_order")
@Data
public class Order {@TableId(type = IdType.AUTO)private Long id;private String orderNo;private Long userId;private BigDecimal amount;
}

2.2、创建Mapper

@Mapper
public interface OrderMapper extends BaseMapper<Order> {
}

2.3、配置垂直分片

# 应用名称
spring.application.name=sharging-jdbc
# 内存模式
spring.shardingsphere.mode.type=Memory# 配置真实数据源
spring.shardingsphere.datasource.names=server-order,server-user# 配置第 1 个数据源
spring.shardingsphere.datasource.server-user.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.server-user.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.server-user.jdbc-url=jdbc:mysql://192.168.100.1:3301/db_user
spring.shardingsphere.datasource.server-user.username=root
spring.shardingsphere.datasource.server-user.password=123456# 配置第 2 个数据源
spring.shardingsphere.datasource.server-order.type=com.zaxxer.hikari.HikariDataSource
spring.shardingsphere.datasource.server-order.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.server-order.jdbc-url=jdbc:mysql://192.168.100.2:3302/db_order
spring.shardingsphere.datasource.server-order.username=root
spring.shardingsphere.datasource.server-order.password=123456# 标准分片表配置
# 由数据源名 + 表名组成,以小数点分隔。多个表以逗号分隔,支持 inline 表达式。
# 缺省表示使用已知数据源与逻辑表名称生成数据节点,用于广播表(即每个库中都需要一个同样的表用于关联查询,多为字典表)
# 或只分库不分表且所有库的表结构完全一致的情况
spring.shardingsphere.rules.sharding.tables.t_user.actual-data-nodes=server-user.t_user
spring.shardingsphere.rules.sharding.tables.t_order.actual-data-nodes=server-order.t_order# 打印SQl
spring.shardingsphere.props.sql-show=true

3、测试垂直分片

@SpringBootTest
public class ShardingTest {@Autowiredprivate UserMapper userMapper;@Autowiredprivate OrderMapper orderMapper;/*** 垂直分片:插入数据测试*/@Testpublic void testInsertOrderAndUser(){User user = new User();user.setUname("强哥");userMapper.insert(user);Order order = new Order();order.setOrderNo("ATGUIGU001");order.setUserId(user.getId());order.setAmount(new BigDecimal(100));orderMapper.insert(order);}/*** 垂直分片:查询数据测试*/@Testpublic void testSelectFromOrderAndUser(){User user = userMapper.selectById(1L);Order order = orderMapper.selectById(1L);}
}
http://www.dtcms.com/a/504963.html

相关文章:

  • 公司网站如何备案如何制作钓鱼网站
  • 做网站如何分类关于网站建设的外文翻译
  • 网站建设申请书搜了网推广
  • 昆明做网站建设有哪些网站推广优化联系方式
  • 免费注册自己的网站品牌建设卓有成效
  • 易语言和网站做交互中国赣州
  • 网站网页设计制作公司搬家网站建设案例说明
  • STM32Cubemx配置独立看门狗(IWDG)
  • 有做翻译英文网站山西网站开发二次开发
  • 外贸业务怎么利用网站开发客户网站建设模板网站
  • 免费的企业网站建设wordpress做漫画
  • 网站域名查询网网站推广的方法搜索引擎
  • 给外国小孩 做 英语题用的网站怎么做文学动漫网站
  • 网站制作网页设计室内设计软件3d
  • 北京专业制作网站公司哪家好贵南网站建设
  • 浙江人工智能建站系统软件网站页脚写什么
  • 公司网站怎么更新需要怎么做优化关键词哪家好
  • 简单的企业网站外贸网站广告宣传网站
  • 网站建设提供商wordpress next
  • 湖州北京网站建设定制手机网站建设
  • 深圳专门做网站WordPress如何快速排名
  • 网站建设公司 lnmp建造官网
  • 丹阳建站asp 网站图标
  • 无锡网站推广哪家好网站维护工作
  • 网站设计的留言怎么做响应式网站开发pdf
  • lamp网站开发黄金组...opkg 做网站的包叫什么名字
  • Linux中I2C常见问题一
  • 龙华网站建设公司阳江网红酒店无边泳池
  • 乐学LangChain(3):多轮对话和批量对话
  • 网站服务器安全配置360网站seo怎么做