TiDB之mac上搭建及調試技巧

此文目的

因爲本人最近已經成爲TiDB的粉絲,因此就開始各類研究TiDB的源碼,研究源碼這個事情,首先就須要在本身電腦上不斷的調試及修改。TiDB自己的代碼是很是容易編譯和調試的,可是要把PD、TiKV集羣同時在本機上創建起來,仍是有一點難度的。好在pingcap官方提供了docker-compose搭建集羣的方式,能夠快速的在我的電腦上啓動一個TiDB的集羣。可是,我要的不僅是一個集羣,我還但願在個人mac上實時編譯調試TiDB服務,這個TiDB服務可以和docker-compose的集羣裏的PD和TiKV進行實時的通信。我今天仔細分析了一下,最終總結出兩個問題須要解決:git

  • PD和TiKV的端口須要暴露給宿主機;
  • 宿主機上的TiDB服務須要解決docker-compose服務內部域名調用的問題;

解決方案

第一個問題比較容易解決,docker自己就提供瞭解決方案,就是把docker內部的端口映射給宿主機,這樣在宿主機上就能夠直接訪問這個端口。第二個問題,我仍是思考了一會,最後決定使用修改本機host的方式來完成映射。github

  • mac上須要增長的host以下:
127.0.0.1 pd0 127.0.0.1 pd1 127.0.0.1 pd2 127.0.0.1 tikv0 127.0.0.1 tikv1 127.0.0.1 tikv2 

你們一看也就明白了,我就是想把docker集羣內部這樣的api:pd0:2379,在宿主機上轉換成爲:127.0.0.1:2379的方式。docker

  • 拉取docker-compose

因爲須要把docker內部的端口映射到宿主機上,所以我修改了官方的docker-compose.yml文件,你們能夠直接使用我fork並修改的tidb-docker-compose項目。windows

git clone https://github.com/mantuliu/tidb-docker-compose.git 
  • 建立並啓用集羣
cd tidb-docker-compose && docker-compose pull docker-compose up -d 
  • 關閉集羣
docker-compose down 
  • 在mac上啓動TiDB服務

個人mac上是下面相似這樣的命令:api

./bin/tidb-server -P 4001 --status="10081" --path="127.0.0.1:3379,127.0.0.1:4379,127.0.0.1:5379" --config=./conf/tidb.toml 

寫在最後

這種方式呢,感受仍是不太完美,可是確實解決了我當前的困境。提高了我目前研究TiDB源碼的效率,沒必要再依賴於具體的集羣環境,我走到哪裏,均可以隨時調試和研究TiDB的源碼。後面若是我瞭解到更NB的方式,會隨時分享給你們。雖然文章的標題是mac上的解決方案,可是換湯不換藥,在windows平臺上也是同樣的,增長具體host映射便可。ui

相關文章
相關標籤/搜索