在上文《如何开发微服务应用》中,已经介绍了如何开发一个微服务应用以及微服务模块之间的互相调用。本文介绍如何将微服务发布为 HTTP 接口供前端调用。
技术实现方案
在盘古开发框架下实现将微服务发布为 HTTP 接口有两种方式。一种是基于 pangu-web 模块的接口调用模式;一种是基于 ShenYu 网关的泛化调用模式。
pangu-web 模块的接口调用模式
- 实现原理
基于 Spring MVC,依赖 Servlet 容器。 - Dubbo集成
依赖接口 JAR ,接口调用 Dubbo 服务。 - 性能 & 复杂度
性能高,开发简单,部署运维简单。 - 其它特性
支持跨域配置、流量控制、鉴权、熔断、白名单等(配置简单且与盘古开发框架浑然一体)。
ShenYu 网关的泛化调用模式
- 实现原理
基于 Webflex,依赖 Netty框架。 - Dubbo集成
不依赖接口 JAR,泛化调用 Dubbo 服务。 - 性能 & 复杂度
网关自身性能较高(Webflex非阻塞模型),但泛化