至此就完成了服务注册,取消注册,健康检查等功能的代码编写。

同样的改造一下产品服务,代码差不多一样,就不贴了。

四、运行服务

继续在 docker 中运行服务实例,不习惯 docker 的话用控制台启动也行。
--ConsulSetting:ServicePort 参数就是传入容器的端口信息。

docker build -t orderapi:1.0 -f ./Order.API/Dockerfile .
docker run -d -p 9060:80 --name orderservice orderapi:1.0 --ConsulSetting:ServicePort="9060"
docker run -d -p 9061:80 --name orderservice1 orderapi:1.0 --ConsulSetting:ServicePort="9061"
docker run -d -p 9062:80 --name orderservice2 orderapi:1.0 --ConsulSetting:ServicePort="9062"

docker build -t productapi:1.0 -f ./Product.API/Dockerfile .
docker run -d -p 9050:80 --name productservice productapi:1.0 --ConsulSetting:ServicePort="9050"
docker run -d -p 9051:80 --name productservice1 productapi:1.0 --ConsulSetting:ServicePort="9051"
docker run -d -p 9052:80 --name productservice2 productapi:1.0 --ConsulSetting:ServicePort="9052"

 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此,6个服务器实例都已运行,并且成功注册到 Consul

随便停止2个服务:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到停止的服务已经在 Consul 中被移除。注意,这个是我们停止程序时主动调用 Consul移除的。

//应用程序终止时,取消注册
lifetime.ApplicationStopping.Register(() =>
{
    consulClient.Agent.ServiceDeregister(registration.ID).Wait();
});

 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

当然程序发生异常,健康检查不能正确响应的话,Consul 也会移除,有一点区别。

那么注册,发现,健康检查功能都完成了,下一步就该考虑客户端如何拿到这些服务实例的地址了。


在这里插入图片描述

注:本文转载自blog.csdn.net的Microi风闲的文章"https://blog.csdn.net/mss359681091/article/details/145215270"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接

评论记录:

未查询到任何数据!