在tomcat服务器内为grpc托管多个netty服务器,应用程序重新部署问题

时间:2018-05-16 12:26:30

标签: java spring tomcat netty grpc

我正在开发一个微服务应用程序并将它们部署在单个tomcat服务器中。所以我没有使用弹簧靴。我只使用春天。

我们假设我们有应用程序调用{​​{1}}和master-data当我在tomcat中部署它们时,我可以通过端口common-service访问它们。 但我希望他们转移到grpc通信端点。然后我必须为每个模块安装grpc libries和netty。现在,我可以在端口80806565中访问其grpc端点。

我使用了spring bean 7575注释,并在不同的端口@PostConstruct中单独运行grpc服务器。现在它工作正常。

但是当我向(6565 and 7575)添加新的更改并在tomcat 中重新部署它而不会断开tomcat 时,它会给我master-data并且当我运行{{1}时在终端我可以看到仍有进程正在调整。

由于 tomcat没有关闭,似乎没有正确关闭grpc服务器。

有人可以给我一个合适的解决方案吗?

1 个答案:

答案 0 :(得分:1)

需要通过调用shutdown()方法关闭gRPC Java服务器。关于将gRPC Java与Tomcat / Spring集成,我没有太多(任何)知识,但gRPC方面没有内置集成,因此您需要确保gRPC服务器正在接收程序化{ {1}}以某种方式发出信号。

grpc-java-contrib repository包含用于处理gRPC Java的其他实用程序,包括Spring。特别是,听起来GrpcServerHost可能有助于在Spring环境中管理服务器的生命周期。