簡單可用好實現的 HA 高可用設計

2021-09-27 03:53:16 字數 899 閱讀 9640

一台資料庫用以記錄,如 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?

管理學上有乙個木桶理論,乙隻水桶能裝多少水取決於它最短的那塊木板,這個理論推廣到分布式系統的可用性上,就是系統整體的可用性取決於系統中最容易出現故障,或者效能最低的元件。系統中的各個元件都要進行高可用設計,防止單點故障,訊息佇列也不例外,這一課時一起來看一下訊息中介軟體的高可用設計。一般來說,分布式...