n1t*_*try 7 java spring spring-boot grpc
对于一个项目,我想建立一个使用Spring Boot的小型微服务场景,其中一个API网关向客户端公开REST和GraphQL,一个Eureka服务注册表和三个服务.我希望API网关背后的所有服务都可以通过性能原因来讨论gRPC,但同时仍然会暴露一个额外的REST API.有没有一种干净的方法在同一业务逻辑之上实现这两种类型的接口?网关如何将客户端的HTTP请求代理到gRPC?
你可以查看LogNet grpc-spring-boot-starter来了解如何将gRPC集成到Spring Boot中,它还有关于Eureka的部分。
根据 Eureka 示例,请确保不要为每个调用通过 gRPC 创建新连接。
根据API网关的实现,它还应该与Eureka通信,并通过gRPC按逻辑名称访问下游服务。
按照第二部分,只需在 Spring 服务中实现业务逻辑,然后从与传输相关的抽象(控制器和 gRPC 服务)转发对它们的调用。
或者,您可以更进一步,仅在 Protobuf 中定义所有消息。然后注册 Spring 的 Protobuf Converter for HTTP。