dubbo環境搭建

剛剛開始接觸dubbo,也是百度了很多資料學習瞭解。後面也是親自動手實現了一下。現在就是把動手過程記錄下來。因爲是學習瞭解,目前都是基於windows環境下的搭建。雖然有點low。但是也是學習入門先。

dubbo介紹之類的就不說了,百度也是大把資料出來。

現在開始說一下搭建過程:

一.先搭建 zookeeper 註冊中心環境

1.1 下載 zookeeper

     官網:http://www.apache.org/dyn/closer.cgi/zookeeper/ 

     我現在下載的是zookeeper-3.4.8。當然可以下載其他版本

1.2 配置 zookeeper

     下載之後解壓,解壓完之後在conf目錄有個有 zoo_sample.cfg 和 log4j.properties兩個文件,然後我們把zoo_sample.cfg文件改名:zoo.cfg,因爲 Zookeeper 在啓動時會找這個文件作爲默認配置文件。重命名完成之後打開文件,修改一處地方:dataDir=E:\\2016_pdx_Study\\dubbo\\zookeeper-3.4.8\\datadata是新建的文件夾

dataDir:Zookeeper 保存數據的目錄,默認情況下,Zookeeper 將寫數據的日誌文件也保存在這個目錄裏。

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

clientPort:這個端口就是客戶端連接 Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。

1.3 運行

打開bin文件下面執行 zkServer.cmd。一直打開着不用關閉


    到此Zookeeper環境搭建OK。

二。搭建dubbo-admin管理平臺

dubbo-admin主要是對消費者跟提供者進行管理。

2.1下載

下載dubbo-admin-2.5.4-SNAPSHOT.war。後面我會打包上傳,或者百度一下都可以搜到

2.2 安裝部署

把下載下來的dubbo-admin-2.5.4-SNAPSHOT.war放在tomcat的webapps目錄下。就像我們平時部署項目一樣就行了。然後啓動tomcat。就會生成dubbo-admin-2.5.4-SNAPSHOT應用。

然後在dubbo-admin-2.5.4-SNAPSHOT\WEB-INF  目錄下有個dubbo.properties文件

dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
這個是用戶名跟密碼。

2.3 啓動

先啓動zookeeper,然後在啓動tomcat,然後訪問http://localhost:8082/dubbo-admin-2.5.4-SNAPSHOT

輸入用戶名密碼:root/root

就可以進入主界面啦!



到此環境都搭建ok!


三。創建項目

3.1 創建服務提供者

我現在用的是myeclipse創建maven項目dubbo-provider項目

創建完之後引入相關的依賴

<dependency>  
          <groupId>com.alibaba</groupId>  
          <artifactId>dubbo</artifactId>  
          <version>2.5.3</version>  
          <exclusions>  
              <exclusion>  
                  <groupId>org.springframework</groupId>  
                  <artifactId>spring</artifactId>  
              </exclusion>  
          </exclusions>  
      </dependency>  
      <dependency>  
          <groupId>com.github.sgroschupf</groupId>  
          <artifactId>zkclient</artifactId>  
          <version>0.1</version>  
      </dependency>  
      <!-- Zookeeper 用於分佈式服務管理 -->
			<dependency>
				<groupId>org.apache.zookeeper</groupId>
				<artifactId>zookeeper</artifactId>
				<version>3.4.5</version>
			</dependency>
			<dependency>
				<groupId>com.101tec</groupId>
				<artifactId>zkclient</artifactId>
				<version>0.3</version>
			</dependency>
			<!-- Zookeeper 用於分佈式服務管理 end -->
      <!-- spring相關 -->  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-core</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-beans</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-context</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-jdbc</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-web</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-webmvc</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-aop</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-tx</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-orm</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-context-support</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-test</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-jms</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  

然後在src/main/java目錄下創建提供服務的接口ProviderService

package com.pdx.service;

public interface ProviderService {

	public String sayHello();
}
在創建實現類

package com.pdx.service.impl;

import com.pdx.service.ProviderService;

public class ProviderServiceImpl implements ProviderService{

	@Override
	public String sayHello() {
		return "hello dubbo!!";
	}

}
在application.xml文件裏面配置dubbo相關接口暴露

<?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://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx.xsd
        http://code.alibabatech.com/schema/dubbo  
        http://code.alibabatech.com/schema/dubbo/dubbo.xsd">   
    <!-- 具體的實現bean -->  
    <bean id="providerService" class="com.pdx.service.impl.ProviderServiceImpl" />  
    <!-- 提供方應用信息,用於計算依賴關係 -->  
    <dubbo:application name="provider"  /> 
    <!-- 使用zookeeper註冊中心暴露服務地址 -->  
    <dubbo:registry address="zookeeper://127.0.0.1:2181" />     
    <!-- 用dubbo協議在20880端口暴露服務 -->  
    <dubbo:protocol name="dubbo" port="29014" />  
    <!-- 聲明需要暴露的服務接口 -->  
    <dubbo:service interface="com.pdx.service.ProviderService" ref="providerService" />  
</beans> 

最後寫測試類測試,在src/test/java目錄下新建類:ProviderServiceTest

package com.pdx.service;

import java.io.IOException;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class ProviderServiceTest {

	public static void main(String[] args) {  
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(    
                new String[]{"application.xml"});    
        context.start();   
        System.out.println("服務提供者已註冊成功!!");    
        try {  
            System.in.read();
        } catch (IOException e) {         
            e.printStackTrace();  
        }    
    }  
}
最後運行類就可以看到啓動了。哈哈!


然後刷新一下在dubbo-admin管理中心下搜索



3.2保持運行不動;不要關閉這個類。然後我們在新建一個消費者類dubbo-consumer

創建方法跟上面一樣沒有什麼大的變化。然後一樣的引依賴

<!-- 添加provider的jar包 -->  
      <dependency>  
          <groupId>com.pdx</groupId>  
          <artifactId>dubbo-provider</artifactId>  
          <version>0.0.1-SNAPSHOT</version>  
      </dependency>  
  
  <dependency>  
          <groupId>com.alibaba</groupId>  
          <artifactId>dubbo</artifactId>  
          <version>2.5.3</version>  
          <exclusions>  
              <exclusion>  
                  <groupId>org.springframework</groupId>  
                  <artifactId>spring</artifactId>  
              </exclusion>  
          </exclusions>  
      </dependency>  
      <dependency>  
          <groupId>com.github.sgroschupf</groupId>  
          <artifactId>zkclient</artifactId>  
          <version>0.1</version>  
      </dependency>  
      <!-- Zookeeper 用於分佈式服務管理 -->
			<dependency>
				<groupId>org.apache.zookeeper</groupId>
				<artifactId>zookeeper</artifactId>
				<version>3.4.5</version>
			</dependency>
			<dependency>
				<groupId>com.101tec</groupId>
				<artifactId>zkclient</artifactId>
				<version>0.3</version>
			</dependency>
			<!-- Zookeeper 用於分佈式服務管理 end -->
      <!-- spring相關 -->  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-core</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-beans</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-context</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-jdbc</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-web</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-webmvc</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-aop</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-tx</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-orm</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-context-support</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-test</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  
      <dependency>  
          <groupId>org.springframework</groupId>  
          <artifactId>spring-jms</artifactId>  
          <version>${spring.version}</version>  
      </dependency>  

這個跟上面沒有多大區別;唯一的區別就是添加了dubbo-provider的jar依賴

<dependency>  
          <groupId>com.pdx</groupId>  
          <artifactId>dubbo-provider</artifactId>  
          <version>0.0.1-SNAPSHOT</version>  
      </dependency>  
第二步,在src/test/java目錄先創建測試類ConsumerServiceTest

package com.pdx.service;

import java.io.IOException;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class ConsumerServiceTest {

	public static void main(String[] args) {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
                new String[] { "application.xml" });
        context.start();
        ProviderService testService = (ProviderService) context.getBean("providerService");
        System.out.println(testService.sayHello());
        try {
            System.in.read();
        } catch (IOException e) {       
            e.printStackTrace();
        }  

    }
}

運行就可以看到結果


在dubbo-admin管理中心在點擊消費者





到此OK!!!基本的簡單項目跑了一下。

這個我也是百度搜索學習的。也是初步學習了一下,還有很多不足或者說得不對的;歡迎指正啦!!

下載的地址:http://download.csdn.net/detail/pengdingxu10/9655658




   



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章