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

分布式系統中的通信機制及負載均衡

2019-08-23 02:44:10宋衛
電子技術與軟件工程 2019年14期

文/宋衛

分布式系統類似于設計模式里的門面模式,對于外部使用人員來說,它是一個整體,而對于分布式系統本身來說,它是由各種計算機、服務器、網絡、存儲組成的一個組合,分布式系統的目的就是為了滿現在大量的計算、存儲的需求,分布式系統使得我們能夠使用更多相對廉價異構的計算機、服務器及空閑的計算機,通過一種協作的方式來為外部系統或使用者提供更快捷更方便的服務,在分布式系統中,數據和計算被分成不同的小任務,通過負載均衡的調度和網絡傳輸的方式在各個計算機節點上進行計算、存儲和傳輸,最終輸出計算結果進行存儲,并為外部提供服務。

通信機制是分布式系統中非常重要的功能,通信機制決定了計算機、服務器之間,能否互相通信組成集群。負載均衡則決定了任務分配是否合理,則決定了分布式系統處理問題的能力,目前業界已經有很多成熟的通信機制及優秀的適應各種環境的負載均衡的算法,可以借鑒使用。

1 分布式通信的幾種方式

分布式系統之所以能夠成為一個系統,作為一個整體為用戶提供服務和存儲,必須依賴以網絡通信,本文以Java語言為基礎,介紹網絡通信間的基本原理及一些常用的通信協議。

1.1 通信的基本原理

通信就是把信息完整有效的從一臺計算機傳輸到另一臺計算機。在計算機通信領域涉及到模電與數電的轉換,以太網技術等,涉及到硬件設備有網卡、網線、路由器、轉換器,基站等等,一般是有發送端把信息轉換成數字信號通過發送設備發送出去,接受端再通過相應的網絡設備進行接受。計算機的網絡模型有 OSI(Open System Interconnection)七層網絡模型和TCP/IP四層模型。

七層網絡模型主要有:

如圖1所示,物理層直接涉及到物理設備如網卡、交換機、路由器等,數據鏈路層則包含設備驅動程序等,在往上層是一些傳輸協議,最終有應用層使用這些協議。

TCP/IP四層模型跟OSI七層模型的對比關系如圖2。

無論是OSI七層模型還是TCP/IP四層模型,應用層只關心和處理特定應用程序的細節,病不關系底層的通信通過機協議。在分布式系統中一般情況下我們會處理好底層傳輸協議及網絡、鏈路層的應用假定網絡層、傳輸層、鏈路層是穩定可用,并性能良好的,在分布式通信中一般大多關注上層的應用協議。

1.2 應用層協議介紹

應用層的協議又有HTTP協議、FTP協議、SOAP協議、XMPP協議、SMTP、POP3協議等等,基于這些協議在分布式的通信服務中又有同步請求、異步請求、發送消息等不同的方式。在現在很多分布式系統微服務的應用場景中,大多使用REST調用,RPC調用方式來實現服務之間同步請求調用,使用JMS來發送消息,如ActiveMQ、RabittMQ等。

1.2.1 HTTP/HTTPS

HTTP(Hyper Text Transfer Protocol)超文本傳輸協議是最常見的一個協議,我們打開一個瀏覽器瀏覽一個網頁使用的就是HTTP協議。在不斷的發展過程中上層的應用使我們賦予了HTTP更豐富的含義,讓HTTP協議更加豐富,語義化更強,有了POST、PUT、GET、DELETE、OPTION、TRACE、HEAD等不同的請求方式,分別表示增加、修改、查找、刪除、選擇|試探、跟蹤、頭部。近些年已經完善正在應用的HTTP 2.0日漸成熟。

通過HTTP協議人們可以上傳下載文件、瀏覽網頁、傳送XML數據、JSON數據。在現在微服務分布式架構中HTTP協議也經常用于內網微服務子系統之間的互相調用。

由于HTTP協議沒用使用任何加密措施,數據多以明文形式展示,容易受到攔截跟攻擊,特別是涉及到敏感數據時人們希望能有更加安全和保密的方法保證數據安全,所以在基于HTTP協議及SSL/TSL加密的基礎上產生了HTTPS協議。可以把HTTPS協議理解為HTTP協議的安全加強版,當然HTTPS協議也涉及到很多加密協議跟算法如秘鑰,私鑰公鑰,加密協議等。

1.2.2 RPC

RPC(Remote Procedure Call)遠程過程調用,RPC最初是有SUN提出的,后經過IETF ONC修訂成為IETF標準協議,使用RPC協議,你不需要了解底層的網絡技術協議,就可以從遠程的計算機上獲取服務。RPC多用于客戶機/服務器的模式下,由于不需要關注傳輸層及應用層,RPC使得開發更加容易,在現在的分布式系統微服務中RPC也得到了廣泛的應用。

RPC也有缺陷,由于傳輸的數據包的大小及網絡抖動,需要重新多傳額外的包,及系統開銷等溫提,Google提供了更高性能的gRPC調用框架,gRPC使用了基于HTTP2.0協議使用了Netty NIO的一些技術及protobuf等數據壓縮技術是的傳輸個數據處理更快捷,更高效。

1.2.3 SOAP

SOAP(Simple Object Access Protocol)簡單對象訪問協議,是一種基于XML的簡單的、輕量級協議。SOAP協議規范由4個主要的部分組成。

第一部分:SOAP封裝(Envelop)。

第二部分:SOAP編碼規則(Encoding Rules)。

第三部分:SOAP RPC表示(RPC Representation)。

第四部分:SOAP綁定(Binding)。

在早期的環境中SOAP協議多用于分布式計算中,提供跨語言的交換信息,它借助于XML定義的良好的數據格式,為不同的語言服務提供接口。由于需要解析XML,SOAP協議相對效率不高,近些年JSON數據的廣泛應用以及越來越受到各種編程語言及系統喜歡的數據格和REST協議的提出,SOAP協議正在被更新REST替換。

1.2.4 JMS

JMS(Java Message Service) Java消息服務,是實現系統解耦,提供系統處理性能的很重要的一個組件。前幾節介紹的無論HTTP、RPC、SOAP都屬于是同步調用,當然可以使用多線程的方式來實現異步。但真正能實現系統解耦、提供異步消息的還是使用JMS服務。

JMS協議規定JMS支持(p2p)點對點的模式、(pub/sub)發布/訂閱模式,

點對點模式就是一個生產者生產消息,一個消費之消費消息,生產者跟消費者是一對一的關系。

發布訂閱模式就是一個生產者生產消息,多個消費者消費消息,生產者跟消費者是一對多的關系。

在分布式系統,使用消息做中間件時有時候會出現消息丟失或多發的情況,這時可以使用緩存或持久化的方式把消息進行存儲方便校驗跟檢查。

2 分布式系統下負載均衡調度算法

在分布式系統中,整個系統的效率,并不是由單臺服務器的所決定的,而是多臺服務器共同協作的結果。分布式系統的能力受到單臺服務器的性能、網絡延遲、任務的分配、資源調度等各種因素的影響,所以在整個系統中網絡負載均衡,任務調度顯得尤其重要。常用的網絡負載均衡的算法有隨機法、輪詢法、加權法、散列法、最少連接法、最低缺失法、最快響應法,通過這些基礎方法的又可以組合使用,形成更高級一些負載均衡方法。

2.1 隨機法

Random隨機法顧名思義,就是采用隨機的算法對集群的中的各個服務器節點進行調度,隨機方法又可以分為完全隨機和加權重隨機。完全隨機認為集群中的機器性能一樣、處理能力平等對帶每一臺機器,完全隨機。當隨機法和加權法結合時,還可為不同的機器設置不同的權重進行隨機,權重大的隨機概率高,權重小的隨機概率低,權重的設置根據機器的性能和負載,人為的進行設置。

2.2 輪詢法

Round Ribbon 輪詢法,可以把集群中的服務器看成是一個環裝的結構,依次對環上節點進行調度,輪詢法和隨機法和類似,不同之處在歲輪詢法采用一種順序調用的方式。在使用輪詢法時也可以為不同的節點進行加權,當輪詢法和加權法結合時,稱為加權輪詢,加權輪詢對權重高的在調度時也會多進行調度。

比如設A的權重為1,B權重2,C權重3,在進行加權調度時順序會是:

A B B C CC,A B B C CC,A……依次輪詢下去。

2.3 加權法

Weight加權法,是負載均衡中最基礎的一個方法,加權法顧名思義就是對集群中不同的機器進行不同的權重評估,權重評估的依據有機器的CPU、內存、磁盤讀寫、網卡帶寬、網絡負載等,還有人為的一些評估。加權法經常跟其他的算法一起使用組成更高級的一些負載均衡算法。

2.4 散列算法

Hash散列算法也叫哈希算法,常用的哈希算法有普通哈希算法、一致性哈希算法,基于IP的哈希算法和基于URL的哈希算法。其中基于IP及URL的哈希算法都屬于普通哈希算法,基本原理是通過計算IP或URL的哈希值和總權重余數得到請求需要路由到的集群節點上。一致性哈希算法是基于虛擬節點的,一旦一個節點掛掉之后,該節點的請求會平攤到其他節點上不會造成某個節點壓力過大出現雪崩的情況,變化比較平滑不會有大的波動。

圖1

圖2

2.5 最少連接算法

Least Connect 最少鏈接算法,是指從集群服務器列表中找到鏈接最少的機器,把請求轉發大這臺機器上。這就需要調度器知道或者記錄集群中那臺機器鏈接數最少,增加了管理的開銷,同時如果多臺機器連接數都是相同的,這時可以結合加權的方法來進行選擇。這時候會成為帶權重的最少鏈接算法,當鏈接相同時,優先選擇權重高的節點。

3 結束語

本文介紹了分布式系統中常用的通信協議,介紹了基本的常用的網絡負載均衡的算法,在一個分布式系統中通信機制直接決定了系統集群的穩定與否。在介紹了通信機制后進一步介紹了分布式系統中常見負載均衡調度算法,在分布式系統中,服務器之間的異構化,處理能力的不同,必須要有一個良好的調度算法來均衡各個服務器之間的負載,合理的進行任務調度及分配,只有這樣才能是一個分布式系統變的穩定健壯提高系統的處理能力及吐出量,最后基于這些基礎知識本文為進一步學習機研究分布式系統打下了良好的基礎。

主站蜘蛛池模板: 特级毛片8级毛片免费观看| 99re免费视频| 91精品日韩人妻无码久久| 99久久亚洲综合精品TS| 小说 亚洲 无码 精品| 无套av在线| 久久久久亚洲精品无码网站| 伊人久久福利中文字幕| 午夜性刺激在线观看免费| 伊人大杳蕉中文无码| 欧美日本二区| 国产精品成人AⅤ在线一二三四| 视频二区亚洲精品| 丰满人妻被猛烈进入无码| 国产无码在线调教| 国产精品美女网站| 国产日韩精品一区在线不卡| h视频在线观看网站| 波多野结衣二区| 九九视频免费在线观看| 亚洲看片网| www.99在线观看| 亚洲—日韩aV在线| 亚洲高清无码久久久| 漂亮人妻被中出中文字幕久久| 婷婷伊人五月| 欧美性色综合网| 欧美激情视频在线观看一区| 国产激爽大片在线播放| 色综合久久久久8天国| 无码国产伊人| 国产福利观看| 亚洲码一区二区三区| 77777亚洲午夜久久多人| 日韩AV无码免费一二三区| 欧美亚洲香蕉| 亚洲无码电影| 97精品伊人久久大香线蕉| 免费视频在线2021入口| 中文字幕永久在线观看| 国产成人亚洲日韩欧美电影| 国产91丝袜在线播放动漫| 日本黄网在线观看| 精品无码日韩国产不卡av| 色妞www精品视频一级下载| 国产91精选在线观看| 又粗又硬又大又爽免费视频播放| 国产精品国产三级国产专业不| 三级视频中文字幕| 又黄又湿又爽的视频| 欧美激情视频一区| 青青草91视频| 亚洲三级成人| 在线精品亚洲国产| 亚洲天堂免费| 欧美特级AAAAAA视频免费观看| 老司机精品一区在线视频| 成人国产精品2021| 亚洲综合第一区| 国产打屁股免费区网站| 青青青国产视频| 99精品视频在线观看免费播放 | 国产真实乱子伦视频播放| 国产激情无码一区二区APP| 欧美在线综合视频| 亚洲男人天堂2020| 欧美日韩亚洲综合在线观看| 青草91视频免费观看| 青草视频在线观看国产| 久久综合九色综合97网| 蜜臀av性久久久久蜜臀aⅴ麻豆| 久久国产精品电影| 亚洲无码电影| 日韩黄色大片免费看| 特级毛片免费视频| 久久久久国产精品熟女影院| 国产99精品视频| 天天干天天色综合网| 日韩中文精品亚洲第三区| 巨熟乳波霸若妻中文观看免费| 国产凹凸视频在线观看| 国产AV无码专区亚洲A∨毛片|