zookeeper,dubbo,dubbo admin

zookeeper算法

1. 分佈式協調服務:咱們的程序運行在不一樣的機器上,這些機器可能位於同一個機架,同一個機房又或不一樣的數據中心。在這樣的環境中,咱們要實現協調該怎麼辦?那麼這就是分佈式協調服務要乾的事情。緩存

2. Zookeeper能夠幹什麼:配置管理,名字服務,分佈式鎖,集羣管理服務器

3. Zookeeper的配置:clientPort,dataDir,dataLogDir,tickTime,maxClientCnxns ,minSessionTimeout, maxSessionTimeout,autopurge.snapRetainCount,autopurge.purgeInterval()app

    配置-myid:在dataDir裏會放置一個myid文件,裏面就一個數字,用來惟一標識這個服務。這個id是很重要的,必定要保證整個集羣中惟一。負載均衡

    zookeeper會根據這個id來取出server.x上的配置。好比當前id爲1,則對應着zoo.cfg裏的server.1的配置。框架

    下面是集羣中服務的列表分佈式

    server.1=127.0.0.1:20881:30881ide

    server.2=127.0.0.1:20882:30882性能

    server.3=127.0.0.1:20883:30883測試

    在上面的例子中,我把三個zookeeper服務放到同一臺機器上。上面的配置中有兩個TCP port。後面一個是用於Zookeeper選舉用的,而前一個是

    Leader和Follower或Observer交換數據使用的。咱們還注意到server.後面的數字。這個就是myid(關於myid是什麼下一節會介紹)。

4. Zookeeper leader選舉:

5. Zookeeper client:create,delete(須要version,樂觀鎖),exists,setData/getData,getChildren ,sync zookeeper

 

 

Dubbo

1. Dubbo是什麼

    Dubbo是一個分佈式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。簡單的說,dubbo就是個服務框架,若是沒有分佈式的需求,實際上是不須要用的,只有在分佈式的時候,

    纔有dubbo這樣的分佈式服務框架的需求,而且本質上是個服務調用的東東,說白了就是個遠程服務調用的分佈式框架

    其核心部分包含:  

    1).遠程通信: 提供對多種基於長鏈接的NIO框架抽象封裝,包括多種線程模型,序列化,以及「請求-響應」模式的信息交換方式。

    2).集羣容錯: 提供基於接口方法的透明遠程過程調用,包括多協議支持,以及軟負載均衡,失敗容錯,地址路由,動態配置等集羣支持。

    3).自動發現: 基於註冊中心目錄服務,使服務消費方能動態的查找服務提供方,使地址透明,使服務提供方能夠平滑增長或減小機器。

2. Dubbo能作什麼?

    1).透明化的遠程方法調用,就像調用本地方法同樣調用遠程方法,只需簡單配置,沒有任何API侵入。

    2).軟負載均衡及容錯機制,可在內網替代F5等硬件負載均衡器,下降成本,減小單點。

    3).服務自動註冊與發現,再也不須要寫死服務提供方地址,註冊中心基於接口名查詢服務提供者的IP地址,而且可以平滑添加或刪除服務提供者。

3. Dubbo採用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring加載Dubbo的配置便可,Dubbo基於Spring的Schema擴展進行加載。

4. 調用關係說明:

    1).服務容器負責啓動,加載,運行服務提供者。

    2).服務提供者在啓動時,向註冊中心註冊本身提供的服務。

    3).服務消費者在啓動時,向註冊中心訂閱本身所需的服務。

    4).註冊中心返回服務提供者地址列表給消費者,若是有變動,註冊中心將基於長鏈接推送變動數據給消費者。

    5).服務消費者,從提供者地址列表中,基於軟負載均衡算法,選一臺提供者進行調用,若是調用失敗,再選另外一臺調用。

    6).服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心。

5. 連通性,健狀性,伸縮性,升級性

6. dubbo基本配置:

    <dubbo:service/> 服務配置,用於暴露一個服務,定義服務的元信息,一個服務能夠用多個協議暴露,一個服務也能夠註冊到多個註冊中心。

    eg、<dubbo:service ref="demoService" interface="com.unj.dubbotest.provider.DemoService" />

    <dubbo:reference/> 引用服務配置,用於建立一個遠程服務代理,一個引用能夠指向多個註冊中心。

    eg、<dubbo:reference id="demoService" interface="com.unj.dubbotest.provider.DemoService" />

    <dubbo:protocol/> 協議配置,用於配置提供服務的協議信息,協議由提供方指定,消費方被動接受。

    eg、<dubbo:protocol name="dubbo" port="20880" />

    <dubbo:application/> 應用配置,用於配置當前應用信息,無論該應用是提供者仍是消費者。

    eg、<dubbo:application name="xixi_provider" />

    <dubbo:application name="hehe_consumer" />

    <dubbo:module/> 模塊配置,用於配置當前模塊信息,可選。

    <dubbo:registry/> 註冊中心配置,用於配置鏈接註冊中心相關信息。

    eg、<dubbo:registry address="zookeeper://192.168.2.249:2181" />

    <dubbo:monitor/> 監控中心配置,用於配置鏈接監控中心相關信息,可選。

    <dubbo:provider/> 提供方的缺省值,當ProtocolConfig和ServiceConfig某屬性沒有配置時,採用此缺省值,可選。

    <dubbo:consumer/> 消費方缺省配置,當ReferenceConfig某屬性沒有配置時,採用此缺省值,可選。

    <dubbo:method/> 方法配置,用於ServiceConfig和ReferenceConfig指定方法級的配置信息。

    <dubbo:argument/> 用於指定方法參數配置。

7. 服務調用超時設置,啓動時檢查 ,訂閱,回聲測試(測試服務是否可用),延遲鏈接,令牌驗證,日誌適配,配置Dubbo緩存文件

8. 配置文件: dubbo.properties

dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.admin.root.password=admin dubbo.admin.guest.password=guest

   登錄:輸入用戶名:admin,密碼:admin,結果打死都登錄不上。

   這個時候,請仔細看配置文件,文件配置的意思是:

   用戶名:root,密碼:admin 
   root.password=admin

   用戶名:guest,密碼:guest 
   guest.password=admin

   轉自:http://blog.csdn.net/tengdazhang770960436/article/details/51781480

 

 

dubbo admin

1. dubbo admin 能夠手動刷新。默認狀況下,關閉某個接口,admin上通常會正常消失。

2. 接口的狀態分爲:正常,沒有消費者,沒有提供者。以此能夠看看註冊中心有沒有對應的消費(提供)者。

3. 服務治理中的服務,對應全部註冊中心的服務

    服務治理中的應用,應用的名稱對應dubbo:application中的name

    服務治理中的機器,對應註冊中心對應機器

    服務治理中的提供者,對應註冊中心提供服務的接口

    服務治理中的消費者,對應註冊中心須要消費的接口  

    服務治理中的路由規則,彷佛能夠操做更細的規則(白名單?試着操做,沒法保存規則)

    服務治理中的動態配置,未知

    服務治理中的訪問控制,能夠設置黑名單,禁用某些服務器調用指定接口

    服務治理中的權重調節,未知

    服務治理中的負載均衡,未知

    服務治理中的負責人,未知

4. 能夠搜索服務名,應用名,機器IP。注意,須要選擇對應標籤。

相關文章
相關標籤/搜索