Dubbo與Zookeeper、Spring整合使用
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【Windows】
2,在你執行啟動指令碼之前,還有幾個基本的配置項需要配置一下,Zookeeper的配置檔案在 conf 目錄下,這個目錄下有 zoo_sample.cfg 和 log4j.properties,你需要做的就是將zoo_sample.cfg 改名為 zoo.cfg,因為 Zookeeper在啟動時會找這個檔案作為預設配置檔案。下面詳細介紹一下,這個配置檔案中各個配置項的意義。
•tickTime:這個時間是作為Zookeeper 伺服器之間或客戶端與伺服器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳。
•dataDir:顧名思義就是 Zookeeper儲存資料的目錄,預設情況下,Zookeeper 將寫資料的日誌檔案也儲存在這個目錄裡。
•dataLogDir:顧名思義就是Zookeeper 儲存日誌檔案的目錄
•clientPort:這個埠就是客戶端連線Zookeeper 伺服器的埠,Zookeeper 會監聽這個埠,接受客戶端的訪問請求
配置好後,zookeeper會監聽本機的2181埠。
當這些配置項配置好後,你現在就可以啟動 Zookeeper 了,啟動後要檢查 Zookeeper 是否已經在服務,可以通過 netstat – ano 命令檢視是否有你配置的 clientPort 埠號在監聽服務。
二:服務提供者
定義服務介面:(該介面需單獨打包,在服務提供方和消費方共享)
[java] view plain copy print?- package com.unj.dubbotest.provider;
- import java.util.List;
- publicinterface DemoService {
-
String sayHello(String name);
- public List getUsers();
- }
在服務提供方實現介面:(對服務消費方隱藏實現)
[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;
- publicclass 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?- <?xmlversion="1.0"encoding="UTF-8"?>
- <beansxmlns="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
- ">
- <!-- 具體的實現bean -->
- <beanid="demoService"class="com.unj.dubbotest.provider.impl.DemoServiceImpl"/>
- <!-- 提供方應用資訊,用於計算依賴關係 -->
- <dubbo:applicationname="xs_provider"/>
- <!-- 使用multicast廣播註冊中心暴露服務地址 -->
- <!--<dubbo:registry address="multicast://224.5.6.7:1234" /> -->
- <!-- 使用zookeeper註冊中心暴露服務地址 --即zookeeper的所在伺服器ip地址和埠號 -->
- <dubbo:registryaddress="zookeeper://192.168.24.213:2181"/>
- <!-- 用dubbo協議在20880埠暴露服務 -->
- <dubbo:protocolname="dubbo"port="20880"/>
- <!-- 宣告需要暴露的服務介面 -->
- <dubbo:serviceinterface="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;
- publicclass Provider {
- publicstaticvoid main(String[] args) throws Exception {
- ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
- new String[] { "applicationContext.xml" });
- context.start();
- System.in.read(); // 為保證服務一直開著,利用輸入流的阻塞來模擬
- }
- }
三:服務消費者
通過Spring配置引用遠端服務:
[html] view plain copy print?- <?xmlversion="1.0"encoding="UTF-8"?>
- <beansxmlns="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:applicationname="hjy_consumer"/>
- <!-- 使用zookeeper註冊中心暴露服務地址 -->
- <!-- <dubbo:registry address="multicast://224.5.6.7:1234" /> -->
- <dubbo:registryaddress="zookeeper://192.168.24.213:2181"/>
- <!-- 生成遠端服務代理,可以像使用本地bean一樣使用demoService -->
- <dubbo:referenceid="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;
- publicclass Consumer {
- publicstaticvoid 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);
-
相關推薦
Dubbo與Zookeeper、Spring整合使用
Dubbo採用全spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring載入Dubbo的配置即可,Dubbo基於Spring的Schema擴充套件進行載入。 一:單機模式安裝zookeeper 1,下載zookeeper註冊中心,下載地
Dubbo與Zookeeper、SpringMVC整合和使用
描述 取出 有變 monit work 需要 可用 jqgrid png 互聯網的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,分布式服務架構以及流動計算架構勢在必行,Dubbo是一個分布式服務框架,在這種情況下誕生的。現在核心業務抽取出來,作為獨立的服務,使
Dubbo與Zookeeper、SpringMVC整合和使用(負載均衡、容錯)
網際網路的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,分散式服務架構以及流動計算架構勢在必行,Dubbo是一個分散式服務框架,在這種情況下誕生的。現在核心業務抽取出來,作為獨立的服務,使前端應用能更快速和穩定的響應。 第一:介紹Dubbo背景
Dubbo與Zookeeper、SpringMVC整合與使用(乾貨-理論放一遍。。。還未完結!)
Dubbo跟Zookeeper的簡介分享兩個不錯的連結: 說兩句樓主自己的看法,我覺得身為一個java開發,原來自然是瞭解的好,但是我覺得先看簡介不如從程式碼入手,然後去慢慢根據Demo,再結合簡介去理解這個流行框架的作用,好的那下面我們就整點乾的,或許我的配置還不是最
dubbo、zookeeper、Spring整合例項
在window中實現,記錄一下,防止備忘!簡單的配置!,只是防止自己忘記 1.到官網下載zookeeper,修改zoo_sample.cfg為zoo.cfg ,開啟增加dataDir=D:\\zookeeper-3.4.6\\datadataLogDir=D:\\zoo
Spring Boot 整合dubbo與zookeeper實現不同專案之間資料通過服務的傳遞
一、安裝zookeeper 1、下載路徑:http://mirrors.hust.edu.cn/apache/zookeeper/ 可以自己選擇版本進行下載(同時支援windows和linux) 2、目錄結構 3、修改conf下的配置檔案zoo.cfg 4、
用springBoot與dubbo、 zookeeper、redis整合做了一個彈幕網站
系統採用eclipse 開發,jdk1.7 ,資料庫採用的是mysql 原始碼下載地址:http://java.goodym.cn/html/1506574390095.html 網站預覽地址:http://malimali.goodym.cn
hue(5):Hue與zookeeper、oozie、Hbase整合
一、配置步驟 1.和zookeeper整合,修改hue.ini [zookeeper] [[clusters]] [[[default]]] # Zookeeper ensemble. Comma separated list of Host/
大數據入門第二十四天——SparkStreaming(2)與flume、kafka整合
RM ESS 依賴 mep sock flume-ng bject 整合 master 前一篇中數據源采用的是從一個socket中拿數據,有點屬於“旁門左道”,正經的是從kafka等消息隊列中拿數據! 主要支持的source,由官網得知如下:
hibernate5與hibernate3在spring整合時注意版本
java.lang.ClassCastException:org.springframework.orm.hibernate5.SessionHolder cannot be cast to org.springframework.orm.hibernate3.SessionHolder
Maven學習總結(2)-Maven的安裝與配置、eclipse整合Maven
Maven的安裝與配置 一、下載 官網地址:http://maven.apache.org/download.cgi 二、安裝 將下載好的壓縮包解壓到D盤 三、配置 1.環境變數配置 (1)在“環境變數-系統變數”中新增一行:變數名為MAVEN
高效能Java RPC框架Dubbo與zookeeper的使用
一. 什麼是RPC 1. RPC 協議(Remote Procedure Call Protocol) 遠端過程呼叫協議,它是一種通過網路從遠端計算機程式上請求服務,而不需要了解底層網路技術的協議。RPC 協議假定某些傳輸協議的存在,如 TCP 或 UDP,為
Mybatis二級快取、分散式二級快取、逆向工程、Spring 整合 --day06
Mybatis二級快取、分散式二級快取、逆向工程、Spring 整合 --day06 一、什麼是二級快取 上一篇介紹了一級快取,一級快取是一個sqlSession使用一個快取區域。那麼二級快取呢? 思考,多個sqlSession,但是每個sqlSession都執行 通過id查
RabbitMQ與java、Spring結合例項詳細講解
摘要:本文介紹了rabbitMq,提供瞭如何在Ubuntu下安裝RabbitMQ 服務的方法。最好以RabbitMQ與java、Spring結合的兩個例項來演示如何使用RabbitMQ。 一、rabbitMQ簡介 1.1、rabbitMQ的優點
一些分散式相關問題 (分散式快取、分散式鎖、分散式session、分散式事務、分散式搜尋、Dubbo與SpringCloud、分散式儲存)
一些分散式相關問題 (分散式快取、分散式鎖、分散式session、分散式事務、分散式搜尋、Dubbo與SpringCloud、分散式儲存MongoDB、高併發系統架構的組成) 分散式快取 專案中使用快取可以做到:高效能(把複雜耗時操作結果快取起來),高併發(高額的請求,在進入資料
Apollo客戶端監聽配置變化、Spring整合
配置釋出後,就能在客戶端獲取到了,以Java為例,獲取配置的示例程式碼如下。Apollo客戶端還支援和Spring整合,更多客戶端使用說明請參見Java客戶端使用指南和.Net客戶端使用指南。 Config config = ConfigService.getAppConf
Dubbo與Zookeeper監控中心monitor搭建
前面一篇介紹如何搭建dubbo管理後臺,這裡介紹是dubbo的監控系統。通過它可以看到你的服務呼叫的次數,併發數,呼叫時間等等關鍵資訊。下面看看我們如何搭建。1在我們通過之前的我們環境搭建中有下載地址https://github.com/dangdangdotcom/dubb
SSH開發環境的配置:web.xml、Spring整合hibernate和Spring整合Struts2
一、struts + hibernate + Spring整合開發包的匯入:從myeclipse整合開發工具中匯入或者從相應網站下載然後放在工程專案WEB-INF包下的lib包內即可。 二、本文主要說明開發包匯入後對配置檔案的配置。 三、相應配置檔案的配置:web.xml、
JAVAWEB開發之Spring詳解之——Spring的入門以及IOC容器裝配Bean(xml和註解的方式)、Spring整合web開發、整合Junit4測試
public class BeanFactory{ public UserService getUserService(){ // 反射+配置檔案 return Class.forName(類名).newInStance(); } } xml、pro
dubbo與zookeeper的互動-1
dubbo-admin學習總結:dubbo能從zookeeper註冊中心獲得服務資訊,是通過registryService,並且可以通過registryService對dubbo進行操作詳解:與服務註冊