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環境


    しかし、まずいくつかのMybatisPlusが必要です.x的基本概念,有趣的童鞋可以去官网参考一下,mybaitsPlus官网
    しかし、公式サイトはあなたに普通のspringbootプロジェクトをあげて、ここで私はそれをspringboot 2に改造しました.x+dubboのプロジェクト、もちろんこれは構築しないで関係なくて、ブロガーはすでに1つ構築して、あなたは遊ぶことができて、住所:github
    ちなみに、未来のこのプロジェクトの動きは、未来の本プロジェクトが更新され続け、将来はspringbootAlibabaをサポートする予定で、springboot 2が使用されます.x+shiro+redisクラスタ+分散ロック+RabbitMQなど、具体的な項目紹介:アドレス

    1.2 MySql読み書き分離データベース


    ここはできなくても大丈夫です.私はすでにMySQLの読み書き分離のブログを詳しく紹介しましたが、dockerに基づいて構築されています.非常に詳細です.読み書き分離構築アドレスは本当に環境を構築したくない場合は、私はもう1つを構築しました.アドレスはgithubプロジェクトの中に書いてあります.直接持ってきて使ってください.githubプロジェクトのアドレスです.

    1.3 zookeper,dubbo


    まずzookeperが正常に起動し、dubboモニタリングも起動できます.

    2.読み書き分離のテスト方法


    まず、私は3つのデータソースを定義しました.
    master: , 
    slave_1: , 
    salve_2:

    次の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の中のデータ、中のデータはただ1本もし私达の検索の结果が一致しないならば、しかしすべてそれぞれのデータベースのデータで、多データのソース+読み書きの分离がすでに成功したことを说明します