内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

rabbitmqHash沖突和一致性相關(guān)問(wèn)題舉例分析

這篇文章主要介紹“rabbitmq Hash沖突和一致性相關(guān)問(wèn)題舉例分析”,在日常操作中,相信很多人在rabbitmq Hash沖突和一致性相關(guān)問(wèn)題舉例分析問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”rabbitmq Hash沖突和一致性相關(guān)問(wèn)題舉例分析”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

創(chuàng)新互聯(lián)于2013年開(kāi)始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元宜陽(yáng)做網(wǎng)站,已為上家服務(wù),為宜陽(yáng)各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

問(wèn)題1: hash沖突的問(wèn)題?

1. 背景介紹:

在數(shù)據(jù)量很大的時(shí)候,就會(huì)出現(xiàn)hash之后的數(shù)值,指向相同的位置,也就是所謂的hash沖突。這個(gè)取決于hash算法的好壞,以及數(shù)據(jù)量的大小,hash算法越差,數(shù)據(jù)量越大,hash沖突的概率就會(huì)越大。

2. 然而一旦出現(xiàn)了hash沖突,我們?cè)撛趺崔k呢?

首先,我們應(yīng)該考慮能不能找一個(gè)更高級(jí)的hash算法來(lái)解決,讓hash值盡量均勻,沖突盡量的少。

其次,我們要想辦法來(lái)解決hash沖突的問(wèn)題,目前最常用的解決辦法是"鏈表法",也就是說(shuō),在不同的數(shù)據(jù)hash到同一個(gè)值的時(shí)候,我們要將這些key依次放到hash對(duì)應(yīng)的value中的一個(gè)鏈表中。在hash沖突很小的時(shí)候,鏈表的訪問(wèn)速度是沒(méi)有問(wèn)題的。然而,一旦沖突變得很大的時(shí)候,我們就需要對(duì)鏈表進(jìn)行改造了,讓鏈表變成一個(gè)紅黑樹(shù),進(jìn)一步減少訪問(wèn)沖突的key值的數(shù)據(jù)。

問(wèn)題2: hash的一致性問(wèn)題?

1.背景介紹:

對(duì)于hash來(lái)說(shuō),另外一個(gè)必須要要解決的問(wèn)題,就是hash的一致性問(wèn)題了,它所處于的場(chǎng)景常常發(fā)生在我們對(duì)hash所對(duì)應(yīng)的服務(wù)器進(jìn)行擴(kuò)容或者縮減的時(shí)候,舉個(gè)例子:服務(wù)器不夠用,我們添加新的服務(wù)器的時(shí)候,或者服務(wù)器平白無(wú)辜掛掉了的時(shí)候。在這種情況下,我們又希望hash之后的key盡量少的影響數(shù)據(jù)的hash指向的服務(wù)器,于是便有了hash一致性算法。

2.解決方案:

hash一致性算法大體的意思就是:針對(duì)一個(gè)很大的數(shù)值uint32做hash,從0~2^32-1構(gòu)成一個(gè)環(huán),首先,通過(guò)hash算法將服務(wù)器的IP或者域名計(jì)算一個(gè)數(shù)值,分布在這一個(gè)環(huán)上面;然后,對(duì)于數(shù)據(jù)key采用同樣的hash算法,將value也分布到這個(gè)這個(gè)環(huán)上面,按照順時(shí)針的順序找到下一個(gè)服務(wù)器,將數(shù)據(jù)的放到這個(gè)服務(wù)器上面。

服務(wù)器數(shù)量太少導(dǎo)致的負(fù)載不均衡的情況:

上面的算法在服務(wù)器數(shù)量很大的時(shí)候,是沒(méi)有問(wèn)題的,數(shù)據(jù)會(huì)均勻分布到這些服務(wù)器上面??墒牵绻?wù)器數(shù)量很少的時(shí)候,就會(huì)出現(xiàn)數(shù)據(jù)落到不同服務(wù)器上面的數(shù)據(jù)不均衡的現(xiàn)象。

為了解決這個(gè)問(wèn)題,hash一致性又引入了虛擬服務(wù)器的含義,思路如下:首先將同一個(gè)服務(wù)器計(jì)算多次hash值,這樣以來(lái)這些大量的虛擬服務(wù)器會(huì)落在環(huán)上面,這個(gè)情況下的服務(wù)器分布就會(huì)均勻很多,如此以來(lái)數(shù)據(jù)的hash值就會(huì)被分配到虛擬的服務(wù)器上面,而虛擬服務(wù)器最終會(huì)指向真實(shí)的服務(wù)器。

筆者覺(jué)得,這種操作是利用了添加映射層的方式,類似于將hash值對(duì)應(yīng)一個(gè)適配的數(shù)據(jù)層,在將數(shù)據(jù)層對(duì)應(yīng)真實(shí)的數(shù)據(jù)。

問(wèn)題3: hash中的長(zhǎng)尾效應(yīng),如何處理?

1.背景介紹:

在開(kāi)始之前,筆者來(lái)講下長(zhǎng)尾效應(yīng):對(duì)于一個(gè)消息,在被一個(gè)消費(fèi)者拿走了之后,如果需要處理很長(zhǎng)時(shí)間,才能結(jié)束,那么筆者稱這個(gè)消息的任務(wù)是一個(gè)長(zhǎng)尾任務(wù)。長(zhǎng)尾任務(wù)在通過(guò)hash之后,往往會(huì)導(dǎo)致有一部分服務(wù)器上面的任務(wù)都是短任務(wù),一部分服務(wù)器上的任務(wù)長(zhǎng)尾任務(wù)很多,結(jié)果就是有些服務(wù)器會(huì)很忙。筆者將這種情況描述為長(zhǎng)尾效應(yīng)。

對(duì)于長(zhǎng)尾效應(yīng),筆者覺(jué)得根本原因在于消費(fèi)者處理不同任務(wù)的時(shí)間有快有慢導(dǎo)致,也就是說(shuō)我們只要在hash的時(shí)候能夠識(shí)別出來(lái)那些服務(wù)器處理時(shí)間久就好了,讓那些處理比較慢的服務(wù)器分配少一點(diǎn)的任務(wù)數(shù)量。

2.解決辦法:

基于上面的思路,筆者想到了消息響應(yīng)機(jī)制,也就是說(shuō)hash的時(shí)候,對(duì)服務(wù)器對(duì)應(yīng)的數(shù)據(jù)增加一個(gè)flag,讓它來(lái)記錄分配出去的key值數(shù)據(jù)有沒(méi)有被服務(wù)器處理完畢。服務(wù)器端在收到消息的任務(wù)之后,不立馬回復(fù)ack消息,等到處理完了之后,再回復(fù)ack消息,如此一來(lái),收到ack的hash記錄會(huì)把服務(wù)器的flag設(shè)置成true。如此以來(lái),hash之后的數(shù)據(jù),不會(huì)直接發(fā)給沒(méi)處理完的服務(wù)器。

原理類似rabbitmq里面對(duì)消費(fèi)者處理的ack響應(yīng)處理的思路,不過(guò)如此一來(lái),再進(jìn)行hash的時(shí)候,需要根據(jù)ack的響應(yīng)這個(gè)可能會(huì)導(dǎo)致提供hash服務(wù)的進(jìn)程存在消息堆積的問(wèn)題。

不過(guò)這個(gè)問(wèn)題也是合理的,因?yàn)榫退憧焖俚南G給了消費(fèi)者,在消費(fèi)者很慢的時(shí)候,消息只是堆積在了消費(fèi)者而已。當(dāng)然,我們也可以模擬rabbitmq的方式,增加qos的數(shù)量設(shè)置,讓消費(fèi)者一次性消費(fèi)多個(gè)消息,如此就會(huì)緩解消息堆積在hash的那個(gè)服務(wù)上面了。

到此,關(guān)于“rabbitmq Hash沖突和一致性相關(guān)問(wèn)題舉例分析”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

網(wǎng)站名稱:rabbitmqHash沖突和一致性相關(guān)問(wèn)題舉例分析
網(wǎng)站網(wǎng)址:http://m.rwnh.cn/article6/jejhog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、微信公眾號(hào)、做網(wǎng)站微信小程序、用戶體驗(yàn)、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
翁牛特旗| 长海县| 东光县| 石家庄市| 临邑县| 翁源县| 大丰市| 乡城县| 榆林市| 鹤庆县| 南乐县| 周口市| 普兰县| 仁寿县| 芜湖县| 汶川县| 大石桥市| 武强县| 酒泉市| 盘锦市| 宿迁市| 甘肃省| 陵川县| 玛曲县| 平顺县| 合川市| 菏泽市| 林州市| 新龙县| 阳原县| 汉源县| 岳池县| 湘乡市| 伊春市| 安宁市| 历史| 元氏县| 姚安县| 四川省| 黄山市| 神农架林区|