服务如何实现热更新?

用Spring Boot项目搭建了一个TCP服务,该服务接受硬件设备的链接和数据

如果在保持设备不掉线的情况下,更新这个服务代码呢?

阅读 2.3k
1 个回答

使用父子进程.

主进程负责接收连接, 在连接和工作进程之间转发数据

子进程(工作进程)负责接收主进程转发的数据, 处理, 返回要发送的数据.

更新时, 主进程不停, 子进程重启.

或者给设备发消息, 让它随后再连接.
更新完成以后, 再接收消息.

另外一个, 可以实现自定义的类加载器,
更新的时候,只把类文件替换掉,然后通知进程重新加载类。
tcp连接还保持原样。

推荐问题