gpt4 book ai didi

c# - 从 Docker 中的另一个微服务调用微服务

转载 作者:太空宇宙 更新时间:2023-11-03 22:53:57 24 4
gpt4 key购买 nike

我在 C# 中创建了几个在 Windows docker 上运行的微服务,我需要从另一个微服务调用微服务,所以我使用这种方式调用:

    [HttpGet("GetOrder/{Object_ID}")]
public Order GetOrder (int id)
{
string Baseurl = "http://189.29.0.100/";
…..

using (var client = new HttpClient())
{
//Passing service base url
client.BaseAddress = new Uri(Baseurl);

client.DefaultRequestHeaders.Clear();
//Define request data format
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

//Sending request to find web api REST service resource GetAllEmployees using HttpClient
borrowerData = await client.GetStringAsync("api/order/" + Id.ToString());

}


}

我在 Composed 文件中使用修复 IP 如下:

 orderservice:
environment:
- ASPNETCORE_ENVIRONMENT=Development
ports:
- "80"
networks:
default:
ipv4_address: 189.29.0.100

问题是当我们在VM中部署这个项目时,如何让它与这些Ips一起工作?

最佳答案

Docker compose 在您的主机上创建一个虚拟网络,服务无法通过这些 IP 从 docker 外部路由。但在虚拟网络内部,所有服务都可以通过它们的名称(http://otherservice/)相互访问。如果你想访问 VM 上所有已部署的微服务,你需要在你的 docker compose 中使用反向代理。例如,将请求分派(dispatch)给其他服务的 nginx 服务。

关于c# - 从 Docker 中的另一个微服务调用微服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46370014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com