我正在开发一个微服务应用程序并将它们部署在单个tomcat服务器中。所以我没有使用弹簧靴。我只使用春天。
我们假设我们有应用程序调用{{1}}和master-data
当我在tomcat中部署它们时,我可以通过端口common-service
访问它们。
但我希望他们转移到grpc通信端点。然后我必须为每个模块安装grpc libries和netty。现在,我可以在端口8080
和6565
中访问其grpc端点。
我使用了spring bean 7575
注释,并在不同的端口@PostConstruct
中单独运行grpc服务器。现在它工作正常。
但是当我向(6565 and 7575)
添加新的更改并在tomcat 中重新部署它而不会断开tomcat 时,它会给我master-data
并且当我运行{{1}时在终端我可以看到仍有进程正在调整。
由于 tomcat没有关闭,似乎没有正确关闭grpc服务器。
有人可以给我一个合适的解决方案吗?
答案 0 :(得分:1)
需要通过调用shutdown()
方法关闭gRPC Java服务器。关于将gRPC Java与Tomcat / Spring集成,我没有太多(任何)知识,但gRPC方面没有内置集成,因此您需要确保gRPC服务器正在接收程序化{ {1}}以某种方式发出信号。
grpc-java-contrib repository包含用于处理gRPC Java的其他实用程序,包括Spring。特别是,听起来GrpcServerHost可能有助于在Spring环境中管理服务器的生命周期。