Java 如何在spring引导中管理gRPC服务器通道

Java 如何在spring引导中管理gRPC服务器通道,java,spring-boot,microservices,grpc-java,Java,Spring Boot,Microservices,Grpc Java,我有一个安装程序,它有一个spring启动应用程序和gRPC服务器。gRPC服务器已在NodeJS中编写并部署在单独的服务器中。在我的spring boot应用程序中,有一个端点接受请求对象并将其委托给gRPC服务器 问题: 1) 在这个场景中,我是否需要为每个传入的http请求创建rGPC通道?(听起来效率不高) 2) 还是在spring启动应用程序初始化时创建了一个通道 在2)解决方案中,当gRPC服务器关闭并且需要从eureka服务器获取新URI时,我如何管理 这是一条路。2)是一条路要走

我有一个安装程序,它有一个spring启动应用程序和gRPC服务器。gRPC服务器已在NodeJS中编写并部署在单独的服务器中。在我的spring boot应用程序中,有一个端点接受请求对象并将其委托给gRPC服务器

问题:

1) 在这个场景中,我是否需要为每个传入的http请求创建rGPC通道?(听起来效率不高)

2) 还是在spring启动应用程序初始化时创建了一个通道

在2)解决方案中,当gRPC服务器关闭并且需要从eureka服务器获取新URI时,我如何管理

这是一条路。

2)是一条路要走。要解决服务器宕机的问题,您可以在将传入的http请求转发到grpc服务器之前检查通道状态(
io.grpc.ManagedChannel.getState(boolean)
),如果该请求未准备就绪,则在适当重构后调用您的
initCommunicationChannel()

或者,您可以实现一个名称解析器插件(),它只需调用
eurekaClient.getApplication(“logger app”).getInstances()
,即可返回解析的地址,然后由客户端负载平衡策略()使用