天天看點

dubbo分布式開發dubbo

dubbo

以下較為粗略的寫出了dubbo的基本使用,其中dubbo基本配置完後,具體的增強措施,檢視官方的文檔配置便可實作。底層代碼依舊可以采用原來架構,但配置環境需要在spring中。其作用概括說就是讓兩個不同的伺服器能互相調用方法傳遞資料

使用RPC技術讓2個伺服器互相可以調用方法

如何實作

  • 基于tcp協定的RPC

    1.序列化和反序列化

    2.Socker

    3.反射

  • 基于http協定的RPC
    1. Xm
    2. Json
    3. http

    整體架構

    1. Provide:提供服務的服務提供方(生存者)
    2. Consumer:調用遠端服務的服務消費方(消費者)
    3. Registry:服務注冊與發現的注冊中心
    4. Monitor:統計服務調用次數和調用時間的監控中心
    5. 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

繼續閱讀