皮杜妮

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            887 Posts :: 3 Stories :: 7 Comments :: 0 Trackbacks

          常用鏈接

          留言簿(1)

          我參與的團隊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜


          dubbo是阿里巴巴的框架,主要有4部分組成,1 服務臺提供方, 2 服務注冊方 3 服務消費分 4 監控部分

          1. 注冊方一般用zookeeper, 先下載安裝,啟動zkservece.cmd 會報錯,需要修改配置文件 zoo.cfg. 路徑中conf/下,,沒有自己加一個。
          正常啟動

          2. 編寫一個服務器端, 創建maven項目

          pom.xml文件

          <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
            <modelVersion>4.0.0</modelVersion>
            <groupId>DubboService</groupId>
            <artifactId>DubboService</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <build/>
                    <dependencies>
                      <dependency>
                          <groupId>junit</groupId>
                          <artifactId>junit</artifactId>
                          <version>3.8.1</version>
                          <scope>test</scope>
                      </dependency>
                      <dependency>
                          <groupId>commons-logging</groupId>
                          <artifactId>commons-logging</artifactId>
                          <version>1.1.1</version>
                      </dependency>
                      <dependency>
                          <groupId>com.alibaba</groupId>
                          <artifactId>dubbo</artifactId>
                          <version>2.5.3</version>
                      </dependency>
                      <dependency>
                          <groupId>org.javassist</groupId>
                          <artifactId>javassist</artifactId>
                          <version>3.18.1-GA</version>
                      </dependency>
                      <dependency>
                          <groupId>log4j</groupId>
                          <artifactId>log4j</artifactId>
                          <version>1.2.15</version>
                          <exclusions>
                              <exclusion>
                                  <groupId>com.sun.jdmk</groupId>
                                  <artifactId>jmxtools</artifactId>
                              </exclusion>
                              <exclusion>
                                  <groupId>com.sun.jmx</groupId>
                                  <artifactId>jmxri</artifactId>
                              </exclusion>
                              <exclusion>
                                  <artifactId>jms</artifactId>
                                  <groupId>javax.jms</groupId>
                              </exclusion>
                              <exclusion>
                                  <artifactId>mail</artifactId>
                                  <groupId>javax.mail</groupId>
                              </exclusion>
                          </exclusions>
                      </dependency>
                      <dependency>
                          <groupId>org.springframework</groupId>
                          <artifactId>spring</artifactId>
                          <version>2.5.6.SEC03</version>
                      </dependency>
                      <dependency>
                          <groupId>org.slf4j</groupId>
                          <artifactId>slf4j-api</artifactId>
                          <version>1.7.6</version>
                      </dependency>
                      <dependency>
                          <groupId>org.slf4j</groupId>
                          <artifactId>slf4j-log4j12</artifactId>
                          <version>1.6.1</version>
                      </dependency>
                      <dependency>
                          <groupId>org.apache.zookeeper</groupId>
                          <artifactId>zookeeper</artifactId>
                          <version>3.4.5</version>
                          <type>pom</type>
                      </dependency>
                      <dependency>
                          <groupId>com.101tec</groupId>
                          <artifactId>zkclient</artifactId>
                          <version>0.4</version>
                      </dependency>
                  </dependencies>
                <repositories>
                  <repository>
                      <id>spring-snapshots</id>
                      <url>http://repo.spring.io/libs-snapshot</url>
                  </repository>
              </repositories>   
              
          </project>

          config/applicationProvider.xml  配置文件,里面定義了注冊的bean, 和zookeeper的地址
          <?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="hello-world" />
              <!-- 注冊地址 -->
               <dubbo:registry address="zookeeper://localhost:2181" />
               <dubbo:protocol name="dubbo" port="20880" />
                  <!-- Service interface Concurrent Control -->
                  <dubbo:service interface="cn.zto.service.IProcessData"    ref="demoService" executes="10" />
                  <!-- designate implementation -->
                  <bean id="demoService" class="cn.zto.service.impl.ProcessDataImpl" />
              </beans>
          IProcessData定義接口及實現類
          package cn.zto.service.impl;

          import cn.zto.service.IProcessData;
          public class ProcessDataImpl implements IProcessData {
          public String hello(String name) {
              System.out.println(name);
              return "hello : " + name;
          }}

          package cn.zto.service;

          public interface IProcessData {
              public String hello(String name);
          }
          啟動服務
          package cn.zto.app;

          import org.springframework.context.support.ClassPathXmlApplicationContext;
          public class Main {
          public static void main(String[] args) throws Exception {
               ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(    new String[] {
          "config/applicationProvider.xml"
          });
          context.start();
          System.out.println("按任意鍵退出");
          System.in.read();
          }}
          運行起來。如下
          log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
          log4j:WARN Please initialize the log4j system properly.
          按任意鍵退出



          下面再建一個client程序
          pom.xml
          <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
            <modelVersion>4.0.0</modelVersion>
            <groupId>DubboClient</groupId>
            <artifactId>DubboClient</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <build/>
           
                    <dependencies>
                      <dependency>
                          <groupId>junit</groupId>
                          <artifactId>junit</artifactId>
                          <version>3.8.1</version>
                          <scope>test</scope>
                      </dependency>
                      <dependency>
                          <groupId>commons-logging</groupId>
                          <artifactId>commons-logging</artifactId>
                          <version>1.1.1</version>
                      </dependency>
                      <dependency>
                          <groupId>com.alibaba</groupId>
                          <artifactId>dubbo</artifactId>
                          <version>2.5.3</version>
                      </dependency>
                      <dependency>
                          <groupId>org.javassist</groupId>
                          <artifactId>javassist</artifactId>
                          <version>3.18.1-GA</version>
                      </dependency>
                      <dependency>
                          <groupId>log4j</groupId>
                          <artifactId>log4j</artifactId>
                          <version>1.2.15</version>
                          <exclusions>
                              <exclusion>
                                  <groupId>com.sun.jdmk</groupId>
                                  <artifactId>jmxtools</artifactId>
                              </exclusion>
                              <exclusion>
                                  <groupId>com.sun.jmx</groupId>
                                  <artifactId>jmxri</artifactId>
                              </exclusion>
                              <exclusion>
                                  <artifactId>jms</artifactId>
                                  <groupId>javax.jms</groupId>
                              </exclusion>
                              <exclusion>
                                  <artifactId>mail</artifactId>
                                  <groupId>javax.mail</groupId>
                              </exclusion>
                          </exclusions>
                      </dependency>
                      <dependency>
                          <groupId>org.springframework</groupId>
                          <artifactId>spring</artifactId>
                          <version>2.5.6.SEC03</version>
                      </dependency>
                      <dependency>
                          <groupId>org.slf4j</groupId>
                          <artifactId>slf4j-api</artifactId>
                          <version>1.7.6</version>
                      </dependency>
                      <dependency>
                          <groupId>org.slf4j</groupId>
                          <artifactId>slf4j-log4j12</artifactId>
                          <version>1.6.1</version>
                      </dependency>
                      <dependency>
                          <groupId>org.apache.zookeeper</groupId>
                          <artifactId>zookeeper</artifactId>
                          <version>3.4.5</version>
                          <type>pom</type>
                      </dependency>
                      <dependency>
                          <groupId>com.101tec</groupId>
                          <artifactId>zkclient</artifactId>
                          <version>0.4</version>
                      </dependency>
                  </dependencies>
           
           
                <repositories>
                  <repository>
                      <id>spring-snapshots</id>
                      <url>http://repo.spring.io/libs-snapshot</url>
                  </repository>
              </repositories>   
              
          </project>


          注冊的接口類,和要服務器端的包路徑一致

          package cn.zto.service;

          public interface IProcessData {
              public String hello(String name);
          }

          客戶端的配置文件,接口定義及zookeeper的地址
          <?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="consumer-of-helloworld-app" />
              <!-- 注冊地址 -->
               <dubbo:registry address="zookeeper://localhost:2181"/>
               <dubbo:consumer timeout="5000" />
               <dubbo:reference id="demoService" interface="cn.zto.service.IProcessData"/>
          </beans>

          客戶端啟動
          package cn.zto.consumer;
          import org.springframework.context.support.ClassPathXmlApplicationContext;

          import cn.zto.service.IProcessData;

          public class ConsumerThd{
              
              
              
          public void sayHello(){
          ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(    
          new String[] {"config/applicationProvider.xml"});
          context.start();
          IProcessData demoService=(IProcessData) context.getBean("demoService");
          System.out.println(demoService.hello("world"));
          }


          public static void main(String args[]){
              new ConsumerThd().sayHello();
          }



          }


          運行結果如下

          log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
          log4j:WARN Please initialize the log4j system properly.
          hello : world


          這樣就基本實現了dubbo的框架,很簡單吧




          posted on 2016-05-04 17:03 豬眼睛 閱讀(213) 評論(0)  編輯  收藏 所屬分類: Spring
          主站蜘蛛池模板: 明光市| 米林县| 新野县| 冷水江市| 夏邑县| 渭南市| 东山县| 茌平县| 富民县| 蒲江县| 翼城县| 林西县| 望奎县| 南阳市| 仁化县| 鄱阳县| 莒南县| 江阴市| 金坛市| 旅游| 新宾| 炎陵县| 巩义市| 平顺县| 北海市| 旅游| 桂平市| 大名县| 汉寿县| 迁西县| 曲靖市| 灵石县| 兴化市| 皋兰县| 望都县| 漠河县| 宿松县| 闽清县| 定陶县| 福清市| 池州市|