日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

分布式云+dubbo+zookeeper+Springmvc整合

發(fā)布時間:2023/12/4 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式云+dubbo+zookeeper+Springmvc整合 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標準>>>

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

?

一:單機模式安裝zookeeper

?

?

1,下載zookeeper注冊中心,下載地址:http://www.apache.org/dyn/closer.cgi/zookeeper/?下載后解壓即可,進入E:\zookeeper-3.3.6\zookeeper-3.3.6\bin,

雙擊zkServer.cmd啟動注冊中心服務。

zkServer.sh【Linux】或zkServer.cmd【W(wǎng)indows】

?

2,在你執(zhí)行啟動腳本之前,還有幾個基本的配置項需要配置一下,Zookeeper的配置文件在 conf 目錄下,這個目錄下有 zoo_sample.cfg 和 log4j.properties,你需要做的就是將zoo_sample.cfg 改名為 zoo.cfg,因為 Zookeeper在啟動時會找這個文件作為默認配置文件。下面詳細介紹一下,這個配置文件中各個配置項的意義。

?

?

?

? ??tickTime:這個時間是作為Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發(fā)送一個心跳。

? ??dataDir:顧名思義就是 Zookeeper保存數(shù)據(jù)的目錄,默認情況下,Zookeeper 將寫數(shù)據(jù)的日志文件也保存在這個目錄里。

? ??dataLogDir:顧名思義就是Zookeeper 保存日志文件的目錄

? ??clientPort:這個端口就是客戶端連接Zookeeper 服務器的端口,Zookeeper 會監(jiān)聽這個端口,接受客戶端的訪問請求

?

配置好后,zookeeper會監(jiān)聽本機的2181端口。

當這些配置項配置好后,你現(xiàn)在就可以啟動 Zookeeper 了,啟動后要檢查 Zookeeper 是否已經(jīng)在服務,可以通過 netstat – ano 命令查看是否有你配置的 clientPort 端口號在監(jiān)聽服務。

?

二:服務提供者

?

定義服務接口:(該接口需單獨打包,在服務提供方和消費方共享)

?

[java]?view plain?copy

?print?

  • package?com.unj.dubbotest.provider;??
  • ??
  • import?java.util.List;??
  • ??
  • public?interface?DemoService?{??
  • ??
  • ????String?sayHello(String?name);??
  • ??
  • ????public?List?getUsers();??
  • ??
  • }??
  • ?

    ?

    在服務提供方實現(xiàn)接口:(對服務消費方隱藏實現(xiàn))

    [java]?view plain?copy

    ?print?

  • package?com.unj.dubbotest.provider.impl;??
  • ??
  • import?java.util.ArrayList;??
  • import?java.util.List;??
  • ??
  • import?com.unj.dubbotest.provider.DemoService;??
  • ??
  • public?class?DemoServiceImpl?implements?DemoService?{??
  • ??
  • ????public?String?sayHello(String?name)?{??
  • ????????return?"Hello?"?+?name;??
  • ????}??
  • ??
  • ????public?List?getUsers()?{??
  • ????????List?list?=?new?ArrayList();??
  • ????????User?u1?=?new?User();??
  • ????????u1.setName("hejingyuan");??
  • ????????u1.setAge(20);??
  • ????????u1.setSex("f");??
  • ??
  • ????????User?u2?=?new?User();??
  • ????????u2.setName("xvshu");??
  • ????????u2.setAge(21);??
  • ????????u2.setSex("m");??
  • ??
  • ??????????
  • ????????list.add(u1);??
  • ????????list.add(u2);??
  • ??????????
  • ????????return?list;??
  • ????}??
  • }??
  • ?

    ?

    用Spring配置聲明暴露服務:

    ?

    [html]?view plain?copy

    ?print?

  • <?xml?version="1.0"?encoding="UTF-8"?>??
  • <beans?xmlns="http://www.springframework.org/schema/beans"??
  • ????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"??
  • ????xsi:schemaLocation="http://www.springframework.org/schema/beans??
  • ????????http://www.springframework.org/schema/beans/spring-beans.xsd??
  • ????????http://code.alibabatech.com/schema/dubbo??
  • ????????http://code.alibabatech.com/schema/dubbo/dubbo.xsd??
  • ????????">??
  • ??
  • ????<!--?具體的實現(xiàn)bean?-->??
  • ????<bean?id="demoService"?class="com.unj.dubbotest.provider.impl.DemoServiceImpl"?/>??
  • ??
  • ????<!--?提供方應用信息,用于計算依賴關系?-->??
  • ????<dubbo:application?name="xs_provider"?/>??
  • ??
  • ????<!--?使用multicast廣播注冊中心暴露服務地址?-->??
  • ????<!--<dubbo:registry?address="multicast://224.5.6.7:1234"?/>?-->??
  • ??????
  • ????<!--?使用zookeeper注冊中心暴露服務地址?--即zookeeper的所在服務器ip地址和端口號?-->??
  • ????<dubbo:registry?address="zookeeper://192.168.24.213:2181"?/>??
  • ??
  • ????<!--?用dubbo協(xié)議在20880端口暴露服務?-->??
  • ????<dubbo:protocol?name="dubbo"?port="20880"?/>??
  • ??
  • ????<!--?聲明需要暴露的服務接口?-->??
  • ????<dubbo:service?interface="com.unj.dubbotest.provider.DemoService"??
  • ????????ref="demoService"?/>??
  • ??
  • </beans>??

  • ?

    ?

    ?

    ?

    加載Spring配置,啟動服務(或者將項目建為web項目,然后在web.xml中配置好spring的啟動,然后扔到tomcat中即可提供服務):

    ?

    [java]?view plain?copy

    ?print?

  • package?com.unj.dubbotest.provider.impl;??
  • ??
  • import?org.springframework.context.support.ClassPathXmlApplicationContext;??
  • ??
  • public?class?Provider?{??
  • ??
  • ????public?static?void?main(String[]?args)?throws?Exception?{??
  • ????????ClassPathXmlApplicationContext?context?=?new?ClassPathXmlApplicationContext(??
  • ????????????????new?String[]?{?"applicationContext.xml"?});??
  • ????????context.start();??
  • ????????System.in.read();?//?為保證服務一直開著,利用輸入流的阻塞來模擬??
  • ????}??
  • }??
  • ?

    ?

    ?

    三:服務消費者

    ?

    通過Spring配置引用遠程服務:

    ?

    [html]?view plain?copy

    ?print?

  • <?xml?version="1.0"?encoding="UTF-8"?>??
  • <beans?xmlns="http://www.springframework.org/schema/beans"??
  • ????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"??
  • ????xsi:schemaLocation="http://www.springframework.org/schema/beans??
  • ????????http://www.springframework.org/schema/beans/spring-beans.xsd??
  • ????????http://code.alibabatech.com/schema/dubbo??
  • ????????http://code.alibabatech.com/schema/dubbo/dubbo.xsd??
  • ????????">??
  • ??
  • ????<!--?消費方應用名,用于計算依賴關系,不是匹配條件,不要與提供方一樣?-->??
  • ????<dubbo:application?name="hjy_consumer"?/>??
  • ??
  • ????<!--?使用zookeeper注冊中心暴露服務地址?-->??
  • ????<!--?<dubbo:registry?address="multicast://224.5.6.7:1234"?/>?-->??
  • ????<dubbo:registry?address="zookeeper://192.168.24.213:2181"?/>??
  • ??
  • ????<!--?生成遠程服務代理,可以像使用本地bean一樣使用demoService?-->??
  • ????<dubbo:reference?id="demoService"??
  • ????????interface="com.unj.dubbotest.provider.DemoService"?/>??
  • ??
  • </beans>??
  • ?

    ?

    調用服務測試:

    [java]?view plain?copy

    ?print?

  • package?com.alibaba.dubbo.demo.pp;??
  • ??
  • import?java.util.List;??
  • ??
  • import?org.springframework.context.support.ClassPathXmlApplicationContext;??
  • ??
  • import?com.unj.dubbotest.provider.DemoService;??
  • ??
  • public?class?Consumer?{??
  • ??
  • ????public?static?void?main(String[]?args)?throws?Exception?{??
  • ????????ClassPathXmlApplicationContext?context?=?new?ClassPathXmlApplicationContext(??
  • ????????????????new?String[]?{?"applicationContext.xml"?});??
  • ????????context.start();??
  • ??
  • ????????DemoService?demoService?=?(DemoService)?context.getBean("demoService");??
  • ????????String?hello?=?demoService.sayHello("hejingyuan");??
  • ????????System.out.println(hello);??
  • ??
  • ????????List?list?=?demoService.getUsers();??
  • ????????if?(list?!=?null?&&?list.size()?>?0)?{??
  • ????????????for?(int?i?=?0;?i?<?list.size();?i++)?{??
  • ????????????????System.out.println(list.get(i));??
  • ????????????}??
  • ????????}??
  • ????????System.in.read();??
  • ????}??
  • ??
  • }??
  • ?

    測試結果:

    ?

    ?

    附:Dubbo的管理頁面

    ?

    需要下載:dubbo-admin-2.5.3的war包

    下載地址:http://download.csdn.net/detail/u013286716/7041185

    ?

    操作如下:

    ?

    1,替換掉tomcat/webapps下自帶的ROOT文件夾內容(即替換tomcat的啟動主頁),將下載的war包解壓到webapps/ROOT中,直接替換即可

    ?

    ? ?注意:jdk不要使用1.8,本次實驗使用的為1.6

    ?

    2,啟動tomcat,訪問ip:8080即可或者如果是本地的話使用localhost:8080

    輸入用戶名密碼,在E:\apache-tomcat-7.0.6-dubbo\webapps\ROOT\WEB-INF下的dubbo.properties文件中即可查看到,如:

    ?

    3,訪問?http://192.168.24.213:38080/

    核心技術:Maven,Springmvc mybatis shiro, Druid, Restful, Dubbo, ZooKeeper,Redis,FastDFS,ActiveMQ,Nginx?
    1.?????項目核心代碼結構截圖

    ?? 項目模塊依賴

    特別提醒:開發(fā)人員在開發(fā)的時候可以將自己的業(yè)務REST服務化或者Dubbo服務化

    2.????項目依賴介紹

    ???2.1?后臺管理系統(tǒng)、Rest服務系統(tǒng)、Scheculer定時調度系統(tǒng)依賴如下圖:
    ?



    ?????? 2.2?Dubbo獨立服務項目依賴如下圖:

    ?

    3.??項目功能部分截圖:

    ?

    ?

    ?

    ?

    ?

    ?


    ?

    zookeeper、dubbo服務啟動?

    ?


    ?

    dubbo管控臺?

    ?

    ?

    ?

    ?

    ?

    ?

    ?REST服務平臺

    ?

    ?

    ?

    ?

    ?

    轉載于:https://my.oschina.net/u/2603356/blog/713571

    總結

    以上是生活随笔為你收集整理的分布式云+dubbo+zookeeper+Springmvc整合的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。