分布式服務(wù)調(diào)用ServiceCaller(1)

ServiceCaller

ServiceCaller是基于Spring和依賴zookeeper托管服務(wù)的分布式服務(wù)注冊和發(fā)現(xiàn)模塊

功能

  • 服務(wù)自動注冊和發(fā)現(xiàn)
  • 基于hystrix的服務(wù)熔斷和降級
  • 系統(tǒng)間服務(wù)調(diào)用
  • 服務(wù)監(jiān)控
  • 網(wǎng)絡(luò)拓撲(todo)
  • 服務(wù)管理,分組,降級等(todo)

服務(wù)注冊

  1. 通過spring容器獲取所有的Controller
  2. 注冊Controller到zookeeper的node中,同一服務(wù)的多個實例會存放在同一節(jié)點
  3. 服務(wù)名稱默認為"系統(tǒng)name.methodName",group為系統(tǒng)name(系統(tǒng)name為使用時配置在配置文件),可通過@ZeuService.value()自定義服務(wù)名稱,@ZeuService.group自定義group
  4. zk上的node路徑為默認路徑,當前配置為/tts/services

服務(wù)發(fā)現(xiàn)

  1. 通過服務(wù)名稱獲取zookeeper中的服務(wù)(http地址等信息)
  2. 通過負載均衡策略返回其中的一個實例

服務(wù)調(diào)用

  1. 服務(wù)調(diào)用使用了Hystrix和core包中的http client
  2. 實現(xiàn)Hystrix的run方法實現(xiàn)服務(wù)的調(diào)用和Hystrix的熔斷、降級特性
  3. 服務(wù)監(jiān)控目前是Hystrix的monitor,可自己實現(xiàn)

服務(wù)管理

  1. 通過注解@ZeuService或者配置實現(xiàn)服務(wù)調(diào)用時的分組隔離(灰度與正式環(huán)境,暫時未實現(xiàn))
  2. 可通過接口修改注冊在zookeeper上的服務(wù)(暫未實現(xiàn))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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