999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于Nginx反向代理機制的微服務負載均衡方法分析

2020-11-30 01:02:27
無線互聯科技 2020年16期
關鍵詞:進程機制服務

趙 凱

(中國人民大學 信息學院,北京 100872)

0 引言

隨著互聯網應用軟件的發展,具有迭代周期短、靈活性高、擴展容易等特點的微服務架構成為當下最流行的軟件架構方案。微服務架構由面向服務的架構(Service-Oriented Architecture,SOA)演化而來,解決了SOA架構笨重、靈活性差的缺點,幾乎成為當前互聯網企業建設各類Web服務的事實標準。

互聯網應用往往面對海量用戶,后臺的各個微服務模塊需要部署在服務器或容器集群中,根據用戶訪問壓力進行適應性的調整,以上場景對建立一個高效、易用的負載均衡服務提出迫切的需求,本研究將介紹一種基于Nginx反向代理機制的負載均衡方法。

1 微服務架構概述

微服務架構從SOA演化而來[1],借助輕量的Http協議與數據格式,克服了SOA架構笨重、改造成本高的缺點,減少了落地實際業務所面臨的技術成本。微服務架構良好地滿足了現代互聯網應用迭代快、成本低、可伸縮等方面的需求,得到了來自企業和社區的大力支持,相關的概念和技術框架也得到了進一步發展。

微服務架構的核心在于“微”,是相對于將所有代碼打包到一起的單體應用架構而言的。構建微服務的核心是要做到代碼的“單一職責”,具體而言,就是按照業務對后臺服務進行組件化的拆分,一個服務中除了與該服務相關的邏輯不包含其他無關代碼。服務運行在不同的進程中,通過統一資源定位系統(Uniform Resource Locator,URL)進行調用,實現業務的解耦。在服務模塊進行升級維護時,只需更新、重啟指定服務,而不必重啟整個應用,提升了維護效率與業務健壯性。

由于微服務強調“微”,需要拆分眾多服務模塊,有服務治理的需求,否則可能出現在不同的服務中充斥著雜亂的URL調用的局面,埋下更大的業務隱患。

服務治理的3個核心概念是服務網關、服務注冊、負載均衡。服務網關抽象了微服務的公共功能,統一接入用戶請求,并提供授權、路由、限流、監控、路由、日志、協議轉換等功能[2];服務注冊提供一種機制,使得微服務能將自身的URL、名稱共享到一個公享庫中;負載均衡負責將用戶請求按照一定策略代理到各個活躍的服務實例上,是確保微服務可伸縮、高可用、高效率的關鍵機制。

2 Nginx及其反向代理機制介紹

Nginx是一個高性能的HTTP和反向代理Web服務器,由俄羅斯的伊戈爾·賽索耶夫開發,第一個公開版本0.1.0發布于2004年10月4日。Nginx采用事件驅動的多進程架構、異步網絡輸入輸出(Input-Output,IO)機制以及極少的進程間切換設計,能夠同時支持百萬級別的網絡連接[3]。得益于Nginx采用的多進程架構,Nginx管理進程可以在負責處理網絡請求的工作進程異常退出后重新啟動新的進程,從而提高Web服務器的穩定性。除此之外,主從架構結合IO多路復用的事件機制消除了以Apache和Tomcat為代表的進程模型與線程模型所帶來的進程創建、銷毀以及線程創建、切換和銷毀等較重的操作,極大地提升了網絡IO處理能力。

Nginx提供了upstream模塊,用于提供反向代理服務。在接收到客戶端請求時,Nginx可以不直接產生響應,而是在緩存客戶端請求的基礎上從upstream模塊所配置的后端服務中挑選一個發送客戶端請求,后端服務的響應直接回復給Nginx,Nginx在接收的同時也將響應數據發送到緩存的客戶端連接上。upstream模塊是借助Nginx實現負載均衡的核心,在選擇后端服務時,upstream模塊支持5類算法,分別是輪詢及加權輪詢、網際互聯協議(Internet Protocol,IP)散列算法、URL散列算法、最少連接數法、最短響應時間法。

3 基于Nginx反向代理機制的微服務負載均衡方法

基于Nginx反向代理機制的微服務負載均衡技術主要內容包括:服務注冊、消息隊列、upstream配置動態管理和心跳。

(1)服務注冊,是實現微服務架構的一個重要基礎,負責記錄、更新微服務組件的具體訪問IP、端口、權重和其他必須內容,配合服務網關實現后端服務組件的路由、負載均衡、限流等功能。服務注冊中心需要兩個基本模塊,一個是用作存儲、共享服務組件信息的MySQL數據庫;另一個是負責接收服務組件心跳包,并更新數據庫的心跳監聽模塊。分布在不同設備進程中的服務實例通過心跳機制將自身的IP、端口、URL、負載、資源等情況以心跳包的形式發布到消息隊列中,心跳監聽模塊從消息隊列獲取心跳并根據心跳包中服務ID,IP、端口、負載等信息新增一項紀錄或更新已有服務紀錄的心跳時間、可用狀態、服務負載等信息。

(2)消息隊列,是一個共享的數據通道,用于傳遞服務組件的心跳包、服務組件變化通知,實現各個功能模塊的相互協作,降低模塊耦合性。消息隊列使用Kafka提供,Kafka通過發布/訂閱模式可以提供可靠、快速、分布式的消息隊列服務,最新的Kafka提供了流處理模塊,使用Kafka提供的Stream API可以不引入額外的流計算框架的情況下實現對消息的實時處理。在這里,需要兩個消息隊列(Kafka中使用topic概念):topic_heartbeat作為心跳包傳輸的隊列,topic_upstream_conf作為upstream配置項傳輸的隊列。

(3)upstream配置動態管理,主要是根據注冊中心服務組件的狀態信息,自動剔除失效服務節點、增加新注冊服務節點和更新各服務實例的權重,并將更新后的配置重載進入Nginx進程,自動化地依據服務注冊信息及時調節整體服務組件負載均衡配置。在這里,需要兩個基本功能模塊:一個負責定時輪詢注冊中心數據庫,根據各服務組件的最后心跳時間來篩選出活躍的服務組件記錄,對超時未進行心跳上報的服務記錄做標注。在確認有服務注冊記錄發生更改后,根據最新注冊信息生成upstream配置文件,并將配置文件內容發送到topic_upstream_conf消息隊列中。另一個是與Nginx服務器部署在同節點的topic_upstream_conf隊列消息處理程序,在收到最新的配置內容后,覆蓋本機提前使用Nginx自帶的include命令包含在主配置文件nginx.conf中的upstream配置文件upstream.conf,并調用nginx -s reload命名,讓最新的配置生效。

(4)心跳,是一種探測服務組件存活狀態的機制。要求服務組件按照心跳包的數據格式每10 s發送一次心跳數據到topic_upstream_conf實現,最后一次心跳時間至今超過30 s的認定為失效服務。心跳至少需要提供發送時間、服務ID、服務URL、部署IP、端口,負載情況與資源情況等內容可以根據需要進行增補,可以配合upstream的負載均衡算法實現更細致的負載均衡控制。

上述各項技術都是非常成熟、性能穩定、被廣泛應用在互聯網一線業務場景中的技術或解決方案,具有技術復雜性低、改造成本低、與編程語言和平臺無關的優點,既適合基于Docker的容器化服務集群,又適合基于內核虛擬機(Kernel Virtual Machine,KVM)技術的虛擬化服務集群,適應場景范圍較廣。

4 結語

文章對微服務架構的起源、特點和核心概念進行了說明,對高性能Web服務器Nginx及其反向代理機制進行了介紹,在此基礎上,利用非常成熟的MySQL技術、Kafka技術、心跳機制設計了一個適用于基于Docker的容器化服務集群和基于KVM技術的虛擬化服務集群的負載均衡方案,并對其中關鍵的技術角色和信息進行了較為詳細的說明。該技術具有易用性高、技術改造少、平臺無關的特點,可以作為當前開源社區發布的各類微服務框架的補充,希望能為從事微服務應用研發的讀者提供更多選擇。

猜你喜歡
進程機制服務
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
自制力是一種很好的篩選機制
文苑(2018年21期)2018-11-09 01:23:06
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
破除舊機制要分步推進
中國衛生(2015年9期)2015-11-10 03:11:12
注重機制的相互配合
中國衛生(2014年3期)2014-11-12 13:18:12
打基礎 抓機制 顯成效
中國火炬(2014年4期)2014-07-24 14:22:19
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
主站蜘蛛池模板: 丁香婷婷在线视频| 欧美激情视频二区| 视频一区视频二区中文精品| 久久毛片免费基地| 69视频国产| 亚洲毛片一级带毛片基地| 色综合网址| 亚洲欧美国产五月天综合| 免费jjzz在在线播放国产| 全色黄大色大片免费久久老太| 亚洲系列无码专区偷窥无码| 激情亚洲天堂| 婷婷六月激情综合一区| 国产精品第5页| 国产精品青青| 国产区在线观看视频| 色网站在线视频| 99re精彩视频| 国产永久免费视频m3u8| 亚洲 欧美 日韩综合一区| 99精品免费在线| 99久久无色码中文字幕| 午夜福利网址| 欧美成人精品欧美一级乱黄| 美女扒开下面流白浆在线试听 | 99久久这里只精品麻豆| 另类综合视频| 欧美成在线视频| 最近最新中文字幕在线第一页| 美女一区二区在线观看| 四虎永久免费地址| 中文成人在线| 精品视频在线一区| 欧美在线三级| 国内毛片视频| 女人18毛片久久| 国产又黄又硬又粗| 久久成人免费| 香蕉99国内自产自拍视频| 国产精品熟女亚洲AV麻豆| 国产精品精品视频| 国产欧美日韩91| 国产黄色免费看| 中文成人无码国产亚洲| 亚洲中文字幕日产无码2021| 中国一级毛片免费观看| 精品国产美女福到在线不卡f| 色有码无码视频| 欧美日本激情| 欧美激情综合| 精品国产99久久| 国产玖玖玖精品视频| 波多野结衣国产精品| 99视频在线免费观看| jizz亚洲高清在线观看| 亚洲狠狠婷婷综合久久久久| 91精品人妻一区二区| 2021国产精品自拍| 色婷婷在线播放| 人妻无码中文字幕一区二区三区| 老司机久久99久久精品播放| 99re经典视频在线| 91色爱欧美精品www| 亚洲国内精品自在自线官| 免费看美女自慰的网站| 久久久精品久久久久三级| 亚洲第一网站男人都懂| 91在线视频福利| 久久96热在精品国产高清| 老司机久久精品视频| 色香蕉影院| 亚洲人成在线免费观看| 国产小视频a在线观看| 久久这里只有精品国产99| 农村乱人伦一区二区| 99人妻碰碰碰久久久久禁片| 亚洲欧美国产高清va在线播放| 久久男人视频| 国产自在线播放| 先锋资源久久| 国产成人综合亚洲欧美在| 91尤物国产尤物福利在线|