先簡(jiǎn)單說(shuō)下從傳統(tǒng)的電銷外呼程序模式到服務(wù)化的演進(jìn)。最早開(kāi)發(fā)一個(gè)電銷外呼程序是單體的應(yīng)用呼叫中心系統(tǒng),也就是不管你的電銷外呼程序有多么復(fù)雜,功能有多么龐大,我們只會(huì)開(kāi)發(fā)一個(gè)獨(dú)立應(yīng)用。但慢慢發(fā)現(xiàn)當(dāng)電銷外呼程序開(kāi)發(fā)團(tuán)隊(duì)逐漸變大,電銷外呼程序需求不斷增加和變化時(shí),這種方法不論是在項(xiàng)目管理還是在后期擴(kuò)展和運(yùn)維時(shí)都會(huì)帶來(lái)很多麻煩。比如開(kāi)發(fā)時(shí)不同模塊的開(kāi)發(fā)人員如何協(xié)作,需求變更帶來(lái)的代碼臃腫和晦澀,運(yùn)維時(shí)一個(gè)小修改可能帶來(lái)重啟的巨大風(fēng)險(xiǎn)等等。
后來(lái)架構(gòu)設(shè)計(jì)師們就在考慮業(yè)務(wù)拆分和電銷外呼程序拆分。這就是最初服務(wù)化的原型。最直接的拆分肯定是模塊的拆分。但是拆分后的電銷外呼程序肯定需要相互依賴和調(diào)用,所以就延展出了一些接口技術(shù),如Web Service,Restful。但這又進(jìn)一步帶來(lái)了新的問(wèn)題,由于不同模塊可能部署在不用服務(wù)器上,如果服務(wù)器或網(wǎng)絡(luò)出現(xiàn)問(wèn)題,可能使相互依賴的電銷外呼程序無(wú)法訪問(wèn),最終造成雪崩效應(yīng),服務(wù)徹底癱瘓。
這時(shí)SOA架構(gòu)產(chǎn)生,最早的ESB,后來(lái)的分布式,微服務(wù)都是慢慢衍生出來(lái)的電銷外呼程序架構(gòu)。首先它進(jìn)一步拓展了服務(wù)化的理念將業(yè)務(wù)進(jìn)一步拆分成更小的服務(wù)單元,以避免單服務(wù)出現(xiàn)問(wèn)題可能造成的癱瘓風(fēng)險(xiǎn)。其次由于服務(wù)分拆的較細(xì),如何進(jìn)行服務(wù)治理呼叫中心系統(tǒng),發(fā)現(xiàn)注冊(cè)服務(wù)、解決服務(wù)單點(diǎn)故障便成為分布式架構(gòu)要解決的首要問(wèn)題。緊接著服務(wù)熔斷機(jī)制、服務(wù)配置中心、服務(wù)網(wǎng)關(guān)路由、服務(wù)消息總線以及服務(wù)日志跟蹤等問(wèn)題逐一得到解決。這也使得整個(gè)服務(wù)架構(gòu)更加優(yōu)化和完善,分布式電銷外呼程序已發(fā)展成熟并自成體系。
最后說(shuō)明一下不管是服務(wù)化、SOA、分布式,這些電銷外呼程序架構(gòu)一定不要因?yàn)榱餍卸褂茫绾问褂?,使用哪些和使用程度都要取決于你的需求、受眾、使用場(chǎng)景等一系列因素。再好的技術(shù)也要用到正確的地方才會(huì)發(fā)揮更大的作用。