Centrifugo(九)使用 Redis 實(shí)現(xiàn)伸縮

????Centrifugo 服務(wù)器支持多節(jié)點(diǎn)部署甚颂,并支持對(duì)客戶端請(qǐng)求的負(fù)載均衡瓮恭。本文中宇色,我們將啟動(dòng)三個(gè) Centrifugo 服務(wù)節(jié)點(diǎn)來(lái)進(jìn)行演示无畔,這些節(jié)點(diǎn)通過(guò) Redis 互相連接宅粥。為了達(dá)到這個(gè)目的参袱,我們將使用前面章節(jié)中講到的 Redis engine

????首先,我們需要有一個(gè)處在運(yùn)行狀態(tài)的 Redis 服務(wù)器抹蚀。然后剿牺,我們可以一次啟動(dòng)三個(gè) Cetrifugofu 服務(wù)節(jié)點(diǎn):

????打開(kāi)命令行窗口,啟動(dòng)第一個(gè)節(jié)點(diǎn):

 centrifugo --config=config.json --port=8000 --engine=redis --redis_host=127.0.0.1 --redis_port=6379  

????如果 Redis 和 Centrifugo 運(yùn)行在同一臺(tái)機(jī)器环壤,并且使用了默認(rèn)的端口號(hào)晒来,上面命令中的 redis_hostredis_port 選項(xiàng)可以省略。

????然后打開(kāi)一個(gè)新的命令行窗口郑现,啟動(dòng)第二個(gè)節(jié)點(diǎn):

 centrifugo --config=config.json --port=8001 --engine=redis --redis_host=127.0.0.1 --redis_port=6379  

????此命令中湃崩,我們指定了一個(gè)新的端口 8001,以防與節(jié)點(diǎn)一出現(xiàn)端口沖突接箫。如果你的兩個(gè)節(jié)點(diǎn)不在一臺(tái)機(jī)器上攒读,則不存在該問(wèn)題。

????接下來(lái)再次開(kāi)啟一個(gè)新的命令行窗口辛友,啟動(dòng)第三個(gè)節(jié)點(diǎn):

 centrifugo --config=config.json --port=8002 --engine=redis --redis_host=127.0.0.1 --redis_port=6379  

????現(xiàn)在你已經(jīng)擁有了三個(gè) Centrifugo 實(shí)例薄扁,分別運(yùn)行在 80008001废累、8002 端口邓梅,客戶端可以選擇連接任何一個(gè)實(shí)例。同樣邑滨,你也可以發(fā)送 API 請(qǐng)求到任何一個(gè)節(jié)點(diǎn)日缨。這三個(gè)節(jié)點(diǎn)通過(guò) Redis 的 PUB/SUB 機(jī)制實(shí)現(xiàn)消息共享。

????多個(gè)節(jié)點(diǎn)之間的負(fù)載均衡通過(guò) Nginx 實(shí)現(xiàn)掖看。要非常注意的一定是匣距,如果你的客戶端使用了 SockJS 連接到 Centrifugo 節(jié)點(diǎn),那么接下來(lái)的該客戶端的請(qǐng)求只能路由到同一節(jié)點(diǎn)乙各,因?yàn)樵摴?jié)點(diǎn)保存了客戶端的會(huì)話信息墨礁。而使用 websocket 則不存在該問(wèn)題。

Redis 分片

????從 V1.6.0 開(kāi)始 Centrifugo 內(nèi)置了對(duì) Redis 分片的支持耳峦。

????該功能防止 Redis 在大型的 Centrifugo 應(yīng)用中成為性能瓶頸。Redis 是單線程服務(wù)器焕毫,它速度非扯卓溃快,但是當(dāng)你的 Redis CPU 使用率接近 100% 的時(shí)候邑飒,分片可以幫助你的應(yīng)用程序?qū)崿F(xiàn)擴(kuò)展循签。

????目前,Centrifugo 支持基于逗號(hào)的簡(jiǎn)單方法來(lái)配置 Redis 分片疙咸。

示例一(基于本機(jī)運(yùn)行的兩個(gè) Redis 分片來(lái)啟動(dòng) Centrifugo):

 centrifugo --config=config.json --engine=redis --redis_port=6379,6380  

示例二(基于運(yùn)行在不同主機(jī)上的 Reids 實(shí)例來(lái)啟動(dòng) Centrifugo):

 centrifugo --config=config.json --engine=redis --redis_host=192.168.1.34,192.168.1.35

????啟用分片后县匠,Centrifugo 將使用一致性哈希算法在已配置的 Redis 實(shí)例上傳播頻道和歷史/狀態(tài)信息。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市乞旦,隨后出現(xiàn)的幾起案子贼穆,更是在濱河造成了極大的恐慌,老刑警劉巖兰粉,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件故痊,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡玖姑,警方通過(guò)查閱死者的電腦和手機(jī)愕秫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)焰络,“玉大人戴甩,你說(shuō)我怎么就攤上這事∩帘耍” “怎么了甜孤?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)备蚓。 經(jīng)常有香客問(wèn)我课蔬,道長(zhǎng),這世上最難降的妖魔是什么郊尝? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任二跋,我火速辦了婚禮,結(jié)果婚禮上流昏,老公的妹妹穿的比我還像新娘扎即。我一直安慰自己,他們只是感情好况凉,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布谚鄙。 她就那樣靜靜地躺著,像睡著了一般刁绒。 火紅的嫁衣襯著肌膚如雪闷营。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,806評(píng)論 1 290
  • 那天知市,我揣著相機(jī)與錄音傻盟,去河邊找鬼。 笑死嫂丙,一個(gè)胖子當(dāng)著我的面吹牛娘赴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播跟啤,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼诽表,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼唉锌!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起竿奏,我...
    開(kāi)封第一講書(shū)人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤袄简,失蹤者是張志新(化名)和其女友劉穎玩讳,沒(méi)想到半個(gè)月后勋锤,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蝙茶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年平痰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了汞舱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡宗雇,死狀恐怖昂芜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情赔蒲,我是刑警寧澤泌神,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站舞虱,受9級(jí)特大地震影響欢际,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜矾兜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一损趋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧椅寺,春花似錦浑槽、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至荆萤,卻和暖如春镊靴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背链韭。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工邑闲, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人梧油。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像州邢,于是被迫代替她去往敵國(guó)和親儡陨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子褪子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • redis集群分為服務(wù)端集群和客戶端分片,redis3.0以上版本實(shí)現(xiàn)了集群機(jī)制骗村,即服務(wù)端集群嫌褪,3.0以下使用客戶...
    hadoop_null閱讀 1,586評(píng)論 0 6
  • 基于內(nèi)存的NoSQL數(shù)據(jù)庫(kù)。提供五種數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)胚股。字符串笼痛、列表、集合琅拌、有序集合缨伊、散列表。Redis 支持很多特性...
    韓絕交閱讀 684評(píng)論 0 1
  • NOSQL類型簡(jiǎn)介鍵值對(duì):會(huì)使用到一個(gè)哈希表进宝,表中有一個(gè)特定的鍵和一個(gè)指針指向特定的數(shù)據(jù)刻坊,如redis,volde...
    MicoCube閱讀 3,961評(píng)論 2 27
  • Redis3.0以后的版本雖然有了集群功能党晋,提供了比之前版本的哨兵模式更高的性能與可用性谭胚,但是集群的水平擴(kuò)展卻比較...
    tjhuey閱讀 978評(píng)論 0 0
  • 王二北原創(chuàng),轉(zhuǎn)載請(qǐng)標(biāo)明出處:來(lái)自王二北 這兩天項(xiàng)目上需要添加一個(gè)限流未玻,基于redis+lua的實(shí)現(xiàn)方案灾而,項(xiàng)目中使用...
    王二北閱讀 7,948評(píng)論 0 7