12月12日,OSC源創(chuàng )會(huì )年終盛典在北京國際會(huì )議中心如期舉行,時(shí)速云展臺聚集了很多對容器云平臺感興趣的與會(huì )嘉賓。而且時(shí)速云技術(shù)總監楊樂(lè )在容器和微服務(wù)專(zhuān)場(chǎng)進(jìn)行了topic為《微服務(wù)設計模式與容器云平臺》的演講,楊樂(lè )從四個(gè)方面對容器和微服務(wù)進(jìn)行了闡釋?zhuān)窒砹俗约涸谌萜骱臀⒎⻊?wù)方面積累的知識和經(jīng)驗。來(lái)聽(tīng)此次演講的技術(shù)人員熱情很高,楊樂(lè )也同這些關(guān)注創(chuàng )新和技術(shù)發(fā)展潮流的技術(shù)人員一起討論容器及微服務(wù),現場(chǎng)氣氛十分活躍。

圖為時(shí)速云楊樂(lè )演講現場(chǎng)

圖為大會(huì )現場(chǎng)時(shí)速云展臺
常見(jiàn)的有六種微服務(wù)架構的設計模式:
- 聚合器微服務(wù)設計模式
這是一種最常用也最簡(jiǎn)單的設計模式,聚合器調用多個(gè)服務(wù)實(shí)現應用程序所需的功能。它可以是一個(gè)簡(jiǎn)單的Web頁(yè)面,將檢索到的數據進(jìn)行處理展示。它也可以是一個(gè)更高層次的組合微服務(wù),對檢索到的數據增加業(yè)務(wù)邏輯后進(jìn)一步發(fā)布成一個(gè)新的微服務(wù),這符合DRY原則。另外,每個(gè)服務(wù)都有自己的緩存和數據庫。如果聚合器是一個(gè)組合服務(wù),那么它也有自己的緩存和數據庫。聚合器可以沿X軸和Z軸獨立擴展。
- 代理微服務(wù)設計模式
這是聚合器模式的一個(gè)變種,在這種情況下,客戶(hù)端并不聚合數據,但會(huì )根據業(yè)務(wù)需求的差別調用不同的微服務(wù)。代理可以?xún)H僅委派請求,也可以進(jìn)行數據轉換工作。
- 鏈式微服務(wù)設計模式
這種模式在接收到請求后會(huì )產(chǎn)生一個(gè)經(jīng)過(guò)合并的響應,在這種情況下,服務(wù)A接收到請求后會(huì )與服務(wù)B進(jìn)行通信,類(lèi)似地,服務(wù)B會(huì )同服務(wù)C進(jìn)行通信。所有服務(wù)都使用同步消息傳遞。在整個(gè)鏈式調用完成之前,客戶(hù)端會(huì )一直阻塞。因此,服務(wù)調用鏈不宜過(guò)長(cháng),以免客戶(hù)端長(cháng)時(shí)間等待。
- 分支微服務(wù)設計模式
這種模式是聚合器模式的擴展,允許同時(shí)調用兩個(gè)微服務(wù)鏈。
- 數據共享微服務(wù)設計模式
自治是微服務(wù)的設計原則之一,就是說(shuō)微服務(wù)是全棧式服務(wù)。但在重構現有的“單體應用(monolithicapplication)”時(shí),SQL數據庫反規范化可能會(huì )導致數據重復和不一致。因此,在單體應用到微服務(wù)架構的過(guò)渡階段,可以使用這種設計模式,
在這種情況下,部分微服務(wù)可能會(huì )共享緩存和數據庫存儲。不過(guò),這只有在兩個(gè)服務(wù)之間存在強耦合關(guān)系時(shí)才可以。對于基于微服務(wù)的新建應用程序而言,這是一種反模式。
- 異步消息傳遞微服務(wù)設計模式
雖然REST設計模式非常流行,但它是同步的,會(huì )造成阻塞。因此部分基于微服務(wù)的架構可能會(huì )選擇使用消息隊列代替REST請求/響應。
除了常見(jiàn)的微服務(wù)架構模式外,楊樂(lè )的演講還設計以下4個(gè)方面:
1.Docker的本質(zhì),Docker改變了什么,革了誰(shuí)的命

2.日漸火熱的微服務(wù)到底有哪些用途及其設計模式

3.Kubernetes容器編排系統基本理念和優(yōu)勢,以及與微服務(wù)的關(guān)系


4.時(shí)速云平臺在容器與微服務(wù)的實(shí)踐
