架構之微服務設計 Nginx Upsync

2022-07-05 08:09:13 字數 792 閱讀 4005

upsync,微博開源基於nginx容器動態流量管理方案 。

nginx 以其超高的效能與穩定性,在業界獲得了廣泛的使用,微博的七層就大量使用了 nginx 。結合 nginx 的健康檢查模組,以及動態 reload 機制,可以近乎無損的服務的公升級上線與擴容。這個時候擴容的頻次比較低,大多數情況下是有計畫的擴容。

upsync,開發了模組 nginx-upsync-module,它的功能是拉取 consul 的後端 server 的列表,並更新 nginx 的路由資訊。此模組不依賴於任何第三方模組。 consul 作為 nginx 的 db,利用 consul 的 kv 服務,每個 nginx work 程序獨立的去拉取各個 upstream 的配置,並更新各自的路由。

流程圖如下:

應用案例:

模組已經應用在微博的各類業務中,下面圖表對比分析使用模組前後的 qps 與耗時變化。

從資料可以得出,reload 操作時造成 nginx 的請求處理能力下降約 10%,nginx 本身的耗時會增長 50%+。若是頻繁的擴容縮容,reload 操作造成的開銷會更加明顯。

點選鏈結加入群【.net大型**架構】433685124qq群

架構設計之 微服務入門

微服務這幾年不可謂不火,很多技術團隊都開始在自己的專案上引入了微服務。一方面這些團隊確實很好的推動了微服務的應用和發展,另一方面也可以看到一些盲目追技術熱點的行為所帶來的危害,比如很多中小團隊對微服務的基礎知識只是做了很淺顯的了解就開始盲目的推動微服務的實施,最後導致了專案的失敗。微服務要想做好是乙...

漫談架構之微服務

目錄 服務的劃分是根據具體的業務來的,並且可以通過完全自動化的部署機制獨立部署。雖然大家都在談論微服務,但是什麼時候應該使用微服務,使用微服務需要注意哪些問題對於很多人來說仍然是乙個模糊的概念。本文將會和大家一起 一下微服務相關的一些問題。在最開始的程式體系中,通常都是單體服務。對於單體服務來說,所...

微服務軟體架構設計

在軟體內部經過綜合各種因素考量 權衡,選擇特定的技術,將系統劃分為不同的部分並使用這些部分相互分工,彼此協作,為使用者提供需要的價值 軟體架構進化考慮的因素 傳統架構 單體架構 概念優勢 挑戰微服務架構 定義使用一套小服務來開發單個應用的方式,每個服務執行在單獨的程序,一般採用輕量級的通訊機制互聯,...