一:簡介
Dubbox 是一個分布式服務(wù)框架,其前身是阿里巴巴開源項目Dubbo ,被國內(nèi)電商及互聯(lián)網(wǎng)項目中使用,后期阿里巴巴停止了該項目的維護(hù),當(dāng)當(dāng)網(wǎng)便在Dubbo基礎(chǔ)上進(jìn)行優(yōu)化,并繼續(xù)維護(hù),為了與原有的Dubbo區(qū)分,故將其命名為Dubbox。
Dubbox 致力于提供高性能和透明化的RPC遠(yuǎn)程服務(wù)調(diào)用方案,以及SOA服務(wù)治理方案。說白了就是個遠(yuǎn)程服務(wù)調(diào)用的分布式框架。
節(jié)點(diǎn)角色說明:
? Provider: 暴露服務(wù)的服務(wù)提供方。
? Consumer: 調(diào)用遠(yuǎn)程服務(wù)的服務(wù)消費(fèi)方。
? Registry: 服務(wù)注冊與發(fā)現(xiàn)的注冊中心。
? Monitor: 統(tǒng)計服務(wù)的調(diào)用次調(diào)和調(diào)用時間的監(jiān)控中心。
? Container: 服務(wù)運(yùn)行容器。
調(diào)用關(guān)系說明:
? 0. 服務(wù)容器負(fù)責(zé)啟動,加載,運(yùn)行服務(wù)提供者。
? 1. 服務(wù)提供者在啟動時,向注冊中心注冊自己提供的服務(wù)。
? 2. 服務(wù)消費(fèi)者在啟動時,向注冊中心訂閱自己所需的服務(wù)。
? 3. 注冊中心返回服務(wù)提供者地址列表給消費(fèi)者,如果有變更,注冊中心將基于長連接推
送變更數(shù)據(jù)給消費(fèi)者。
? 4. 服務(wù)消費(fèi)者,從提供者地址列表中,基于軟負(fù)載均衡算法,選一臺提供者進(jìn)行調(diào)用,
如果調(diào)用失敗,再選另一臺調(diào)用。
? 5. 服務(wù)消費(fèi)者和提供者,在內(nèi)存中累計調(diào)用次數(shù)和調(diào)用時間,定時每分鐘發(fā)送一次統(tǒng)計
數(shù)據(jù)到監(jiān)控中心。
一:簡介
Zookeeper 是 Apacahe Hadoop 的子項目,是一個樹型的目錄服務(wù),適合作為Dubbox 服務(wù)的注冊中心,注冊中心負(fù)責(zé)服務(wù)地址的注冊與查找,相當(dāng)于目錄服務(wù),服務(wù)提供者和消費(fèi)者只在啟動時與注冊中心交互,注冊中心不轉(zhuǎn)發(fā)請求,壓力較小。
二: Zookeeper 在Linux系統(tǒng)的安裝
tar -zxvf zookeeper-3.4.6.tar.gz
mkdir data
mv zoo_sample.cfg zoo.cfg
dataDir=/root/zookeeper-3.4.6/data
三:Zookeeper 服務(wù)啟動
進(jìn)入bin目錄,啟動服務(wù)輸入命令
./zkServer.sh start
一:創(chuàng)建服務(wù)提供者的Maven工程
1:pom文件
4.2.4.RELEASE
org.springframework
spring-context
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-aspects
${spring.version}
org.springframework
spring-jms
${spring.version}
org.springframework
spring-context-support
${spring.version}
com.alibaba
dubbo
2.8.4
org.apache.zookeeper
zookeeper
3.4.6
com.github.sgroschupf
zkclient
0.1
javassist
javassist
3.11.0.GA
org.apache.maven.plugins
maven-compiler-plugin
2.3.2
1.7
org.apache.tomcat.maven
tomcat7-maven-plugin
8081
/
2:web.xml
contextConfigLocation
classpath:applicationContext*.xml
org.springframework.web.context.ContextLoaderListener
3:Spring的配置文件
4:代碼及目錄結(jié)構(gòu)
二:創(chuàng)建服務(wù)消費(fèi)者的Maven工程
1:pom文件和上面的一致
2:web.xml文件
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
forceEncoding
true
CharacterEncodingFilter
/*
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc.xml
springmvc
*.do
3:SpringMvc配置文件
4:代碼及目錄結(jié)構(gòu)
三:管理中心的部署
我們在開發(fā)時,需要知道注冊中心都注冊了哪些服務(wù),以便我們開發(fā)和測試。我們可以通過部署一個管理中心來實(shí)現(xiàn)。其實(shí)管理中心就是一個web應(yīng)用,部署到tomcat即可。
(1)編譯源碼,得到war包在命令符下進(jìn)入dubbo-admin目錄 ,輸入maven命令
mvn package -Dmaven.skip.test=true
(2)進(jìn)入target文件夾,你會看到一個dubbo-admin-2.8.4.war , 在linux服務(wù)器上安裝tomcat, 將此war包上傳到linux服務(wù)器的tomcat的webapps下。啟動tomcat后自動解壓。
(3)如果你部署在zookeeper同一臺主機(jī)并且端口是默認(rèn)的2181,則無需修改任何配置。如果不是在一臺主機(jī)上或端口被修改,需要修改WEB-INF下的dubbo.properties ,修改如下配置,修改后重新啟動tomcat
dubbo.registry.address=zookeeper://127.0.0.1:2181
四:管理中心的使用
打開瀏覽器,輸入http://192.168.25.128:8080/dubbo-admin ,登錄用戶名和密碼均為root 進(jìn)入首頁。
五:啟動demo
先啟動服務(wù)提供方的maven工程,在啟動服務(wù)消費(fèi)方的maven工程。(啟動方法見下圖)注意zookeeper的服務(wù)要提前啟動,直接輸入服務(wù)消費(fèi)方的地址,看到結(jié)果。
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。