不僅包含rpc通路功能,還包含服務治理功能
由阿裡巴巴建立,最後由apache維護至今,是以我們選擇由apache維護的dubbo
官方位址:https://mvnrepository.com/artifact/org.apache.dubbo/dubbo
常用版本2.7.3
采用nio複用單一長連接配接,使用線程池并發處理請求,減少握手和加大并發效率
大檔案上傳時,可能出現問題(不适用dubbo檔案上傳)
優點:jdk自帶的能力
缺點:偶爾連接配接失敗
優點:可以與原生hessian互操作,基于http協定
缺點:需hessian.jar支援,http短連接配接的開銷大
優點:支援分布式,周邊産品
缺點:受限于zookeeper軟體的穩定性,zookeeper專門分布式輔助軟體,穩定較優
優點:去中心化,不需要單獨安裝
缺點:provider和consumer和registry不能跨機房(隻能在區域網路内使用)
優點:支援叢集,性能高
缺點:要求伺服器時間同步,否則可能出現叢集失敗問題
優點:标準rpc服務,沒有相容問題
缺點:不支援叢集
dubbo目錄結構
建立父工程,添加依賴
dubboservice接口
接口實作
啟動類
控制器
provider中的application.yml
consumer中的application.yml
叢集:一個内容,部署多次,形成的整體稱為叢集,每個個體應該部署到不同的伺服器
僞叢集:叢集中内容部署到同一台伺服器上,通過不同端口區分不同個體
負載均衡是在叢集前提下,當通路整個叢集時,叢集中每個節點都被通路次數或頻率的規則
dubbo内置了四個負載均衡政策,預設為random
random,随機,随機通路叢集中結點,通路機率和權重有關
roundrobin,輪詢,通路頻率和權重有關;權重,占有比例,叢集中每個項目部署的伺服器性能可能不同,性能好的權重高
leastactive,活躍數相同的随機,不同的活躍數高的放前面
consistenthash,一緻性hash,相同參數請求總是發到一個提供者
建立四個啟動類
每次啟動啟動類修改配置檔案dubbo.protocal.port
調用的服務采用負載均衡
目前拂去采用的負載均衡算法
設定權重
結構圖
pojo.dept.java
pojo.emp.java
持久層mybatis
application-mybatis.yml
mapper.deptmapper
mapper.empmapper
provider啟動類
provider的applicaton.yml
dept子項目的建立
deptmapper.xml
deptdubboservice
deptmapper
deptdubboserviceimpl
deptservice
deptserviceimpl
deptcontroller
emp下的application.yml
empapplication
empdubboservice
empdubboserviceimpl
empmapper.xml
empservice
empcontroller
論讀書
睜開眼,書在面前
閉上眼,書在心裡