系統間服務調用方式
瀏覽器直接訪問
瀏覽器發起請求,通過ajax或jsonp方式請求:
Httpclient方式
系統與系統之間通過Httpclient發起http請求來請求數據:
http協議是短連接。
RPC方式
采用長連接方式。
單點系統中存在的問題
在單點登錄系統中的功能中,根據token查詢用戶信息的功能對系統性能要求最高,如果我們想單獨調整該功能的性能是不可能的,因為該功能和其它的功能耦合再一起。
要想單獨優化該功能的性能就必須把該功能單獨出來,我們就可以借助與dubbo框架完成。
什么是dubbo?
簡介
DUBBO是一個分布式服務框架,致力于提供高性能和透明化的RPC遠程服務調用方案,是阿里巴巴SOA服務化治理方案的核心框架,每天為2,000+個服務提供3,000,000,000+次訪問量支持,并被廣泛應用于阿里巴巴集團的各成員站點。
Dubbo是Alibaba開源的分布式服務框架,它最大的特點是按照分層的方式來架構,使用這種方式可以使各個層之間解耦合(或者最大限度地松耦合)。從服務模型的角度來看,Dubbo采用的是一種非常簡單的模型,要么是提供方提供服務,要么是消費方消費服務,所以基于這一點可以抽象出服務提供方(Provider)和服務消費方(Consumer)兩個角色。關于注冊中心、協議支持、服務監控等內容。
官網
http://dubbo.io/
以前的截圖:
版本說明
以前的截圖:
我們使用2.5.3版本。
下載
Dubbo官網并沒有提供下載服務,但是dubbo將源碼托管于github,并且將jar包發布到maven的中央倉庫,所以可以從github和maven中央倉庫來下載。
源碼下載
https://github.com/alibaba/dubbo
以前的截圖:
發布包下載
http://repo1.maven.org/maven2/com/alibaba/dubbo/
以前的截圖:
通過Maven構建dubbo
既然可以下載得到源碼以及發布包,那么為什么要去構建dubbo呢?,我們先來看下dubbo的主要模塊:
其中,核心框架、管理控制臺、簡易監控中心、簡易注冊中心是我們需要的模塊,目前,只有核心模塊可以下載到,其它的均無法直接下載,所以我們需要構建dubbo。
當然了,在提供的資料中以及有構建好的模塊提供,也可以選擇不重新構建。
導入源碼到Eclipse
先導入編譯依賴到Eclipse:
再導入dubbo源碼到Eclipse:
導入完成:
安裝hessian-lite到本地倉庫
安裝opensesame到本地倉庫
構建dubbo
構建完成:
[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] ------------------------------------------------------------------------
找到對應的模塊包
核心框架
管理控制臺
簡易監控中心
簡易注冊中心
Dubbo框架說明
背景
服務治理
架構
調用關系:
1. 服務容器負責啟動,加載,運行服務提供者。
2. 服務提供者在啟動時,向注冊中心注冊自己提供的服務。
3. 服務消費者在啟動時,向注冊中心訂閱自己所需的服務。
4. 注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數據給消費者。
5. 服務消費者,從提供者地址列表中,基于軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。
6. 服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心。
總結
以上是生活随笔為你收集整理的【SSM分布式架构电商项目-32】Dubbo入门的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。