consul

Consul的服务注册
1.下包
在Nuget中搜索Consul,然后选中下图中的选项进行安装(最新版就可以)
2.在program中
10.223.8.23换成自己的主机名
Name是服务名 (随便起)
Port: docker部署的api端口对应(Port是8003 那么docker的api端口也叫这个)
代码:
static void RegisterConsul()
{
try
{
var consulClient = new ConsulClient(p => {
p.Address = new Uri("http://10.223.8.23:8500");//主机ip:8500
});
// 2. 确保健康检查端点可访问
var httpCheck = new AgentServiceCheck()
{
DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(5),
Interval = TimeSpan.FromSeconds(10),
HTTP = "http://10.223.8.23:8003/WeatherForecast", // 确认此端口服务是否运行
Timeout = TimeSpan.FromSeconds(5)
};
// 3. 添加标签方便识别
var registration = new AgentServiceRegistration()
{
Checks = new[] { httpCheck },
ID = $"lnventorylssueread-{Guid.NewGuid()}", // 更易读的ID
Name = "lnventorylssueread", // 必须小写
Address = "10.223.8.23", // 纯IP正确
Port = 8003, // 端口与健康检查一致
Tags = new[] { "dotnet-service" } // 添加标签
};

                // 4. 添加错误处理
                var result = consulClient.Agent.ServiceRegister(registration).Result;
                Console.WriteLine($"服务注册成功! Status: {result.StatusCode}");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Consul注册失败: {ex.Message}");
            }
        }

app下:
RegisterConsul();
3.本地发布 部署到docker上
docker build -t lssueread .
docker run --name lssueread -p 8003:8080 -d lssueread
(这里的8003就是program上的8003)
4.拉取consul镜像
cmd中执行
docker run -d --name consul-8500 ^
--network=kong-net ^
-p 8500:8500 ^
-p 8300:8309 ^
-p 8301:8301 ^
-p 8302:8302 ^
-p 8600:8600/udp ^
hashicorp/consul consul agent -dev -client=0.0.0.0

点击8500就可以看见我们的服务

打上√说明我们的服务能用
5.查看一下我们的kong-database和consul的ip
docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" kong-database
docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" consul-8500
把原来的konga-gateway删掉
cmd中执行
5.Konga
docker run -d --name kong-gateway ^
--network=kong-net ^
-e "KONG_DATABASE=postgres" ^
-e "KONG_DNS_RESOLVER=172.18.0.2:8600" ^ #consul的ip
-e "KONG_PG_HOST=172.18.0.4" ^ #kong-database的ip
-e "KONG_PG_USER=kong" ^
-e "KONG_PG_PASSWORD=kongpass" ^
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" ^
-e "KONG_PROXY_ACCESS_LOG=/dev/stdout" ^
-e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" ^
-e "KONG_PROXY_ERROR_LOG=/dev/stderr" ^
-e "KONG_ADMIN_ERROR_LOG=/dev/stderr" ^
-e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" ^
-p 8000:8000 ^
-p 8443:8443 ^
-p 8001:8001 ^
-p 8444:8444 ^
kong:latest

Routes

171100da68197a8bca85900e8b3d992f

posted @ 2025-08-14 20:34    阅读(14)  评论(0)    收藏  举报