傳統工程:
SSH:dao層 SSM:
實體 model,模型層
業務邏輯層 業務邏輯層
action 控制層(和視圖進行交換)redis
dubbo:對傳統工程進行改造(視頻軟件環境爲MyEclipse)
將業務邏輯層如下的作成dubbo服務
action層調用服務,拿到數據進行簡單的判斷,後與頁面進行交換
action有極少的業務邏輯,都是調用服務,接口等後與頁面交換
改造後的工程結構:
1.Maven父配置
2.用戶服務接口(實體,枚舉,common公共的東西)+新加接口,將業務邏輯層中的方法寫成接口
3.用戶服務實現(業務邏輯實現,dao層Impl接口層,即數據訪問層,數據庫的xml配置)+新加接口實現類
4.服務消費者(action層) 調用服務接口層的接口名spring
spring.xml配置在3,4都要配置,還有一些公共的在哪用就在哪引入,且有關dubbo的xml配置還要在裏面進行引用說明數據庫
4和3只能調用2api
在服務端(服務實現)中公佈dubbo服務:配置xml文件 dubbo-provider.xml
在xml配置文件中,公佈用戶服務接口<dubbo:service interface="jrx.anytxn.api.bid.BidService">app
<!--提供方應用信息,用於計算機依賴 -->
<dubbo:application name="jrx-front-dubbo" owner="jrx" organization="dubbox"/>ide
<!--使用zookeeper註冊中心暴露服務地址 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>視頻
<!-- 用dubbo協議在20881端口暴露服務 -->
<dubbo:protocol name="dubbo" port="20881"/>xml
在服務消費端配置xml文件:dubbo-consumer.xml接口
<!--消費方應用名:用於計算機依賴關係,不是匹配條件,不要與提供方同樣 -->
<dubbo:application name="jrx-demo-consumer" owner="jrx" organization="dubbox"/>ip
<!--註冊中心地址 -->
<!--多註冊中心配置,豎號分隔表示同時鏈接多個不一樣註冊中心,同一註冊中心的多個集羣地址用逗號分隔 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/>
<!--用戶服務接口--> 與提供接口標籤不同,可是內容同樣
<dubbo:reference id="bidService" interface="jrx.anytxn.api.bid.BidService"/>
provider:暴露服務的的服務提供方
consumer:調用遠程服務的服務消費方
Registry:服務註冊與發現的註冊中心
Monitor:統計服務的調用次數,和調用時間的監控中心
Container:服務運行容器
註冊中心選擇:zookeeper redis