微服务解决方案:HTTP API 调用
您必须拥有ABP商业版或更高级别的许可证,才能创建微服务解决方案。
微服务解决方案模板使用集成服务来实现微服务间的同步通信。这使得微服务能够通过HTTP请求相互通信。您也可以使用静态或动态 C#客户端来调用其他微服务的HTTP API。然而,集成服务是微服务间通信的推荐方式,因为它允许您向外界隐藏端点,并能更轻松地管理您的服务。
集成服务配置
默认情况下,集成服务配置不对外暴露端点。为了启用微服务间的通信,您需要在微服务项目的Module类中进行配置。以下代码展示了如何在Module类中配置集成服务:
public override void ConfigureServices(ServiceConfigurationContext context)
{
ConfigureIntegrationServices();
}
private void ConfigureIntegrationServices()
{
Configure<AbpAspNetCoreMvcOptions>(options =>
{
options.ExposeIntegrationServices = true;
});
}
在暴露集成服务之后,您就可以从相关的微服务项目中调用其他微服务的HTTP API了。为此,您需要为相应的微服务/模块项目使用Http.Client包。接下来,您可以在appsettings.json文件中设置相关微服务的端点URL。以下代码展示了如何在appsettings.json文件中设置相关微服务的端点URL:
"RemoteServices": {
"AbpIdentity": {
"BaseUrl": "http://localhost:44377"
}
}
可以参考一个实际的例子:查看管理微服务,它是通过HTTP与身份微服务进行通信的。
当您启用集成服务时,请确保只有集群内的微服务才能访问这些端点。现有的网关应用程序不会将集成服务端点暴露给外界。
抠丁客


