JFinal 中使用 Dubbo —— 3 集羣

1. 集羣

1.1. 部署結構

下面是一個簡單的Cunsumer端服務器和Provider端服務器分別集羣的部署圖:前端

在我的開發機上,實現Cunsumer端服務器集羣難以實現,因此此Demo中只實現Provider端服務器集羣,Cunsumer端服務器集羣請讀者在有條件的狀況下自行實踐。java

 

1.2. 部署Dubbo管理控制檯

Dubbo管理控制檯的部署至關簡單,因爲開發機是Windows 7系統,因此此處也只介紹Windows環境下的部署過程。web

具體步驟以下:瀏覽器

  • 獨立出一個Tomcat環境,將「dubbo-admin-2.5.3.war」(文件放在JFinalDubboDemoApi項目)中全部的文件解壓到新Tomcat的「webapps\ROOT」下(原ROOT文件夾下的全部文件都要刪除)。服務器

  • 編輯「webapps\ROOT\WEB-INF\dubbo.properties」文件。架構

dubbo.registry.address=multicast://224.5.6.7:2181app

dubbo.admin.root.password=root負載均衡

dubbo.admin.guest.password=guest框架

修改第一個配置項就好,設置的值要與consumer.xmlprovider.xml中「dubbo:registry」標籤的「address」值相同。後面兩行分別是root用戶和guest用戶的密碼。webapp

提示,能夠是RedisDubboMultiCatZooKeeper之間的一種。

  • 啓動控制檯

    執行Tomcat.bat


1.3. 啓動Cunsumer和多個Provider

  • 首先按前面非集羣的方式分別啓動CunsumerProvider端的Tomcat

注意:加上Dubbo管理控制檯就是3Tomcat實例被啓動,不要讓端口衝突。

  • 用通常Java應用方式啓動多個Provider

到了這裏,Provider中建立啓動類的做用就顯現出來了。修改provider.xml中「dubbo:protocol」的「port」屬性爲「20881」(必定要確保修改後當即保存),右鍵點擊「DemoProviderApp.java」,以「Run As - Java Application」方式啓動Provider

 

重複上面,再次修改「port」屬性爲「20882」(再加1),啓動Provider

打開Java控制檯,能夠看到,2Tomcat應用和2個通常Java應用在運行:

 

再修改,再啓動。。。。。。隨讀者意,只要電腦能承受便可。

 

  • 訪問Dubbo管理控制檯

瀏覽器中打開「http://192.168.1.100:8080/」,輸入用戶名和密碼均爲「root」後,進入主頁面:

 

 

  • 查看提供者、消費者

點擊主頁中的菜單:

 

進入提供者信息頁:

 

能夠看到3提供者,它們的端口與啓動配置相同。讀者自行點擊消費者頁面,這裏就再也不浪費篇幅了。

 

  • Provider的集羣配置

點擊「負載均衡 新增」:

 

在打開的頁面中以下配置:

 

完成後可看到一條負載均衡配置:

 

細心的讀者可能就已經發現了,負載均衡配置竟然是細到每一個接口上的。沒錯,Dubbo不亞於Spring一類的存在,它有太多強大的東東沒有在此文中出現,等待各位去發掘。

咱們回頭再來看看Dubbo存在的背景,瞬間再次以爲高大上啊~~~

隨着互聯網的發展,網站應用的規模不斷擴大,常規的垂直應用架構已沒法應對,分佈式服務架構以及流動計算架構勢在必行,亟需一個治理系統確保架構有條不紊的演進。

·單一應用架構

· 當網站流量很小時,只需一個應用,將全部功能都部署在一塊兒,以減小部署節點和成本。

· 此時,用於簡化增刪改查工做量的 數據訪問框架(ORM) 是關鍵。

· 垂直應用架構

· 當訪問量逐漸增大,單一應用增長機器帶來的加速度愈來愈小,將應用拆成互不相干的幾個應用,以提高效率。

· 此時,用於加速前端頁面開發的 Web框架(MVC) 是關鍵。

· 分佈式服務架構

· 當垂直應用愈來愈多,應用之間交互不可避免,將核心業務抽取出來,做爲獨立的服務,逐漸造成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。

· 此時,用於提升業務複用及整合的 分佈式服務框架(RPC) 是關鍵。

· 流動計算架構

· 當服務愈來愈多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增長一個調度中心基於訪問壓力實時管理集羣容量,提升集羣利用率。

· 此時,用於提升機器利用率的 資源調度和治理中心(SOA) 是關鍵。

Ø 驗證負載均衡

驗證就簡單了,在JFinal DemoBlog List頁面中,頻繁刷新。能夠看到,每一個Provider服務都在刷新3次時出現操做Sql,說明輪詢方式的負載均衡策略已經起做用了。讀者可切換不一樣的負載均衡策略再試試看效果,條件好的還可用測試工具測試下性能,那感受,必定爽。

 

provider中經過配置方法也能夠實現集羣,而不用在Dubbo管理控制檯中手動設置,此問題就留給讀者本身摸索。筆者就再也不教了,授人以魚不如授人以漁,瞬間以爲本身好高大。。。。。。

 

1.4. 問題及解決方案

1.4.1. 多網卡問題

筆者的開發機多網卡時上遇到了問題,由於裝了VMWare,因此有了虛擬網卡,在使用集羣時,被IP不正確的問題搞得灰頭土臉。

不打算在這裏說明如何解決,由於不要期待他人幫你解決全部問題,不少問題得靠本身。。。。。。(好吧,筆者認可真實緣由是不想打字了)


源碼地址:

JFinalDubboDemoApi.zip

JFinalDubboDemoConsumer.zip

JFinalDubboDemoProvider.zip



Dubbo文檔:

Dubbo 的文檔鏡像


找了一陣沒找到dubbo-admin-2.5.3.war,由於太大沒有直接上傳到OSC。下面是CSDN分享的dubbo-admin-2.5.4.war,筆者沒驗證過,應該是可用的:

dubbo-admin-2.5.4.war


系列文章:

JFinal 中使用 Dubbo —— 1 改造JFinal Demo

JFinal 中使用 Dubbo —— 2 部署及運行

相關文章
相關標籤/搜索