springboot2.x+mybatisPlus3.x+dubbo数行のコードは読み書き分離を実現する「コードレベル」
3284 ワード
文書ディレクトリ
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本もし私达の検索の结果が一致しないならば、しかしすべてそれぞれのデータベースのデータで、多データのソース+読み書きの分离がすでに成功したことを说明します
まず、私は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本もし私达の検索の结果が一致しないならば、しかしすべてそれぞれのデータベースのデータで、多データのソース+読み書きの分离がすでに成功したことを说明します