假設有獨立程序A、B、C、D、E、F、G,它們之間經過http協議訪問,那麼怎樣保證程序之間的訪問高可用。設計
好比下圖的狀況:blog
t1時刻A程序訪問B程序成功(正常),t2時刻A程序訪問的B程序不可用(異常),t3時刻A程序訪問可用的B程序(指望)。token
解決方案之一:接口
第1步:程序B一、B2啓動時告訴「信息中心」它們的存在。io
第2步:程序A1向「信息中心」查詢B程序的訪問地址。cli
第3步:程序A1經過「信息中心」提供的地址訪問程序B1。file
「信息中心」接口設計:高可用
/profile?action=&name=&client=&token=接口設計
參數action:register註冊程序,query查詢程序。程序
參數name:action值是"register"則是註冊的程序名,值是"query"則是要查詢的程序名。
參數client:當不爲空的時候「信息中心」檢測到「信息變化」會調用這個接口。
參數token:驗證程序。
B1註冊到「信息中心」
/profile?action=register&name=B
A1向「信息中心」查詢
/profile?action=query&name=B