您好,登錄后才能下訂單哦!
關(guān)注**微信公眾號:【芋艿的后端小屋】**有福利:
RocketMQ / MyCAT / Sharding-JDBC 所有源碼分析文章列表
RocketMQ / MyCAT / Sharding-JDBC 中文注釋源碼 GitHub 地址
您對于源碼的疑問每條留言都將得到認(rèn)真回復(fù)。甚至不知道如何讀源碼也可以請教噢。
新的源碼解析文章實時收到通知。每周更新一篇左右。
1. 依賴工具
2. 源碼拉取
3. 數(shù)據(jù)庫配置
4. MyCat 配置
5. MyCAT 啟動
6. MyCAT 測試
7. 交流
Maven
Git
JDK
IntelliJ IDEA
從官方倉庫 https://github.com/MyCATApache/Mycat-Server Fork
出屬于自己的倉庫。為什么要 Fork
?既然開始閱讀、調(diào)試源碼,我們可能會寫一些注釋,有了自己的倉庫,可以進(jìn)行自由的提交。
使用 IntelliJ IDEA
從 Fork
出來的倉庫拉取代碼。拉取完成后,Maven
會下載依賴包,可能會花費一些時間,耐心等待下。
我們要搭建的是非分片表的調(diào)試環(huán)境,需要創(chuàng)建一個數(shù)據(jù)庫和表:
創(chuàng)建數(shù)據(jù)庫:db01
。
創(chuàng)建數(shù)據(jù)庫表:travelrecord
。
CREATE TABLE `travelrecord` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`name` varchar(255) CHARACTER SET latin1 DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin |
為了避免對實現(xiàn)源碼產(chǎn)生影響,我們選擇對 test
目錄做變更。
1、在 resources
目錄下新建文件夾 backups
,將原 resources
下的所有文件移到 backups
下,這樣我們的環(huán)境就干干凈了。
2、在 resources
目錄下新建 schema.xml
文件,配置 MyCAT
的邏輯庫、表、數(shù)據(jù)節(jié)點、數(shù)據(jù)源。
<?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="http://io.mycat/"><schema name="dbtest" checkSQLschema="true" sqlMaxLimit="100"><table name="travelrecord" dataNode="dn1" autoIncrement="true" primaryKey="id" /></schema> <dataNode name="dn1" dataHost="localhost1" database="db1" /> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="hostM1" url="127.0.0.1:33061" user="root" password="123456"> <!-- url、user、password 設(shè)置成你的數(shù)據(jù)庫 --> </writeHost> </dataHost></mycat:schema> |
3、在 resources
目錄下新建 server.xml
文件,配置 MyCAT
系統(tǒng)配置。
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mycat:server SYSTEM "server.dtd"><mycat:server xmlns:mycat="http://io.mycat/"> <system><property name="nonePasswordLogin">0</property> <!-- 0為需要密碼登陸、1為不需要密碼登陸 ,默認(rèn)為0,設(shè)置為1則需要指定默認(rèn)賬戶--><property name="useHandshakeV10">1</property><property name="useSqlStat">0</property> <!-- 1為開啟實時統(tǒng)計、0為關(guān)閉 --><property name="useGlobleTableCheck">0</property> <!-- 1為開啟全加班一致性檢測、0為關(guān)閉 --> <property name="sequnceHandlerType">2</property> <property name="processorBufferPoolType">0</property> <property name="handleDistributedTransactions">0</property> <property name="useOffHeapForMerge">1</property><property name="memoryPageSize">64k</property> <property name="spillsFileBufferSize">1k</property> <property name="useStreamOutput">0</property> <property name="systemReserveMemorySize">384m</property> <property name="useZKSwitch">false</property> </system> <user name="root" defaultAccount="true"> <property name="password">123456</property> <property name="schemas">dbtest</property> </user></mycat:server> |
1、在 java
目錄下新建 debugger
包,和原先已存在的包做區(qū)分。
2、在 debbuger
包下新建 MycatStartupTest.java
:
package debugger;import io.mycat.MycatStartup;/*** {@link io.mycat.MycatStartup}測試** Created by yunai on 2017/5/22.*/public class MycatStartupTest {public static void main(String[] args) {MycatStartup.main(args);}} |
3、運行 MycatStartupTest.java
,當(dāng)看到輸出日志 MyCAT Server startup successfully. see logs in logs/mycat.log
即為啟動成功。
截止目前,test
目錄如下:
調(diào)試環(huán)境已經(jīng)搭建完成,我們看看是否正確。
使用 MySQL
客戶端連接 MyCAT
:
HOST :127.0.0.1
PORT :8066
USERNAME :root
PASSWORD :123456
mysql> insert into travelrecord(name) values ('haha');Query OK, 1 rows affected (0.01 sec)mysql> select * from travelrecord;+--------------------+------+| id | name |+--------------------+------+| 866707181398003712 | haha |+--------------------+------+1 rows in set (0.05 sec) |
成功。
感謝閱讀、收藏、關(guān)注。
知其然知其所以然。學(xué)習(xí) MyCAT 會是一段很愉快的旅程。如果有你的交流,相信會更加愉快。歡迎添加微信:wangwenbin-server
進(jìn)行探討。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。