分布式RPC調用框架:Nepxion-Thunder

jopen 10年前發布 | 32K 次閱讀 WEB服務/RPC/SOA Nepxion-Thunder

Thunder是基于Netty + Hessian + ActiveMQ + Tibco + Zookeeper(Curator Framework) + Redis + FST + Spring + Spring Web MVC 分布式RPC調用框架。架構思想主要是來自阿里巴巴的Dubbo框架,但比它更輕量級,零配置式實現部署。支持同步調用,異步調用 Callback,廣播通知方式(點對點的發布訂閱。主要功能:

  • Thunder進程又是服務方,也是調用方,互為Server和Client模式,只要在注冊中心注冊,無論是客戶端還是服務端都將是負載均衡的節點
  • 支持TCP NIO框架(Netty),TCP MQ消息隊列框架(Kafka,ActiveMQ,Tibco),HTTP(Hessian)的傳輸方式,支持多線程調用
  • 支持同步調用,異步調用Callback,廣播通知方式(點對點的發布訂閱模式)
  • 支持基于Spring的簡單本地調用方式(顯式調用),達到遠程調用的目的,RPC調用
  • 支持服務方應用上下線調用方和服務的自動發現,不用重啟調用方應用
  • 支持心跳和自動重連機制
  • 支持應用與注冊中心Zookeeper重連機制
  • 支持注冊中心的負載均衡的時候,切換到不健康服務方的時候,繼續切換功能,并提供嘗試切換次數的設定
  • 支持注冊中心的負載均衡,一致性Hash(Consistent Hash)算法,權重輪循算法(Round Robin),隨機輪循算法(Random)
  • 支持授權,基于密鑰的服務安全訪問,跟Hessian自帶的安全認證結合在一起,采用雙向密鑰匹配方式
  • 支持接口調用的版本Version控制,版本不匹配拒絕調用,采用雙向版本匹配
  • 支持限流,通過令牌刷新方式,可控制單位時間內接口被調用的次數
  • 支持升級后,服務中心持久化對象不一致,版本判斷,并重新創建
  • 支持遠程配置和調優,管理者可以通過遠程配置工具,配置和調優眾多分布式的服務提供方和調用方,當然它們既可以使用本地的配置,也可以使用遠程配置
  • 支持統計中心的服務依賴情況(SOA治理)。查看服務方接口所在的地址和端口,所走的協議,所屬應用,所屬組,以及它暴露的接口方法列表,查看其是否啟動,可動態刷新;查看調用方的所調用的接口,接入的地址,所走的協議,所屬應用,所屬組,查看其是否接入,可動態刷新
  • 支持監控中心監控所有的方法調用(耗時、次數、異常等)信息,結合Splunk做動態日志監控,也可以通過第三方WebService分布式接入,做數據統計,通過廣播方式,所有接入進來的WebService都將獲得統計數據
  • 提供界面化的服務治理,包括分布式的服務方和調用的分布情況,上下線動態刷新,以及令牌控制,密鑰控制,版本控制等功能
  • 支持五大通信中間件的性能優化,通過獨立的配置文件實現,采用局部配置和全局配置的方式,局部配置優先于全局配置
  • 支持MQ(消息隊列)在同一個進程中為服務/調用指定不同的MQ服務器
  • 支持MQ(消息隊列)指定三種Connection或Session的緩存方式(SingleConnectionFactory,CachingConnectionFactory,PooledConnectionFactory)
  • 支持MQ(消息隊列)指定兩種初始化方式(JNDI和非JNDI)
  • 支持MQ(消息隊列,主要是Kafka)的異步事件驅動發布框架內部事件

項目主頁:http://www.baiduhome.net/lib/view/home/1450582002401

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!