dubbo
以下較為粗略的寫出了dubbo的基本使用,其中dubbo基本配置完後,具體的增強措施,檢視官方的文檔配置便可實作。底層代碼依舊可以采用原來架構,但配置環境需要在spring中。其作用概括說就是讓兩個不同的伺服器能互相調用方法傳遞資料
使用RPC技術讓2個伺服器互相可以調用方法
如何實作
-
基于tcp協定的RPC
1.序列化和反序列化
2.Socker
3.反射
- 基于http協定的RPC
-
- Xm
- Json
- http
整體架構
- Provide:提供服務的服務提供方(生存者)
- Consumer:調用遠端服務的服務消費方(消費者)
- Registry:服務注冊與發現的注冊中心
- Monitor:統計服務調用次數和調用時間的監控中心
- Container:服務運作容器
如何使用dubbo
在povide伺服器中
1.需要在spring環境中進行xml中配置,需要jar包com.alibaba.dubbo
<dubbo:application name=”xxx(自定義)”/> <dubbo:registry address=”” <bean id=”xxx” class=”(實作類)”/> <dubbo:service interface=”xxxx(業務接口)” ref=”xxx(接口實作)” register=”(注冊中心)”
在consumer伺服器中
2.需要在spring環境中進行xml中配置
配置完成使用dubbo标簽,需要jar包com.alibaba.dubbo
<dubbo:application name=”xxx(自定義)”/> <bean id=”xxx” class=”(實作類)”/> <dubbo:reference id=”xxx” interface=”xxxx(業務接口)” url=”xxx” register=”(注冊中心)”
其中注冊中心有很多,可自行搜尋
而zookeeper為官方推薦注冊中心
詳細搭建步驟自行搜尋下載下傳zookeeper
搭建完成後
Java中導入zkclient的jar包和zookeeper的jar包
再修改
<dubbo:registry address=””的address位址
其他注冊中心類似操作
其他
Dubbo還有些常用協定可以自行了解
Dubbo可設定多個<dubbo:reference id=”xxx” interface=”xxxx(業務接口)” url=”xxx” register=”(注冊中心) vesion=’’”版本不同,可以用來實作版本在上線的環境下更新
Dubbo還可以服務分組,統一接口不同的實作使用ground
<dubbo:service interface=”xxxx(業務接口)” ref=”xxx(接口實作)” register=”(注冊中心) ground=“(實作方法)””
分布式開發模式
諾幹個接口提供者+諾幹個接口實作提供者
諾幹個消費者
令牌驗證
:防止消費者繞過注冊中心通路提供者,提高安全性
配置:
《随機token令牌,使用UUID生成》
<dubbo:service interface=”(接口)” token=”true”/>
<固定token令牌,相當于密碼>
<dubbo:service interface=”接口” token=”密碼”>
Dubbo配置覆寫政策
每個配置都有的配置功能作用分類:
1.服務發現
2.服務治理
3.性能調優
覆寫配置,消費端優先服務端
覆寫政策:服務提供方配置,通過URL經由注冊中心傳遞給消費端
建議由服務端設定 逾時,因為一個方法需要執行多長時間,服務提供方更清楚,如果一個消費端同時引入多個服務,就不需要關心每個服務端的逾時時間
Dubbo常用标簽:
1.dubbo:service:用于服務提供者暴露自己的服務
2.dubbo:reference:用于配置服務消費端引用服務
3.dubbo:protocol:用于配置服務提供者的通路協定
4.dubbo:registry:用于配置 注冊中心
5.dubbo:application:用于配置應用資訊
6.dubbo:provider:用于服務提供者的預設值,即設定service,protocol标簽的預設值
7.dubbo:comsumer:用于配置消費端的預設值,即reference的預設值
注:标簽裡還有很多各種各樣的配置屬性,可參看文檔進行選擇
Dubbo管控台的部署與使用:
dubbo有自己的背景網頁來管理項目的各種配置,配置後可使用
部署環境:lunx
Jdk1.8
Tomcat8.5
Dubbo-admin-2.3.5.war
具體配置方法自行搜尋
Zookeeper叢集
舉例:
步驟:下載下傳安裝3個zookeeper
3個zookeeper中的conf目錄下的zoo_simple.cfg複制一份,改為zoo.cfg并配置
dataDir=/opt/cluster/apache-activemq/zkdatal/
clientPort=2181
Server.1=localhost:2888:3888
Server.2=localhost:2889:3889
Server.3=localhost:2890:3890
其中2888端口是zookeeper服務之間通訊的端口,3888是與其他應用程式通訊的端口
建立三個dataDir目錄
/opt/cluster/apache-activemq/zkdatal/
/opt/cluster/apache-activemq/zkdatal2/
/opt/cluster/apache-activemq/zkdatal3/
每個目錄中都建立一個名為myid的檔案,3個檔案的内容分别寫1,2,3
這個1,2,3是對應前面server1,2,3
Dubbo配置:
Zookeeper://10.160.2.11:2181?Backup=10.160.2.11:2182.10.160.2.11:2183