springboot2.x+mybatisPlus3.x+dubbo几行代码实现读写分离《代码层面》

文章目录

  • 1. 环境搭建具备条件
    • 1.1 dubbo+springboot2.x+mybatisPlus3.x环境
    • 1.2 MySql读写分离的数据库
    • 1.3 zookeper,dubbo
  • 2. 如何测试读写分离

1. 环境搭建具备条件

1.1 dubbo+springboot2.x+mybatisPlus3.x环境

但是首先你要有一些MybatisPlus3.x的基本概念,有兴趣的童鞋可以去官网参考一下,mybaitsPlus官网

但是官网给你只是一个普通的springboot项目,这里我把它改造成了一个springboot2.x+dubbo的项目,当然这个不会搭建没有关系,博主已经搭建好了一个,你可以玩一下,地址: github

顺便说一下,未来这个项目的走势,未来本项目将会持续更新,未来准备支持springbootAlibaba,里面会用到springboot2.x+shiro+redis集群+分布式锁+RabbitMQ等,具体的项目介绍: 地址

1.2 MySql读写分离的数据库

这里不会也没有关系,我已经有了一个详细的介绍MySQL读写分离的博客,但是是基于docker搭建的,非常详细,读写分离搭建地址
如果实在不想搭建环境,我已经搭好了一个,地址在github项目里面有写,直接拿来用就是,github项目地址

1.3 zookeper,dubbo

首先zookeper要成功启动,dubbo监控也可以启动

2. 如何测试读写分离

首先,我自己定义了三个数据源

master:主从数据库,主
slave_1:主从数据库,从
salve_2:普通数据库,但是里有程序需要的数据库表

我们有两个如下的接口:

    // @DS("slave_2")
    @GetMapping("/user/list2")
    public List<UserCommon> sel2() {
        return userCommonService.selectUserFromDsGroup();
    }

	// @DS("slave_1")
    @GetMapping("/user/list1")
    public List<UserCommon> sel1() {
        return userCommonService.selectUsersFromDs();
    }

其中user/list1查询的是从库slave_1里面的数据,当然里面有很多数据
其中user/list2查询的是从库slave_2里面的数据,里面数据只有一条
如果我们查询的结果不一致,但都是各自数据库的数据,就说明多数据源+读写分离已经成功了

你可能感兴趣的:(SpringBoot,github项目,mybatisPlus)