系統(tǒng)間服務(wù)調(diào)用方式
瀏覽器直接訪問(wèn)
瀏覽器發(fā)起請(qǐng)求,通過(guò)ajax或jsonp方式請(qǐng)求:
Httpclient方式
系統(tǒng)與系統(tǒng)之間通過(guò)Httpclient發(fā)起http請(qǐng)求來(lái)請(qǐng)求數(shù)據(jù):
http協(xié)議是短連接。
RPC方式
采用長(zhǎng)連接方式。
單點(diǎn)系統(tǒng)中存在的問(wèn)題
在單點(diǎn)登錄系統(tǒng)中的功能中,根據(jù)token查詢(xún)用戶(hù)信息的功能對(duì)系統(tǒng)性能要求最高,如果我們想單獨(dú)調(diào)整該功能的性能是不可能的,因?yàn)樵摴δ芎推渌墓δ荞詈显僖黄稹?/p>
要想單獨(dú)優(yōu)化該功能的性能就必須把該功能單獨(dú)出來(lái),我們就可以借助與dubbo框架完成。
什么是dubbo?
簡(jiǎn)介
DUBBO是一個(gè)分布式服務(wù)框架,致力于提供高性能和透明化的RPC遠(yuǎn)程服務(wù)調(diào)用方案,是阿里巴巴SOA服務(wù)化治理方案的核心框架,每天為2,000+個(gè)服務(wù)提供3,000,000,000+次訪問(wèn)量支持,并被廣泛應(yīng)用于阿里巴巴集團(tuán)的各成員站點(diǎn)。
Dubbo是Alibaba開(kāi)源的分布式服務(wù)框架,它最大的特點(diǎn)是按照分層的方式來(lái)架構(gòu),使用這種方式可以使各個(gè)層之間解耦合(或者最大限度地松耦合)。從服務(wù)模型的角度來(lái)看,Dubbo采用的是一種非常簡(jiǎn)單的模型,要么是提供方提供服務(wù),要么是消費(fèi)方消費(fèi)服務(wù),所以基于這一點(diǎn)可以抽象出服務(wù)提供方(Provider)和服務(wù)消費(fèi)方(Consumer)兩個(gè)角色。關(guān)于注冊(cè)中心、協(xié)議支持、服務(wù)監(jiān)控等內(nèi)容。
官網(wǎng)
http://dubbo.io/
以前的截圖:
版本說(shuō)明
以前的截圖:
我們使用2.5.3版本。
下載
Dubbo官網(wǎng)并沒(méi)有提供下載服務(wù),但是dubbo將源碼托管于github,并且將jar包發(fā)布到maven的中央倉(cāng)庫(kù),所以可以從github和maven中央倉(cāng)庫(kù)來(lái)下載。
源碼下載
https://github.com/alibaba/dubbo
以前的截圖:
發(fā)布包下載
http://repo1.maven.org/maven2/com/alibaba/dubbo/
以前的截圖:
通過(guò)Maven構(gòu)建dubbo
既然可以下載得到源碼以及發(fā)布包,那么為什么要去構(gòu)建dubbo呢?,我們先來(lái)看下dubbo的主要模塊:
其中,核心框架、管理控制臺(tái)、簡(jiǎn)易監(jiān)控中心、簡(jiǎn)易注冊(cè)中心是我們需要的模塊,目前,只有核心模塊可以下載到,其它的均無(wú)法直接下載,所以我們需要構(gòu)建dubbo。
當(dāng)然了,在提供的資料中以及有構(gòu)建好的模塊提供,也可以選擇不重新構(gòu)建。
導(dǎo)入源碼到Eclipse
先導(dǎo)入編譯依賴(lài)到Eclipse:
再導(dǎo)入dubbo源碼到Eclipse:
導(dǎo)入完成:
安裝hessian-lite到本地倉(cāng)庫(kù)
安裝opensesame到本地倉(cāng)庫(kù)
構(gòu)建dubbo
構(gòu)建完成:
[INFO] Reactor Summary:
[INFO]
[INFO] dubbo-
parent ....................................... SUCCESS [
0.349 s]
[INFO] dubbo-common ....................................... SUCCESS [
4.351 s]
[INFO] dubbo-
container .................................... SUCCESS [
0.007 s]
[INFO] dubbo-
container-api ................................ SUCCESS [
0.718 s]
[INFO] dubbo-
container-
spring ............................. SUCCESS [
0.368 s]
[INFO] dubbo-
container-jetty .............................. SUCCESS [
0.343 s]
[INFO] dubbo-
container-log4j .............................. SUCCESS [
0.432 s]
[INFO] dubbo-
container-logback ............................ SUCCESS [
0.431 s]
[INFO] dubbo-remoting ..................................... SUCCESS [
0.003 s]
[INFO] dubbo-remoting-api ................................. SUCCESS [
1.717 s]
[INFO] dubbo-remoting-netty ............................... SUCCESS [
0.678 s]
[INFO] dubbo-remoting-mina ................................ SUCCESS [
0.528 s]
[INFO] dubbo-remoting-grizzly ............................. SUCCESS [
0.776 s]
[INFO] dubbo-remoting-p2p ................................. SUCCESS [
0.793 s]
[INFO] dubbo-remoting-http ................................ SUCCESS [
0.781 s]
[INFO] dubbo-remoting-zookeeper ........................... SUCCESS [
0.484 s]
[INFO] dubbo-rpc .......................................... SUCCESS [
0.004 s]
[INFO] dubbo-rpc-api ...................................... SUCCESS [
1.174 s]
[INFO] dubbo-rpc-
default .................................. SUCCESS [
1.051 s]
[INFO] dubbo-rpc-injvm .................................... SUCCESS [
0.367 s]
[INFO] dubbo-rpc-rmi ...................................... SUCCESS [
0.359 s]
[INFO] dubbo-rpc-hessian .................................. SUCCESS [
0.427 s]
[INFO] dubbo-rpc-http ..................................... SUCCESS [
0.415 s]
[INFO] dubbo-rpc-webservice ............................... SUCCESS [
2.279 s]
[INFO] dubbo-
cluster ...................................... SUCCESS [
1.123 s]
[INFO] dubbo-registry ..................................... SUCCESS [
0.007 s]
[INFO] dubbo-registry-api ................................. SUCCESS [
0.839 s]
[INFO] dubbo-monitor ...................................... SUCCESS [
0.004 s]
[INFO] dubbo-monitor-api .................................. SUCCESS [
0.366 s]
[INFO] dubbo-
filter ....................................... SUCCESS [
0.004 s]
[INFO] dubbo-
filter-validation ............................ SUCCESS [
0.429 s]
[INFO] dubbo-
filter-cache ................................. SUCCESS [
0.398 s]
[INFO] dubbo-registry-
default ............................. SUCCESS [
0.419 s]
[INFO] dubbo-monitor-
default .............................. SUCCESS [
0.370 s]
[INFO] dubbo-registry-multicast ........................... SUCCESS [
0.443 s]
[INFO] dubbo-config ....................................... SUCCESS [
0.005 s]
[INFO] dubbo-config-api ................................... SUCCESS [
1.157 s]
[INFO] dubbo-config-
spring ................................ SUCCESS [
1.080 s]
[INFO] dubbo-rpc-thrift ................................... SUCCESS [
0.898 s]
[INFO] dubbo-rpc-memcached ................................ SUCCESS [
0.469 s]
[INFO] dubbo-rpc-redis .................................... SUCCESS [
0.607 s]
[INFO] dubbo-registry-zookeeper ........................... SUCCESS [
0.574 s]
[INFO] dubbo-registry-redis ............................... SUCCESS [
0.724 s]
[INFO] dubbo .............................................. SUCCESS [
5.777 s]
[INFO] dubbo-simple ....................................... SUCCESS [
0.003 s]
[INFO] dubbo-registry-simple .............................. SUCCESS [
5.491 s]
[INFO] dubbo-monitor-simple ............................... SUCCESS [
11.807 s]
[INFO] dubbo-admin ........................................ SUCCESS [
4.867 s]
[INFO] dubbo-demo ......................................... SUCCESS [
0.003 s]
[INFO] dubbo-demo-api ..................................... SUCCESS [
0.237 s]
[INFO] dubbo-demo-provider ................................ SUCCESS [
9.309 s]
[INFO] dubbo-demo-consumer ................................ SUCCESS [
9.491 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:
01:
16 min
[INFO] Finished at:
2016-
05-
31T11:
22:
10+
08:
00
[INFO] Final Memory:
73M/
1725M
[INFO] ------------------------------------------------------------------------
找到對(duì)應(yīng)的模塊包
核心框架
管理控制臺(tái)
簡(jiǎn)易監(jiān)控中心
簡(jiǎn)易注冊(cè)中心
Dubbo框架說(shuō)明
背景
服務(wù)治理
架構(gòu)
調(diào)用關(guān)系:
1. 服務(wù)容器負(fù)責(zé)啟動(dòng),加載,運(yùn)行服務(wù)提供者。
2. 服務(wù)提供者在啟動(dòng)時(shí),向注冊(cè)中心注冊(cè)自己提供的服務(wù)。
3. 服務(wù)消費(fèi)者在啟動(dòng)時(shí),向注冊(cè)中心訂閱自己所需的服務(wù)。
4. 注冊(cè)中心返回服務(wù)提供者地址列表給消費(fèi)者,如果有變更,注冊(cè)中心將基于長(zhǎng)連接推送變更數(shù)據(jù)給消費(fèi)者。
5. 服務(wù)消費(fèi)者,從提供者地址列表中,基于軟負(fù)載均衡算法,選一臺(tái)提供者進(jìn)行調(diào)用,如果調(diào)用失敗,再選另一臺(tái)調(diào)用。
6. 服務(wù)消費(fèi)者和提供者,在內(nèi)存中累計(jì)調(diào)用次數(shù)和調(diào)用時(shí)間,定時(shí)每分鐘發(fā)送一次統(tǒng)計(jì)數(shù)據(jù)到監(jiān)控中心。
總結(jié)
以上是生活随笔為你收集整理的【SSM分布式架构电商项目-32】Dubbo入门的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。