15:03 - Fabric模式
?

Fabric模式是將其頭部的所有東西翻轉(zhuǎn)的模式。
就像之前的另外兩個模式一樣,在前面會有一個代理服務器來管理流入流量,但與Router Mesh模式不同的地方就是你用運行在每個容器里的Nginx Plus來替代了集中式的Router。
這個Nginx Plus實例對于所有的HTTP流量作為反向和正向代理,使用這個系統(tǒng),你可以獲得服務發(fā)現(xiàn)、健壯的負載均衡和最重要的高性能加密網(wǎng)絡。
我們將探討這是如何發(fā)生的,以及我們?nèi)绾翁幚磉@項工作。讓我們先來看看一個服務如何連接和分發(fā)他們的請求結構的正常流程。
16:05 - 正常的流程
?

在這個圖中,你可以看到投資管理器需要跟用戶管理器通訊來獲取信息。投資管理器創(chuàng)建了一個HTTP客戶端,該客戶端針對服務注冊中心發(fā)起了一個DNS請求并獲得返回的一個IP地址,接著初始化了一個到用戶管理器的SSL/TLS連接,該連接需要通過九階段的協(xié)商或者是”握手”過程。一旦數(shù)據(jù)傳輸完畢,虛擬機會關閉連接并進行HTTP客戶端的垃圾回收。
整個過程就是這樣。這是相當簡單和易于理解的。當你把它分解成這些步驟時,您可以看到該模式是如何真正完成請求和響應過程的。
在Fabric模式中,我們已經(jīng)改變了這一點。
17:08 - Fabric模式的細節(jié)
?

你會注意到的第一件事是Nginx Plus是運行在每一個服務里的,并且應用程序代碼是在本地與Nginx Plus通信的。因為這些是本地連接,你不需要擔心加密問題。它們可以是從Java或者PHP代碼到Nginx Plus實例的HTTP請求,并且都是在容器內(nèi)的本地HTTP請求。
你也注意到Nginx Plus會管理到服務注冊中心的連接,我們有一個解析器,通過異步查詢注冊中心的DNS實例來獲取所有的用戶管理器實例,并且預先建立連接,這樣當Java服務需要從用戶管理器請求一些數(shù)據(jù)的時候,可以使用預先建立的連接。
18:19 - 持久的SSL/TLS連接
?

微服務之間的有狀態(tài)的、持久化的并且可以加密的連接是真正的益處。
記得在第一個圖中服務實例是如何通過一些流程的吧,比如創(chuàng)建HTTP客戶端、協(xié)商SSL/TLS連接、發(fā)起請求并關閉的嗎?在這里,Nginx預先建立了微服務之間的連接,并使用Keepalive特性,保持調(diào)用之間的持續(xù)連接,這樣你就不必為每一個請求處理SSL/TLS協(xié)商了。
本質(zhì)上,我們創(chuàng)建了一個迷你的從服務到服務的VPN連接。在我們最初的測試中,我們發(fā)現(xiàn)連接速度增加了77%。
19:14 - 熔斷器Plus
?

在Fabric模式以及Router Mesh模式中,你也可以從創(chuàng)建和使用熔斷器模式中獲得好處。
本質(zhì)上,您定義了一個在服務內(nèi)部的活躍的健康檢查,并設置緩存,以便在服務不可用的情況下保留數(shù)據(jù),從而獲得完整的熔斷器功能。
所以,現(xiàn)在我可以確定你認為Fabirc模式聽起來很酷,并且想在實際環(huán)境中躍躍欲試。
19:50 - Zokets Demo
我們已經(jīng)和Zokets的合作伙伴一起工作了,他們幫助我們搭建了一個系統(tǒng)可以輕松地可視化、控制并且自動化那些構建基于微服務的Fabric模式應用的流程。
我想介紹Zokets的CTO Sehyo Chang,他將幫助我們在他們的平臺上展示Fabric模式。
23:30 - 結論