对于一些需要长期在后台运行的无界面交互的服务,稳定性和高可用性是其一大诉求。
可以把该应用注册为后台服务,服务启动后自动拉起,配置对应配置项,服务崩溃后会重新拉起
同时可以把应用拆分成两部分,一部分负责业务逻辑,一部分负责系统的稳定性和版本控制。分为父子进程,父进程监听子进程,子进程出现异常退出/死锁时,父进程及时重启子进程,减少人工干预,降低运维成本。
Windows系统中进程之间的通信可以使用:1、文件映射 2、共享内存 3、匿名管道 4、命名管道 5、邮件槽 6、剪贴板 7、动态数据交换 8、对象连接与嵌入 9、动态连接库 10、远程过程调用 11、NetBios函数 12、Sockets 13、WM_COPYDATA消息
如果负责业务的子进程业务逻辑比较复杂,可以借鉴微服务架构,将一个子进程拆分成多个,互相配合,但是降低耦合度,一个进程出问题,减少对全部业务的影响。