1.Dubbo入门

Dubbo入门

这里的入门只尝试一下消费者去远程使用服务,暂时不使用服务注册中心。

一、编写服务提供者

          步骤一:创建Maven项目的web项目,以下是项目结构

                         1.Dubbo入门

          步骤二:Dubbo是通过spring无缝衔接的,所以我们需要先引入spring和dubbo的jar包,以下是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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.exercise</groupId>
  <artifactId>provider</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>provider</name>
  <url>http://maven.apache.org</url>
  
  <dependencies>    
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.3.9.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>4.3.9.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.3.9.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.3.9.RELEASE</version>
    </dependency>
 <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>4.3.9.RELEASE</version>
    </dependency>    
     <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>4.3.9.RELEASE</version>
    </dependency>
     <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>4.3.9.RELEASE</version>
    </dependency>
     <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>4.3.9.RELEASE</version>
    </dependency>
     <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-oxm</artifactId>
      <version>4.3.9.RELEASE</version>
    </dependency>
     <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>dubbo</artifactId>
      <version>2.5.3</version>
      <exclusions>
          <exclusion>
              <groupId>org.springframework</groupId>    /**因为Dubbo中自带spring会和我们上面的spring版本不一样产生
              <artifactId>spring</artifactId>                          *冲突,所以这里需要排除依赖。使用我们自己引入的spring包**/
          </exclusion>
      </exclusions>
    </dependency>
  </dependencies>
  
  <build>
    <finalName>provider</finalName>
  </build>
</project>

          步骤三: 然后我们开始编写我们要提供的服务接口和服务实现类

                          服务的接口:1.Dubbo入门

                          服务实现类:1.Dubbo入门

           步骤四:写好了服务以后,我们要将服务发布到注册表上(这里不使用注册表直接发到本地),在spring的配置文件中进行发布的配置,以下是applicationContext.xml和applicationContext-provider.xml

                          applicationContext.xml:1.Dubbo入门

 

                           applicationContext-provider.xml:1.Dubbo入门

          步骤五:编写main方法来进行调用xml开启服务,以下是main方法。

                         1.Dubbo入门

二、编写服务消费者

          步骤一:创建消费者的Maven的web项目,以下是目录结构:

                        1.Dubbo入门

          步骤二:首先还是引入spring和dubbo的jar包,内容和提供者的相同,但是需要引入服务接口的jar包 ,添加以下内容:

                         1.Dubbo入门            

                        对应的jar包就是将服务提供者的服务接口打包成jar然后 放到消费者的lib文件下,在用pom.xml进行引入到本地的maven库中。

                        将这个目录打包成jar: 1.Dubbo入门                     

                        将打包好的jar放到lib文件中:   1.Dubbo入门

                        注意:pom中的内容要和该jar包的名字对应。

          步骤三:在spring配置文件中去配置获取我们发布的服务,xml约束和提供者相同,下面是要添加的内容:

                         1.Dubbo入门     

          步骤四:最后编写main方法来解析xml文件调用服务

                         1.Dubbo入门

三、使用Multicast注册中心

          1.Multicast注册中心的特点:

                    a)不需要安装和启动任何的中心节点,即不用安装软件,只要服务提供者和消费者的广播地址一样,就可以互相发现

                    b)组播地址段:224.0.0.0 - 239.255.255.255

                    c)组播只适合小规模应用或开发调试使用

           2.使用方式:只需要在提供者和消费者的spring配置文件中加上以下内容:

                                <dubbo:registry  address="multicast://组播地址段"  />

                         如:    1.Dubbo入门

                                然后删掉提供者的registry属性和消费者的url属性。