對于一些需要長期(qi)在(zai)后臺運行的無界(jie)面交(jiao)互的服務,穩定性(xing)和高可用性(xing)是其一大訴求。
可以把該(gai)應用注冊為后臺服(fu)務(wu),服(fu)務(wu)啟動后自動拉起(qi)(qi),配(pei)置(zhi)對應配(pei)置(zhi)項,服(fu)務(wu)崩潰后會(hui)重新拉起(qi)(qi)

同(tong)時(shi)可(ke)以(yi)把應用拆分(fen)成(cheng)兩(liang)部分(fen),一部分(fen)負責(ze)業務邏(luo)輯,一部分(fen)負責(ze)系(xi)統的穩定性和版本控制。分(fen)為父(fu)子(zi)進(jin)(jin)程(cheng),父(fu)進(jin)(jin)程(cheng)監(jian)聽子(zi)進(jin)(jin)程(cheng),子(zi)進(jin)(jin)程(cheng)出現異常(chang)退出/死鎖時(shi),父(fu)進(jin)(jin)程(cheng)及時(shi)重啟(qi)子(zi)進(jin)(jin)程(cheng),減少人工干預,降(jiang)低運維成(cheng)本。
Windows系統中進程之間(jian)的通信(xin)可以使用(yong):1、文件映(ying)射 2、共享內存 3、匿(ni)名(ming)管(guan)道 4、命名(ming)管(guan)道 5、郵件槽 6、剪貼板(ban) 7、動(dong)態數(shu)(shu)據(ju)交(jiao)換(huan) 8、對象連接與嵌入(ru) 9、動(dong)態連接庫 10、遠程過程調用(yong) 11、NetBios函數(shu)(shu) 12、Sockets 13、WM_COPYDATA消息
如果(guo)負責業(ye)務的子進程業(ye)務邏輯比較(jiao)復(fu)雜,可以借鑒微服務架構,將一個(ge)子進程拆(chai)分(fen)成多(duo)個(ge),互相配合,但是降低(di)耦合度(du),一個(ge)進程出問題,減少對全部業(ye)務的影(ying)響。