接[上篇]Docker Compose搭建mysql主從複製,本文介紹如何搭建`mycat中間件`,並用`mycat`來作`讀寫分離`.mysql
配置文件以及文檔地址:[mycat-rw](http://git.oschina.net/wangjingj/mycat-rw)git
docker 1.12.3sql
mysql5.7.17docker
deepin 15.3桌面版(這個沒啥影響,由於咱們用docker)數據庫
mycat1.6測試
看上篇文章的詳細介紹ui
暴露`mysql` `mycat`端口號,方便管理spa
本文直接從`docker-compose.yml`開始.net
爲了看起來方便,咱仍是一塊兒都貼出來吧debug
這裏只是說一個成功運行的配置,具體詳細的配置規則請本身參考mycat權威指南.
schema.xml配置
server.xml配置
log4j2.xml配置
這個把日誌級別更改成debug,方便咱們觀察測試.
mycat的Dockerfile
在`docker-compose.yml`文件目錄下運行
若是沒有容器對應的鏡像文件,則`docker-compose`會自動構建鏡像.
使用`docker-compose`手動構建鏡像的命令:`docker-compose build mycat`
命令成功執行,則容器mycat,m1,s1,s2都已經啓動成功.
咱們用`docker ps -a`來看一下.
進入mycat客戶端
執行select語句
由於在上一篇文章中已經作過主從複製的測試,因此這個地方咱們就再也不重複了,咱們直接執行`select`語句,看是否已經實現了讀寫分離.
結果集:
而後咱們打開mycat的日誌mycat.log看一下
注意看圖中標記出來的地方.
好吧,從日誌中咱們看出咱們執行的`select`語句是走從庫s1執行的.
執行insert語句
打開mycat的日誌mycat.log看一下
此次咱們發現,執行`insert`語句走的是主庫m1.
簡單來說,一個使用`mycat中間件`搭建mysql 1主2從 主從複製 讀寫分離的實例就完成了.
要說爲何使用`mycat數據庫中間件`,很簡單啊,就是由於它對開發人員基本沒有影響,不會侵入到代碼中.
支持請點贊,不喜請噴.
天天一點點,成長多一點.