Fizz的設(shè)計(jì)基礎(chǔ)
Fizz以微服務(wù)框架作為設(shè)計(jì)基礎(chǔ)拜姿,支持集群化架構(gòu)末融,能夠與多種流量網(wǎng)關(guān)服務(wù)器一同使用的状蜗,提升的微服務(wù)架構(gòu)的管控力度嗓奢。另外考慮的很多企業(yè)的特殊情況:有多少種服務(wù)形式對(duì)外提供键袱,有舊有的Stardalone單機(jī)服務(wù)燎窘,可能以webservice的形式對(duì)外提供,或者已經(jīng)升級(jí)了一部分微服務(wù)蹄咖,有的還在以數(shù)據(jù)庫(kù)提供對(duì)外服務(wù)褐健,有的已經(jīng)升級(jí)了微服務(wù),但是有一部分用http接口比藻,有的使用注冊(cè)中心進(jìn)行調(diào)用的铝量,授權(quán)也各式各樣。因?yàn)镕izz本身就是基于這種情況下設(shè)計(jì)银亲。所以在此提供一些方案以供大家參考慢叨。
集群架構(gòu)方案
在上圖中,以Nginx作為外網(wǎng)的接入口务蝠,F(xiàn)izz作為API網(wǎng)關(guān)放置于Nginx之后拍谐。在這里Nginx可以也使用現(xiàn)在OpenResty產(chǎn)品替代,如Kong馏段,或者APISIX轩拨。可能有一些企業(yè)運(yùn)維這一塊會(huì)有使用Kong+Nginx院喜,那么在研發(fā)這一端亡蓉,這里就可以使用Fizz作為微服務(wù)的網(wǎng)關(guān)配合作為應(yīng)用網(wǎng)關(guān)。
單機(jī)架構(gòu)方案
如果是中小企業(yè)喷舀,服務(wù)器資源有限砍濒,那么Fizz可以直接替代Nginx的功能,解決之前多種系統(tǒng)的并行的問(wèn)題硫麻。之后隨著業(yè)務(wù)的壯大爸邢,逐步升級(jí)的加入的微服務(wù)架構(gòu)即可。也可以用來(lái)解決團(tuán)隊(duì)存在多種編程語(yǔ)言的問(wèn)題:如團(tuán)隊(duì)之前有PHP拿愧,有NodeJS杠河,授權(quán)不一致,那么可以通過(guò)Fizz進(jìn)行轉(zhuǎn)發(fā)提供對(duì)外一致的接口請(qǐng)求訪(fǎng)問(wèn)體驗(yàn)。
Web服務(wù)器方案
Fizz是一個(gè)高性能的網(wǎng)關(guān)券敌,也不妨礙Fizz作為Web服務(wù)器的選擇唾戚,作為聚合服務(wù)和少量的Web的服務(wù)編程,使用Javascript或者Groove語(yǔ)言的工程師甚至可以把它當(dāng)做online編程的Web服務(wù)器陪白,聚合各種接口颈走,存儲(chǔ)數(shù)據(jù),調(diào)用緩存咱士,通通不在話(huà)下立由。
介紹
作者:linwaiwai
Fizz Gateway開(kāi)源地址:https://github.com/wehotel/fizz-gateway-community