spring Cloud與dubbo都為微服務框架,那么我們在進行技術選型時應該怎么考慮呢?可以從以下幾個方面考慮
1.架構完整度:與spring cloud相比,dubbo的架構完整度不夠,其本身只提供了服務注冊中心與服務治理兩個模塊,而spring cloud到現在為止,已經提供了服務注冊中心,服務治理等24個模塊,並且還在增加中。雖然dubbo也可以整合第三方框架,但是搭建出來的dubbo架構可能出現兼容性問題,而spring cloud不會,因為其每一個模塊都是經過嚴格測試的,幾乎不存在兼容性問題。如果將spring cloud比作品牌機,那dubbo就是組裝機
2.社區活躍度:與spring cloud相比,dubbo社區活躍度相對較低,社區活躍度的高低將影響項目維護成本,在社區活躍度很高時,一般項目中遇到的問題都可以在社區中找到響應的解決方案
3.通訊協議:dubbo服務間通訊采用rpc,而spring cloud采用的時http的rest。rpc對於業務接口有很強的依賴性,生產者和消費者都需要依賴相同的接口,並且還需要通過嚴格的業務接口版本來進行管理,這種依賴在大型微服務項目將會成為一個很大的問題,相比rpc,rest更加輕量化,服務調用者和提供者間的依賴僅僅是一紙契約,一段文本,不存在代碼層面的強依賴,服務提供者和調用者之間還可以通過不同的語言來實現,只需要提供rest接口就可以通訊。
4.技術改造和微服務開發:國內的開發團隊選擇dubbo的一個很重要的原因就是官方文檔,dubbo提供了高質量的官方文檔,而spring cloud都是英文版的,並且文檔內容要比dubbo多的多,文檔內容更偏向模塊整合,要對每個模塊的進行更深入的了解,需要查看更為詳細的文檔,對於中小型團隊來說,閱讀英文文檔的成本必須要考慮的
