溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數據庫中間件 MyCAT 源碼分析 —— 調試環境搭建

發布時間:2020-07-13 01:01:40 來源:網絡 閱讀:609 作者:芋艿V 欄目:MySQL數據庫

數據庫中間件 MyCAT 源碼分析 —— 調試環境搭建

關注**微信公眾號:【芋艿的后端小屋】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源碼分析文章列表

  2. RocketMQ / MyCAT / Sharding-JDBC 中文注釋源碼 GitHub 地址

  3. 您對于源碼的疑問每條留言將得到認真回復。甚至不知道如何讀源碼也可以請教噢。

  4. 新的源碼解析文章實時收到通知。每周更新一篇左右。


  • 1. 依賴工具

  • 2. 源碼拉取

  • 3. 數據庫配置

  • 4. MyCat 配置

  • 5. MyCAT 啟動

  • 6. MyCAT 測試

  • 7. 交流

1. 依賴工具

  • Maven

  • Git

  • JDK

  • MySQL

  • IntelliJ IDEA

2. 源碼拉取

從官方倉庫 https://github.com/MyCATApache/Mycat-Server Fork 出屬于自己的倉庫。為什么要 Fork ?既然開始閱讀、調試源碼,我們可能會寫一些注釋,有了自己的倉庫,可以進行自由的提交。

使用 IntelliJ IDEA 從 Fork 出來的倉庫拉取代碼。拉取完成后,Maven 會下載依賴包,可能會花費一些時間,耐心等待下。

3. 數據庫配置

我們要搭建的是非分片表的調試環境,需要創建一個數據庫和表:

  1. 創建數據庫:db01 。

  2. 創建數據庫表: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


4. MyCAT 配置

為了避免對實現源碼產生影響,我們選擇對 test 目錄做變更。

1、在 resources 目錄下新建文件夾 backups ,將原 resources 下的所有文件移到 backups 下,這樣我們的環境就干干凈了。
2、在 resources 目錄下新建 schema.xml 文件,配置 MyCAT 的邏輯庫、表、數據節點、數據源。


<?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 設置成你的數據庫 -->		</writeHost>	</dataHost></mycat:schema>


3、在 resources 目錄下新建 server.xml 文件,配置 MyCAT 系統配置。


<?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為不需要密碼登陸 ,默認為0,設置為1則需要指定默認賬戶--><property name="useHandshakeV10">1</property><property name="useSqlStat">0</property>  <!-- 1為開啟實時統計、0為關閉 --><property name="useGlobleTableCheck">0</property>  <!-- 1為開啟全加班一致性檢測、0為關閉 -->		<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>


5. MyCAT 啟動

1、在 java 目錄下新建 debugger 包,和原先已存在的包做區分。
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 ,當看到輸出日志 MyCAT Server startup successfully. see logs in logs/mycat.log 即為啟動成功。

截止目前,test 目錄如下:

數據庫中間件 MyCAT 源碼分析 —— 調試環境搭建

6. MyCAT 測試

調試環境已經搭建完成,我們看看是否正確。

使用 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)


成功。

7. 交流

感謝閱讀、收藏、關注。
知其然知其所以然。學習 MyCAT 會是一段很愉快的旅程。如果有你的交流,相信會更加愉快。歡迎添加微信:wangwenbin-server 進行探討。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女