C# 领事-服务检测微服务/域体系结构

C# 领事-服务检测微服务/域体系结构,c#,rest,microservices,consul,C#,Rest,Microservices,Consul,我有一个Microservice(MS)/Doamin(D)体系结构,其中每个MS/D服务都有自己的restapi。我一直在考虑使用Concur进行服务检测,但我不知道如何使用它,因为。我已经遵循了文档,但它找不到如何在所有MS/D都有多个rest端点的MS/D体系结构中使用CONSOR 在文档中,感觉您是在注册一个普通的“服务主机”,而不是注册一个像“mydomain.com:8080/api//这样的服务端点,您只是在注册”mydomain.com:8080/i.e运行服务的主机。感觉好像我

我有一个Microservice(MS)/Doamin(D)体系结构,其中每个MS/D服务都有自己的restapi。我一直在考虑使用Concur进行服务检测,但我不知道如何使用它,因为。我已经遵循了文档,但它找不到如何在所有MS/D都有多个rest端点的MS/D体系结构中使用CONSOR

在文档中,感觉您是在注册一个普通的“服务主机”,而不是注册一个像“mydomain.com:8080/api//这样的服务端点,您只是在注册”mydomain.com:8080/i.e运行服务的主机。感觉好像我错过了什么,但我真的不知道如何使用concur注册restapi URL。我使用的是concur.NET(),注册微服务的设置是:

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,
};
var client=GetServiceClient();
var httpCheck=新代理服务检查()
{
DeregisterCriticalServiceAfter=TimeSpan.FromMinutes(1),
间隔=从秒开始的时间间隔(15),
HTTP=$“HTTP://{host}:{microservicePort.ToString()}/healthcheck/”
};
var agentReg=新代理服务注册()
{
Checks=new[]{httpCheck},
地址=,
ID=微服务唯一标识符,
名称=,
端口=微服务端口,
};
如何为1个微服务注册所有rest 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
/api//ms1\u服务1
/api//带有ms1\U服务2
/api//带有m1s_服务3
因此,另一个MS/D服务可以要求领事为ms1_服务3获取rest端点

若我不能做到这一点,那个么服务端点外观的“诀窍”一定是在调用系统中,这感觉是错误的,所以。。。我觉得我错过了一些基本的东西

我也一直在研究使用KV来存储RESTAPI端点,但是因为它的键值,每个键值只能注册1个服务,所以如果我有一种类型的10毫秒,那么当前的“键值”中只能存储1个服务

如果有人能帮我解释如何结合MS/D-rest端点使用Concur的最佳实践,我将非常高兴


谢谢

我建议您看看C#中的库,它易于配置和使用


您似乎也可以注册位于同一台机器上的不同服务,而不会对该库产生任何问题。

您好,谢谢您的回答,但我不知道该框架如何帮助您,因为。。。。由于没有使用它,调用客户机现在无法了解RESTURL的外观。在麦克风文档中的示例中,它看起来像:MakeSomeCall(“/api/orders”,instance.ServiceAddress,我想获取当前实例的hole rest url,而不仅仅是当前服务的主机url,或者您是这样说的:Cluster.RegisterService(新Uri($),提供程序,“orders\u someaction”,“v1”,logger);我可以将url设置为我的操作url吗?