使用Spring Boot的gRPC和REST微服务

时间:2017-04-14 11:51:40

标签: java spring spring-boot grpc

对于一个项目,我想建立一个小型微服务场景,使用Spring Boot和一个API网关向客户端公开REST和GraphQL,一个Eureka服务注册表和三个服务。我希望API网关背后的所有服务都可以通过性能原因来讨论gRPC,但同时仍然会暴露一个额外的REST API。有没有一种干净的方法在同一业务逻辑之上实现这两种类型的接口?网关如何代理客户端'对gRPC的HTTP请求?

1 个答案:

答案 0 :(得分:0)

您可以查看LogNet grpc-spring-boot-starter,以了解如何将gRPC集成到Spring Boot中,其中还包含有关Eureka的部分。

按照Eureka的示例,请确保您不要为每个调用通过gRPC创建新连接。

根据API网关的实现,它还应该与Eureka进行通信,并通过gRPC通过逻辑名称访问下游服务。

在第二部分中,只需在Spring Services中实现您的业务逻辑,然后从与传输相关的抽象(控制器和gRPC服务)将调用转发给它们。

(可选)您可以更进一步,仅在Protobuf中定义所有消息。然后注册Spring的Protobuf Converter for HTTP。