以前轉java以後,作的都是基於springcloud的微服務,對dubbo沒有了解,只知道是一個rpc的分佈式框架,如今有機會接觸到了dubbo,此篇博客做爲學習的記錄。html
1、什麼是dubbojava
dubbo是阿里的開源的一套rpc框架,如今已經交給阿帕奇開源,與springcloud不一樣的是dubbo是基於rpc通信的,而springcloud是http通信的;那麼dubbo就有一個問題:依賴版本號。別人想要引用你的dubbo服務就必須引入被引用的stud(?)。spring
dubbo由於是rpc長鏈接的,因此會比springcloud暴露的http接口響應速度快不少。apache
在asp.net(jsp)的時代,痛點是在orm上,有一個好的orm,開發速度、維護難度都會變得容易不少。到了mvc時代,應用拆分紅幾個互不干擾的應用,當拆分的愈來愈多,那麼各個服務之間的調用在所不免,此時分佈式框架(springcloud,dubbo,servicefabric)就是關鍵(springcloud做爲第二套微服務框架,對其餘語言的支持也很好,好比.net能夠經過steeltoe來集成到springcloud中,dubbo目前未知能不能與其餘語言集成)。當服務愈來愈多,那麼就須要一個統一的調度中心來管理服務(zk,consul等)。mvc
2、dubbo使用流程框架
dubbo做爲初代的微服務框架,用rpc長鏈接的方式來讓開發人員像調用本地方法同樣調用其餘服務的方法,解決了服務間通信的問題。asp.net
提供者寫好provider接口後,調用者將dubbo服務引用進本身的項目中調用。具體使用教程能夠參考官方文檔,仍是很簡單的。jsp
http://dubbo.apache.org/zh-cn/docs/user/quick-start.html分佈式
3、dubbo對比springcloudide
dubbo只是提供了一個框架,springcloud是一套完整的解決方案,具體的能夠參考這篇博文: