9:52 - 負(fù)載均衡
?

第二個問題是關(guān)于負(fù)載均衡的。當(dāng)您擁有多個服務(wù)實例時,您希望能夠輕松地連接到它們,將您的請求在它們中高效地分發(fā),并以最快的方式執(zhí)行,所以不同實例之間的負(fù)載均衡是非常重要的問題。
不幸的是,最簡單形式的負(fù)載均衡是非常低效的。當(dāng)你開始使用不同的更加復(fù)雜的方案做負(fù)載均衡時,它也變得更加復(fù)雜并且不易于管理。理想情況下,您希望您的開發(fā)人員能夠基于他們的應(yīng)用程序的需求決定何種負(fù)載均衡方案。例如,如果你連接到一個有狀態(tài)的應(yīng)用程序,你需要擁有持久化,這樣可以確保你的Session信息會被保留。
10:50 - 安全和快速通訊
?

也許微服務(wù)最令人生畏的領(lǐng)域是性能和安全。
當(dāng)在內(nèi)存中運(yùn)行時,一切都很快?,F(xiàn)在,運(yùn)行在網(wǎng)絡(luò)上就會慢了一個數(shù)量級。
被安全地包含在一個系統(tǒng)中的信息,通常是二進(jìn)制格式的,現(xiàn)在會被用文本格式在網(wǎng)絡(luò)上傳輸?,F(xiàn)在是比較容易在網(wǎng)絡(luò)上布置嗅探器并能夠監(jiān)聽你的應(yīng)用正在被移動的所有數(shù)據(jù)。
如果要在傳輸層加密數(shù)據(jù),那么會在連接速率和CPU使用率方面引入顯著的開銷。SSL/TLS在其全面實施階段需要九個步驟來初始化一個請求。當(dāng)你的系統(tǒng)每天需要處理成千上萬、幾萬、數(shù)十萬或數(shù)百萬的請求時,這就成為性能的一個重要障礙了。
12:13 - 一個解決方案
?

我們已經(jīng)在Nginx開發(fā)的一些解決方案,我們認(rèn)為,會解決所有的這些問題,它賦予你健壯的服務(wù)發(fā)現(xiàn)、非常棒的用戶可配置負(fù)載均衡以及安全和快速加密。
12:29 - 網(wǎng)絡(luò)架構(gòu)
?

讓我們來談?wù)勀憧梢园惭b和配置你的網(wǎng)絡(luò)架構(gòu)的各種方法。
我們提出了三種網(wǎng)絡(luò)模型,它們本身并不相互排斥,但我們認(rèn)為它們屬于多種格式的。這三種模式是Proxy模式、Router Mesh模式和Fabric模式——這是最復(fù)雜的,并在許多方面在其頭部進(jìn)行負(fù)載均衡。
13:02 - Proxy模式
?

Proxy模式完全聚焦于你的微服務(wù)應(yīng)用的入站流量,并且事實上忽略內(nèi)部通訊。
你會獲得Nginx提供的所有的HTTP流量管理方面的福利。你可以有SSL/TLS終止、流量整形和安全,并且借助于最新版本的Nginx Plus和ModSecurity,你可以獲得WAF能力。
你也可以緩存,你可以將Nginx提供給你的單體應(yīng)用的所有東西添加到你的微服務(wù)系統(tǒng)里,并且借助于Nginx Plus,你可以實現(xiàn)服務(wù)發(fā)現(xiàn)。當(dāng)你的API實例上下浮動時,Nginx Plus可以在負(fù)載均衡工具里動態(tài)地添加和減去它們。
13:58 - Router Mesh模式
?

Router Mesh模式類似于Proxy模式,在其中我們有一個前端代理服務(wù)來管理接入流量,但它也在服務(wù)之間添加了集中式的負(fù)載均衡。
每個服務(wù)連接到集中式的Router Mesh,它管理不同服務(wù)之間的連接分發(fā)。Router Mesh模式還允許你在熔斷器模式中搭建,以便可以對你的應(yīng)用添加彈性并允許你采取措施來監(jiān)控和拉回你的失效的服務(wù)實例。
不幸的是,因為該模式增加了一個額外的環(huán)節(jié),如果你不得不進(jìn)行SSL/TLS加密,它事實上加劇了性能問題。這就是引入Fabric模式的原因。