一、背景
大型系統微服務化後,會被拆解成無數微服務,大量的微服務增加了服務管理的難度,因此出現了服務治理,包括:分布式追蹤、服務發現與負載均衡、執行時指標監控等等。為了達成這個目標,微服務的職責分為兩部分:
根據架構的演進,可以看到服務治理方便演進如下:
可以看到以上演化過程,到了第三代,微服務專注於業務,不需要關心服務治理的相關事情,服務治理完全交由sidecar 來完成,當讓這種模式設計是用於雲上的,每個服務旁邊都會有乙個sidecar。
本章節學習 sidecar 典型產品 envoy,雖然是被設計是在雲上使用的,但是還是可以通過虛擬機器來進行學習。
二、envoy 架構
具體可參考:
其架構圖:
從圖中可以得到如下資訊:
(1) 請求傳送會被 envoy 攔截 (實際上不是 envoy攔截,而是有另外程式更改 iptables ,將 host 上的 進入流量**給了 envoy,交由它處理 );
(2) envoy 中的 listener(監聽的埠,(1) 中的進入流量就是被**到給埠),有多個 filter ,多個 filter 可以處理進入流量,若想自定義增加一種處理流量的方式,可以自定義filter,放到 listene 的 filter chain 中,達到擴充套件的目的;
(3) envoy 使用了 xds 協議,xds 協議指可以有專門的系列 discovery service服務(只要符合 xds api 要求即可),目前有圖中的:
(4) xds 的某個服務沒有提供的話,也可以直接在 envoy的配置檔案中進行配置;
envoy 學習筆記(二)之 安裝
本案例 envoy 是安裝在虛擬機器上,虛擬機器的作業系統為 centos8 1 執行以下命令,通過 yum 進行安裝 yum install yum utils yum config manager add repoyum install getenvoy envoy2 校驗安裝是否成功envoy...
《架構之美》閱讀筆記一
軟體架構的設計受到許多因素的制約,架構是好是壞並沒有統一的標準。這取決於人們對軟體的需求 軟體被構建和執行的環境,以及軟體團隊本身的特點等等因素。評價軟體好壞有很多指標,例如效能 安全 可伸展性等等。一般來說,這些指標是很難全部滿足的,試圖改進其中乙個往往會對其他指標產生負面影響。所以從某種意義上來...
MySQL學習筆記(一)基礎架構
大體來說,mysql可以分為server層和儲存引擎層兩部分。server 層包括聯結器 查詢快取 分析器 優化器 執行器等,涵蓋mysql大多數核心服務功能,以及所有內建函式 如日期 時間 數學和加密函式等 所有跨儲存引擎的功能都在這一層實現,比如儲存過程 觸發器 檢視等等。而儲存引擎層負責資料的...