1. 程式人生 > >微服務之Dubbo,Zookeeper

微服務之Dubbo,Zookeeper

RPC:

RPC(Remote Procedure Call)—遠端過程呼叫,它是一種通過網路從遠端計算機程式上請求服務,而不需要了解底層網路技術的協議。RPC協議假定某些傳輸協議的存在,如TCP或UDP,為通訊程式之間攜帶資訊資料。在OSI網路通訊模型中,RPC跨越了傳輸層和應用層。RPC使得開發包括網路分散式多程式在內的應用程式更加容易。
RPC採用客戶機/伺服器模式。請求程式就是一個客戶機,而服務提供程式就是一個伺服器。首先,客戶機呼叫程序傳送一個有程序引數的呼叫資訊到服務程序,然後等待應答資訊。在伺服器端,程序保持睡眠狀態直到呼叫資訊到達為止。當一個呼叫資訊到達,伺服器獲得程序引數,計算結果,傳送答覆資訊,然後等待下一個呼叫資訊,最後,客戶端呼叫程序接收答覆資訊,獲得程序結果,然後呼叫執行繼續進行。
有多種 RPC模式和執行。最初由 Sun 公司提出。IETF ONC 憲章重新修訂了 Sun 版本,使得 ONC RPC 協議成為 IETF 標準協議。現在使用最普遍的模式和執行是開放式軟體基礎的分散式計算環境(DCE)。

工作原理編輯:

執行時,一次客戶機對伺服器的RPC呼叫,其內部操作大致有如下十步:
1.呼叫客戶端控制代碼;執行傳送引數
2.呼叫本地系統核心傳送網路訊息
3.訊息傳送到遠端主機
4.伺服器控制代碼得到訊息並取得引數
5.執行遠端過程
6.執行的過程將結果返回伺服器控制代碼
7.伺服器控制代碼返回結果,呼叫遠端系統核心
8.訊息傳回本地主機
9.客戶控制代碼由核心接收訊息
10.客戶接收控制代碼返回的資料

Dubbo是微服務,服務是service
在這裡插入圖片描述

把controller和service放在一起的缺點
1,不容易定位bug
2,不容易擴充套件
3,不能單獨釋出

分散式優點
1,容易定位bug
2,容易擴充套件
3,能單獨釋出

分散式實現:
在這裡插入圖片描述
分析:
在這裡插入圖片描述

2.3.設計
2.3.1.Rpc server
1.Maven quick start
2.cartService
3.cartServiceImpl
4.providerMain

2.3.2.Rpc client
1.maven quick start
2.cartService
3.CartController.invoke 測試
4.Invoke中聯網 測試

實現:
在這裡插入圖片描述

RPC總結:

在這裡插入圖片描述

Zookeeper:

在這裡插入圖片描述

安裝Zookeeper:

解壓壓縮檔案。建立資料夾data log

[root@iZwz9c6jlipu33po7lw2kgZ
zookeeper-3.4.8]# tar -zxvf zookeeper-3.4.8.tar.gz [root@iZwz9c6jlipu33po7lw2kgZ zookeeper-3.4.8]# mkdir data log

開啟資料夾:

cd  /usr/local/src/zookeeper/zookeeper-3.4.8/conf

更改檔名:

[root@iZwz9c6jlipu33po7lw2kgZ conf]# mv zoo_sample.cfg zoo.cfg

12行修改dataDir,增加dataLogDir

dataDir=/usr/local/src/zookeeper-3.4.8/data
dataLogDir=/usr/local/src/zookeeper-3.4.8/log

在這裡插入圖片描述

啟動zookeeper伺服器:

在/usr/local/src/zookeeper/zookeeper-3.4.8/bin 開啟資料夾

指令:

Redis-server redis-cli
zkServer.sh zkCli.sh

[root@iZwz9c6jlipu33po7lw2kgZ bin]# sh zkServer.sh start
//啟動zookeeper

在這裡插入圖片描述

進入zookeeper客戶端:

[root@iZwz9c6jlipu33po7lw2kgZ bin]# sh zkCli.sh

在這裡插入圖片描述

列出註冊的服務:

[zk: localhost:2181(CONNECTED) 0] ls /

在這裡插入圖片描述

退出:

[zk: localhost:2181(CONNECTED) 1] quit

在這裡插入圖片描述

Dubbo案例:

在這裡插入圖片描述

步驟:

1.建立maven
2.依賴dubboInterface
3.依賴dubbo,zookeeper
4.實現類CartServiceImpl
5.applicationContext-provider.xml
6.啟動spring框架
7.執行zkCli.sh

Dubbo後臺管理,監控

不同jdk用不同的root.war
1.檢視windows 的jdk版本號
2.把對應的root.war拷貝到tomat/webapps
3.雙擊/bin/startup.bat啟動tomcat,tomcat會把root.war解壓到root中
4.修改root/web-inf/dubbo.properties
dubbo.registry.address=zookeeper://192.168.216.202:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
5.重啟tomcat
6.瀏覽器訪問http://localhost:8090

修改root/web-inf/dubbo.properties

在這裡插入程式碼片

在這裡插入圖片描述