对于一个项目,我想使用 Spring Boot 设置一个小型微服务场景,其中包含一个向客户端公开 REST 和 GraphQL 的 API 网关、一个 Eureka 服务注册表和三个服务。出于性能原因,我希望 API 网关后面的所有服务都能与 gRPC 进行通信,但同时仍公开额外的 REST API。是否有一种干净的方法可以在相同的业务逻辑之上实现两种类型的接口?网关如何将客户端的 HTTP 请求代理到 gRPC 请求?
你可以看看LogNet grpc-spring-boot-starter https://github.com/LogNet/grpc-spring-boot-starter要了解如何将 gRPC 集成到 Spring Boot 中,它还有关于 Eureka 的部分。
根据尤里卡的例子,确保你don't通过 gRPC 为每个调用创建新连接。
根据API网关的实现,它还应该与Eureka通信,并通过gRPC按逻辑名称访问下游服务。
按照第二部分,只需在 Spring 服务中实现业务逻辑,然后从与传输相关的抽象(控制器和 gRPC 服务)转发对它们的调用。
或者,您可以更进一步,仅在 Protobuf 中定义所有消息。然后注册 Spring 的 Protobuf Converter for HTTP。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)