微服务化二:consul

微服务化第一步,应该选择一个服务管理和注册工具,否则就无从谈起,经过筛选和测试,选择consul作为服务发现和注册工具
consul是一个提供服务发现和注册的工具,为啥选这个,好处后面个人自己体会。

为啥要注册和发现呢,因为微服务化后,各个业务模块和功能模块会被拆分的足够小,提供单一服务,其他地方调用这个服务就得写服务地址,一旦变更和部署多几台机器,所有相关业务都得改,所有得有个管理中心把所有服务管理起来,大家都去那里获取真实服务地址,而且他是和容易做集群,不用担心扩展问题


安装consul

测试机 centos7. ip: 192.168.0.170
我选择的docker安装,既然微服务化了,没有个可隔离易部署的环境那可不行,docker很好的完成了这项工作,让我们每个拆分的业务很容易的进行部署和扩展。docker的安装自行百度,

consul的安装还是折腾了一点时间

docker run -d -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' -p 8500:8500 --name=consul consul agent -server -bootstrap-expect=1 -node=node1 -client=0.0.0.0 -ui

我只有1台linux虚拟机,所以都用的虚拟地址。就没映射其他端口,8500是因为要ui界面。
查看下是否创建容器成功

docker ps

如果看到我们刚才创建的 consul,说明成功,如果没有,运行

docker logs consul

看看错误,然后排查下192.168.0.170

启动完成后,访问主机ip,http://192.168.0.170:8500/ui,可以查看管理界面
查找consul容器ip,因为我是用的一台机器测试,所以,直接用这个ip就可以进行服务注册,多台主机或者虚拟机,请-p的时候把

docker inspect --format '{{ .NetworkSettings.IPAddress }}' consul

这里有个小提示:ifconfig的时候看下docker的虚拟ip是多少,这个地址就是容器调用主机的地址

其他端口加上-p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -p 8600:53/udp

consul api文档地址:https://www.consul.io/api/index.html
ok,到此,我们的服务注册和发现功能已经完成。 你是不是发现还是不清楚它到底怎么用?别急,后面请看后面系列文章

命令备忘

删除服务

//查询服务
curl http://172.17.0.2:8500/v1/agent/services
//获得想删除的service的ID
curl --request PUT http://172.17.0.2:8500/v1/agent/service/deregister/service-user-services

标签: consul 微服务化

发表评论: