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

相关文章
相关标签/搜索