我有一個微服務(MS)/ Doamin(D)架構,其中每個MS/D服務都有自己的休息api。我一直在尋找使用領事進行服務檢測,但我不知道如何使用它,因爲。我已經按照文檔,但它無法找到如何使用MS/D架構中所有MS/D具有多個休息端點的Consul ...領事 - 服務檢測微服務/域架構
在文檔中,感覺就像您註冊一個普通的「服務主機」您沒有註冊像「mydomain.com:8080/api//」這樣的服務端點,您只需註冊「mydomain.com:8080/即運行該服務的主機。這感覺就像我錯過了一些東西,但我真的不知道如何使用Consul註冊rest-api網址。我使用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,
};
如何註冊所有的REST API端點1個微服務,如:
<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服務可以問領事讓我休息 - ms1_service3
如果我不能做到這一點「知道如何」服務端點的樣子必須在調用系統,感覺不對勁......這感覺就像我錯過了這裏有些基本的東西。
我也一直在考慮使用KV來存儲rest-api-endpoints,但是因爲它的關鍵值你只能爲每個鍵值註冊1個服務,所以如果我有10個MS只有一個只能存儲在當前的「核心價值。
會很高興,如果有人可以幫我解釋瞭如何結合使用領事與MS/d-休息端點
謝謝最佳實踐!
嗨,感謝您的回答,但我沒有看到這個框架可能helo因爲....因爲沒有使用它是upp調用客戶端到現在如何剩下的網址看起來像。在Microphone文檔中的例子中,它看起來像:MakeSomeCall(「/ api/orders」,instance.ServiceAddress,我想爲當前實例獲取洞休息URL,而不是當前服務的主機url- – user3154653
或者你是說當做:Cluster.RegisterService(新Uri($「http:// localhost/api/someaction」),提供者,「orders_someaction」,「v1」,記錄器);我可以設置url到我的動作url? – user3154653