1. 程式人生 > >dubbo&hsf&spring-cloud簡單介紹

dubbo&hsf&spring-cloud簡單介紹

服務器端 場景 hessian 發展 分布式系 梳理 擴展點 中心 筆記本

Dubbo:

簡介:Dubbo是一個分布式服務框架,以及SOA治理方案。其功能主要包括:高性能NIO通訊及多協議集成,服務動態尋址與路由,軟負載均衡與容錯,依賴分析與降級等。

底部NIO基於netty框架;

技術分享

HSF:

簡介:HSF提供的是分布式服務開發框架,taobao內部使用較多,總體來說其提供的功能及一些實現基礎:
1.標準Service方式的RPC
1)、Service定義:基於OSGI的Service定義方式
2)、TCP/IP通信:
IO方式:nio,采用mina框架
連接方式:長連接
服務器端有限定大小的連接池
WebService方式
3)、序列化:Hessian序列化機制
2.軟件負載體系
3.模塊化、動態化
4.服務治理

性能:

Dubbo & HSF compare

Dubbo優點:

1. Dubbo比HSF的部署方式更輕量,HSF要求使用指定的JBoss等容器,還需要在JBoss等容器中加入sar包擴展,對用戶運行環境的侵入性大,如果你要運行在Weblogic或Websphere等其它容器上,需要自行擴展容器以兼容HSF的ClassLoader加載,而Dubbo沒有任何要求,可運行在任何Java環境中。
2. Dubbo比HSF的擴展性更好,很方便二次開發,一個框架不可能覆蓋所有需求,Dubbo始終保持平等對待第三方理念,即所有功能,都可以在不修改Dubbo原生代碼的情況下,在外圍擴展,包括Dubbo自己內置的功能,也和第三方一樣,是通過擴展的方式實現的,而HSF如果你要加功能或替換某部分實現是很困難的,比如支付寶和淘寶用的就是不同的HSF分支,因為加功能時改了核心代碼,不得不拷一個分支單獨發展,HSF現階段就算開源出來,也很難復用,除非對架構重寫。
3. HSF依賴比較多內部系統,比如配置中心,通知中心,監控中心,單點登錄等等,如果要開源還需要做很多剝離工作,而Dubbo為每個系統的集成都留出了擴展點,並已梳理幹清所有依賴,同時為開源社區提供了替代方案,用戶可以直接使用。
4. Dubbo比HSF的功能更多,除了ClassLoader隔離,Dubbo基本上是HSF的超集,Dubbo也支持更多協議,更多註冊中心的集成,以適應更多的網站架構。


Dubbo在安全機制方面是如何解決的?
Dubbo主要針對內部服務,對外的服務,阿裏有開放平臺來處理安全和流控,所以Dubbo在安全方面實現的功能較少,基本上只防君子不防小人,只防止誤調用。
Dubbo通過Token令牌防止用戶繞過註冊中心直連,然後在註冊中心上管理授權。Dubbo還提供服務黑白名單,來控制服務所允許的調用方。

HSF優點:

1.HSF框架采用 Netty + Hession數據序列化協議實現服務交互,Netty + Hession的組合在互聯網高並發量的場景下,特別是在TPS 上達到10w 以上時,性能和效率遠比REST 或者Web Service 高。

2.HSF框架的容錯機制,配置服務器是采用長連接的方式與服務節點進行網絡通訊,一旦發現有服務提供者實例出現故障,配置服務器在秒級就會感知到,此時會將出問題這臺服務提供者的信息從該服務的服務器列表中刪除,並將更新後的服務器列表采用推送的方式同步給與該服務相關的所有服務調用者端,這樣當下次服務調用者再進行此服務的調用時,就不會因為隨機的方式再次對已經停止服務提供的服務器發起服務的調用。

3.HSF框架的線性擴展支持

Spring cloud:

Spring Cloud為開發人員提供了快速構建分布式系統中的一些通用模式(例如配置管理,服務發現,斷路器,智能路由,微代理,控制總線,一次性令牌,全局鎖,領導選舉,分布式 會話,群集狀態)。 分布式系統的協調引出樣板模式(boiler plate patterns),並且使用Spring Cloud開發人員可以快速地實現這些模式來啟動服務和應用程序。 它們可以在任何分布式環境中正常工作,包括開發人員自己的筆記本電腦,裸機數據中心和受管平臺,如Cloud Foundry。

技術分享

Dubbo和spring cloud的區別 : 兩個框架的定義層面也不一樣,麽辦法比較,具體可以參照項目需求來選擇;

dubbo&hsf&spring-cloud簡單介紹