1. 程式人生 > >rabbitmq和redis的叢集方案

rabbitmq和redis的叢集方案

rabbitmq和redis都是常用的中介軟體和快取系統。分別簡單記錄一下他們的分散式叢集方案。以備後用

Rabbitmq: 普通叢集與mirror queue

http://blog.csdn.net/whycold/article/details/19413399

Redis:

1. 最簡單的主從方案:支援master和slave的配置,通過配置檔案進行切換。一般用指令碼進行配置和切換。

2. Jedis&Sentinel實現Redis叢集高可用方案,該方案需要使用Jedis2.2.2及以上版本(強制),Redis2.8及以上版本(可選,Sentinel最早出現在Redis2.4中,Redis2.8中Sentinel更加穩定),Redis叢集是以分片(Sharding)加主從的方式搭建,滿足可擴充套件性的要求;

通過Sentinel監控主從例項,自動進行故障恢復,該方案有個缺陷:因為主從例項地址(IP&PORT)是不同的,當故障發生進行主從切換後,應用程式無法知道新地址,故在Jedis2.2.2中新增了對Sentinel的支援,應用通過redis.clients.jedis.JedisSentinelPool.getResource()取得的Jedis例項會及時更新到新的主例項地址

參考: http://www.tuicool.com/articles/naeEJbv

附錄:Redis使用的重要點

1.rdb/aof Backup!

我們線上的Redis 95%以上是承擔後端儲存功能的,我們不僅用作cache,而更為一種k-v儲存,他完全替代了後端的儲存服務(MySQL),故其資料是非常重要的,如果出現數據汙染和丟失,誤操作等情況,將是難以恢復的。所以備份是非常必要的!為此,我們有共享的hdfs資源作為我們的備份池,希望能隨時可以還原業務所需資料。

2.Small item & Small instance!

由於Redis單執行緒(嚴格意義上不是單執行緒,但認為對request的處理是單執行緒的)的模型,大的資料結構list,sorted set,hash set的批量處理就意為著其他請求的等待,故使用Redis的複雜資料結構一定要控制其單key-struct的大小。

另外,Redis單例項的記憶體容量也應該有嚴格的限制。單例項記憶體容量較大後,直接帶來的問題就是故障恢復或者Rebuild從庫的時候時間較長,而更糟糕的是,Redis rewrite aof和save rdb時,將會帶來非常大且長的系統壓力,並佔用額外記憶體,很可能導致系統記憶體不足等嚴重影響效能的線上故障。我們線上96G/128G記憶體伺服器不建議單例項容量大於20/30G。


相關推薦

rabbitmqredis叢集方案

rabbitmq和redis都是常用的中介軟體和快取系統。分別簡單記錄一下他們的分散式叢集方案。以備後用 Rabbitmq: 普通叢集與mirror queue http://blog.csdn.net/whycold/article/details/19413399

python 消息隊列-rabbitMQ redis介紹使用

div soc blocking eth 子進程 處理 llb spa 內存 1、rabbitMQ 與ptyhon 進程queue 區別。進程queue 主要用戶Python父子進程之間或者統一進程不同子進程。rabbit可以用戶不同語言之前的相互交流,socket可以實現

rabbitmqredis用作訊息佇列的區別

將redis釋出訂閱模式用做訊息佇列和rabbitmq的區別: 可靠性   redis :沒有相應的機制保證訊息的可靠消費,如果釋出者釋出一條訊息,而沒有對應的訂閱者的話,這條訊息將丟失,不會存在記憶體中;rabbitmq:具有訊息消費確認機制,如果釋出一條訊息,還沒有消費者消費該佇

celery brokerbackend對接rabbitmqredis

result.ready() 可能一直返回False 把redis重啟   127.0.0.1:6379> flushall                   

SpringBoot整合RedisRedis叢集

一、SpringBoot整合Redis 步驟:1.新增依賴: <!--redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId

Zookeeper叢集SolrCloud叢集redis叢集.md

一. 叢集與分散式 什麼是叢集 多個節點幹相同的事情 生活小栗子: 賽龍舟中每個划槳的人都是一個節點, 每個節點做相同的事情, 這就是叢集. 什麼是分散式 多個節點協同完成一件事情, 每個節點做不同的事情 生活小栗子: 樂隊中有的人彈吉他, 有的人打鼓,

第一章:Redis+twemproxy+keepalive+ sentinel實現完整的redis叢集方案實驗

Redis叢集 1.  背景描述 Redis+twemproxy+keepalive+ sentinel實現完整的redis叢集方案 Redis:快取伺服器 Twemproxy:redis的負載均衡代理伺服器,主要對redis的多主從複製叢集進行負載均衡 Keepaliv

這可能是最全的Redis叢集方案介紹了

來源   由於Redis出眾的效能,其在眾多的移動網際網路企業中得到廣泛的應用。Redis在3.0版本前只支援單例項模式,雖然現在的伺服器記憶體可以到100GB、200GB的規模,但是單例項模式限制了Redis沒法滿足業務的需求(例如新浪微博就曾經用Redis儲存了超過

Redis叢集方案及實現

之前做了一個Redis的叢集方案,跑了小半年,線上執行的很穩定差不多可以跟大家分享下經驗,前面寫了一篇文章 資料線上服務的一些探索經驗,可以做為背景閱讀應用我們的Redis叢集主要承擔了以下服務:1. 實時推薦2. 使用者畫像3. 誠信分值服務叢集狀況叢集峰值QPS 1W左右

架構設計:系統儲存(18)——Redis叢集方案:高效能

1、概述 通過上一篇文章(《架構設計:系統儲存(17)——Redis叢集方案:高可用》)的內容,Redis主從複製的基本功能和進行Redis高可用叢集監控的Sentinel基本功能基本呈現給了讀者。雖然本人並不清楚上一篇根據筆者實際工作經驗所撰寫的文章有什麼重

Redis叢集方案(codis)

Codis是豌豆莢使用Go和C語言開發、以代理的方式實現的一個Redis分散式叢集解決方案,且完全相容Twemproxy。Twemproxy對於上一層的應用來說, 連線Codis Proxy(Redis代理服務)和連線原生的Redis伺服器沒有明顯的區別,上一層應用能夠像使用單機的 Redis一樣對待。

Redis叢集方案,Codis安裝測試

1,關於豌豆莢開源的Codis Codis是豌豆莢使用Go和C語言開發、以代理的方式實現的一個Redis分散式叢集解決方案,且完全相容Twemproxy。Twemproxy對於上一層的應用來說, 連線Codis Proxy(Redis代理服務)和連線原生的

redis叢集方案-一致性hash演算法

前奏 叢集的概念早在 Redis 3.0 之前討論了,3.0 才在原始碼中出現。Redis 叢集要考慮的問題: 節點之間怎麼據的同步,如何做到資料一致性。一主一備的模式,可以用 Redis 內部實現的主從備份實現資料同步。但節點不斷增多,存在多個 master 的時候,

一致性hash演算法redis叢集動態資料儲存

記錄:對一致性Hash演算法,Java程式碼實現的深入研究連結地址: http://www.cnblogs.com/xrq730/p/5186728.html全部來自:https://mp.weixin.qq.com/s/yimfkNYF_tIJJqUIzV7TFAhttps

Redis叢集方案的對比

Redis叢集方案          長期以來,Redis本身僅支援單例項,記憶體一般最多10~20GB。這無法支撐大型線上業務系統的需求。而且也造成資源的利用率過低,畢竟現在伺服器記憶體動輒100~200GB。          為解決單機承載能力不足的問題,出現了不

Redis叢集方案-Codis

作者介紹 郝朝陽,DevOps視角社群發起人,高階運維工程師,專注於運維自動化的實現。現就職於宜搜科技,負責前端運維工作。致力於形成自己的運維細想體系。 codis介紹 codis是豌豆莢基礎架構團隊開發並開源的分散式redis服務,可以看作是一個無限記憶體的redis服務,有動態擴容/縮容的能力。

Redis叢集方案應該怎麼做?

Redis Cluster叢集 一、redis-cluster設計 Redis叢集搭建的方式有多種,例如使用zookeeper等,但從redis 3.0之後版本支援redis-cluster叢集,Redis-Cluster採用無中心結構,每個節點儲存資

Redis叢集方案應該怎麼做?都有哪些方案

twemproxy,它類似於一個代理方式,使用方法和普通redis無任何區別,設定好它下屬的多個redis例項後,使用時在本需要連線redis的地方改為連線twemproxy,它會以一個代理的身份接收請求並使用一致性hash演算法,將請求轉接到具體redis,將結果返回twemproxy。使用方式簡單(相對r

基於twemproxy的redis叢集方案實踐

Twemproxy又名nutcraker,是由Twtter 開源,是一種代理分片機制的中介軟體(類似於mycat),主要用於管理 Redis Memcached 叢集,可接受來自多個客戶端的請求,按照路由規則,轉發給後端cache節點,減少了客戶端與cache 伺服器直接連線的數量。 一、t

基於Twemproxy的Redis叢集方案部署

1、安裝redis。 2、在一臺機器上搭建多個redis例項 需要啟動多個Redis例項: 一臺Redis伺服器,分成多個節點,每個節點分配一個埠(6380,6381…),預設埠是6379。 每個節點對應一個Redis配置檔案,如: redis6380.conf、redi