Dubbo框架
Dubbo框架
什么是dubbo
隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)站應(yīng)用的規(guī)模不斷擴(kuò)大,常規(guī)的垂直應(yīng)用架構(gòu)已無法應(yīng)對(duì),分布式服務(wù)架構(gòu)以及流動(dòng)計(jì)算架構(gòu)勢(shì)在必行,亟需一個(gè)治理系統(tǒng)確保架構(gòu)有條不紊的演進(jìn)。
Dubbo架構(gòu)
使用方法
Spring配置
Dubbo采用全Spring配置方式,透明化接入應(yīng)用,對(duì)應(yīng)用沒有任何API侵入,只需用Spring加載Dubbo的配置即可,Dubbo基于Spring的Schema擴(kuò)展進(jìn)行加載。
單一工程中spring的配置
<bean id="xxxService" class="com.xxx.XxxServiceImpl" /> <bean id="xxxAction" class="com.xxx.XxxAction"><property name="xxxService" ref="xxxService" /> </bean>遠(yuǎn)程服務(wù):
在本地服務(wù)的基礎(chǔ)上,只需做簡單配置,即可完成遠(yuǎn)程化:
將上面的local.xml配置拆分成兩份,將服務(wù)定義部分放在服務(wù)提供方remote-provider.xml,將服務(wù)引用部分放在服務(wù)消費(fèi)方remote-consumer.xml。
并在提供方增加暴露服務(wù)配置dubbo:service,在消費(fèi)方增加引用服務(wù)配置dubbo:reference。
發(fā)布服務(wù):
<!-- 和本地服務(wù)一樣實(shí)現(xiàn)遠(yuǎn)程服務(wù) --> <bean id="xxxService" class="com.xxx.XxxServiceImpl" /> <!-- 增加暴露遠(yuǎn)程服務(wù)配置 --> <dubbo:service interface="com.xxx.XxxService" ref="xxxService" />調(diào)用服務(wù):
<!-- 增加引用遠(yuǎn)程服務(wù)配置 --> <dubbo:reference id="xxxService" interface="com.xxx.XxxService" /> <!-- 和本地服務(wù)一樣使用遠(yuǎn)程服務(wù) --> <bean id="xxxAction" class="com.xxx.XxxAction"><property name="xxxService" ref="xxxService" /> </bean>注冊(cè)中心
注冊(cè)中心負(fù)責(zé)服務(wù)地址的注冊(cè)與查找,相當(dāng)于目錄服務(wù),服務(wù)提供者和消費(fèi)者只在啟動(dòng)時(shí)與注冊(cè)中心交互,注冊(cè)中心不轉(zhuǎn)發(fā)請(qǐng)求,壓力較小。使用dubbo-2.3.3以上版本,建議使用zookeeper注冊(cè)中心。
Zookeeper是Apacahe Hadoop的子項(xiàng)目,是一個(gè)樹型的目錄服務(wù),支持變更推送,適合作為Dubbo服務(wù)的注冊(cè)中心,工業(yè)強(qiáng)度較高,可用于生產(chǎn)環(huán)境,并推薦使用。
框架整合
添加dubbo的依賴
加入dubbo相關(guān)的jar包。服務(wù)層、表現(xiàn)層都添加。
<!-- dubbo相關(guān) --> <dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><!-- 排除依賴 --><exclusions><exclusion><groupId>org.springframework</groupId><artifactId>spring</artifactId></exclusion><exclusion><groupId>org.jboss.netty</groupId><artifactId>netty</artifactId></exclusion></exclusions> </dependency> <dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId> </dependency> <dependency><groupId>com.github.sgroschupf</groupId><artifactId>zkclient</artifactId> </dependency>總結(jié)
- 上一篇: Vue入门教程:node安装vue命令行
- 下一篇: web.xml初始化spring容器