我有一个微服务(MS)/ Doamin(D)架构,其中每个MS / D服务都有自己的rest api。我一直在研究使用Consul进行服务检测,但我无法弄清楚如何使用它,因为。我已经按照文档但它无法找到如何在MS / D架构中使用Consul,其中所有MS / D都有多个休息端点...
在文档中,您感觉自己正在注册一个简单的服务主机"您没有注册像" mydomain.com这样的服务端点:8080 / api //您只是注册" mydomain.com:8080 /即运行该服务的主机。感觉我错过了一些东西,但我真的无法弄清楚如何使用Consul注册rest-api urls。我使用Consul.NET(https://github.com/PlayFab/consuldotnet),我的注册微服务的设置是:
var client = GetServiceClient();
var httpCheck = new AgentServiceCheck()
{
DeregisterCriticalServiceAfter = TimeSpan.FromMinutes(1),
Interval = TimeSpan.FromSeconds(15),
HTTP = $"http://{host}:{microservicePort.ToString()}/healthcheck/"
};
var agentReg = new AgentServiceRegistration()
{
Checks = new[] { httpCheck },
Address = <serviceIp>,
ID = microServiceUniqueIdentifier,
Name = <servicename>,
Port = microservicePort,
};
如何为1个微服务注册所有其余的api端点,如:
<microservice1>/api/<entity>/<api-service1> with <servicename> ms1_service1
<microservice1>/api/<entity>/<api-service2> with <servicename> ms1_service2
<microservice1>/api/<entity>/<api-service3> with <servicename> m1s_service3
所以另一个MS / D服务可以要求Consul为我获取ms1_service3的休息端点
如果我不能这样做,那么&#34;知道如何&#34;服务端点看起来如何必须在呼叫系统中感觉错误所以......感觉我在这里错过了一些基本的东西。
我也一直在考虑使用KV存储rest-api-endpoints但是因为它的关键值你只能为每个键值注册1个服务所以如果我有10个MS只有1个kan存储在当前&# 34;键&#34;值。
如果有人能帮助我解释如何将Consul与MS / D-rest端点结合使用的最佳实践,那将非常高兴
谢谢!