一台資料庫用以記錄,如 mysql、redis、mongodb 等。關鍵是設計中的思想,用啥資料庫都行。
在資料庫中,存一張表,結構如下:
列名說明
id自增數字,nosql的話想實現也不難
instance
starttime
例項啟動時間
heartbeat
心跳時間
現以2個例項組成的cluster (心跳為1秒)舉例說明:
當例項啟動時,插入一條記錄,例如:
02016-08-01 13:00:00
2016-08-01 13:00:00
當全部例項啟動時,例如:
02016-08-01 13:00:00
2016-08-01 13:01:00
12016-08-01 13:01:00
2016-08-01 13:01:00
select min(id) from table where heartbeat > now – heartbeat_interval
每個心跳週期,每個例項自己更新表中的自己的心跳字段:
update table set heartbeat=now where id=myid and heartbeat > now-heartbeat_interval
02016-08-01 13:00:00
2016-08-01 13:58:00
12016-08-01 13:01:00
2016-08-01 14:00:00
22016-08-01 14:00:00
2016-08-01 14:00:00
最後,在每個心跳週期結束的時候檢查按步驟b自己是否為主,並進行切換。
出處:
高可用HA配置
注意 在此之前zookeeper要配置好 1.首先我們修改core site.xml檔案 1 指定hdfs的nameservice為mycluster fs.defaultfs hdfs mycluster 2 指定hadoop臨時目錄 hadoop.tmp.dir home master hado...
HDFS的HA 高可用
問題 namenode是單節點的,容易發生單點故障。在hadoop2.x之後,可以部署兩個namenode,乙個active 活躍的 另外乙個是standby 備份的 如果要實現這種高可用,需要解決兩個問題 1.資料的同步 資料的同步包括兩部分 靜態資料和動態資料,靜態資料是指元資料資訊 塊名稱,大...
高可用 如何實現訊息佇列的 HA?
管理學上有乙個木桶理論,乙隻水桶能裝多少水取決於它最短的那塊木板,這個理論推廣到分布式系統的可用性上,就是系統整體的可用性取決於系統中最容易出現故障,或者效能最低的元件。系統中的各個元件都要進行高可用設計,防止單點故障,訊息佇列也不例外,這一課時一起來看一下訊息中介軟體的高可用設計。一般來說,分布式...