dubbo:跨系統通信。比如:兩個系統,一個系統A作客戶端,一個系統B作服務器, 服務器B把自己的接口定義提供給客戶端A,客戶端A將接口定義在spring中的bean。客戶端A可直接使用這個bean,就好像這些接口的實現(即服務器B的代碼)也是在自己的代碼里一樣。客戶端A和服務器B在啟動的時候都會把自己的機器IP注冊到zookeeper上,客戶端A會把zk上的服務端ip拉到磁盤上,並記錄哪些ip提供哪些服務(服務端啟動時暴露給zk),然后客戶端根據ip調用服務端的服務。
dubbo需要將服務器B(提供方)的接口類打成包,服務器B(提供方)去實現,客戶端A(消費方)去調用。
maven依賴:在一個多module的maven項目中,maven子模塊間提供依賴實現調用。比如,模塊A調用模塊B,將模塊B打包成jar,引入到模塊A中(相當於模塊A擁有了模塊B),實則模塊A和模塊B是在同一項目中運行。而dubbo的提供者和消費者是兩個獨立的服務(A只是調用B,並未擁有B)。