dubbo入門實例

spring 4.3.20.RELEASE

dubbo 2.6.2

curator-framework 2.12.0

註冊中心 zookeeper

jdk 1.8


一、服務提供方  

1、pom.xml配置

<dependencies>
  <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.3.20.RELEASE</version>
      </dependency>
      
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo</artifactId>
        <version>2.6.2</version>
    </dependency>
    <!-- curator -->
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-framework</artifactId>
        <version>2.12.0</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-nop</artifactId>
        <version>1.7.20</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>
  
<build>
  <plugins>
      <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
            <source>1.8</source>
            <target>1.8</target>
            </configuration>
      </plugin>
  </plugins>
</build>

  

  2、接口

public interface HelloService {
    String sayHello(String name);
}


3、接口實現類

public class HelloServiceImpl implements HelloService {
    public String sayHello(String name) {
        return "Hello " + name;
    }
}


4、spring配置文件

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd 
    http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
    
        <dubbo:application name="dubbo-provider"></dubbo:application>
        <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"></dubbo:registry>
        <dubbo:protocol host="127.0.0.1" port="20880"></dubbo:protocol>
        <dubbo:service interface="com.kingtry.service.HelloService" ref="helloService"></dubbo:service>
      <bean id="helloService" class="com.kingtry.service.HelloServiceImpl"></bean>
</beans>


5、log4j配置文件

log4j.rootLogger=INFO,console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd\u00A0HH:mm:ss,SSS}\u00A0[%t]\u00A0[%c]-[%p]\u00A0%m%n


6、註冊,並提供服務的測試類

public class DubboProviderTest {
    @Test
    public void test() {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
        
        //使服務不中斷
        try {
            System.in.read();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}



二、服務調用方

1、pom.xml文件

<dependencies>
  <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.3.0.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo</artifactId>
        <version>2.6.2</version>
    </dependency>
    <!-- curator -->
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-framework</artifactId>
        <version>2.12.0</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-nop</artifactId>
        <version>1.7.20</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>
  
<build>
  <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
        <configuration>
        <source>1.8</source>
        <target>1.8</target>
        </configuration>
      </plugin>
  </plugins>
</build>

  

  2、 接口

  //此處接口與提供方完全一致

public interface HelloService { 
    String sayHello(String name);
}


3、spring配置文件

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd 
    http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
    
        <dubbo:application name="dubbo-consumber"></dubbo:application>
        <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"></dubbo:registry>
        <dubbo:reference id="helloService" interface="com.kingtry.service.HelloService"></dubbo:reference>
</beans>


4、log4j配置文件

log4j.rootLogger=INFO,console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd\u00A0HH:mm:ss,SSS}\u00A0[%t]\u00A0[%c]-[%p]\u00A0%m%n

5、調用服務的測試類

public class DubboConsumerTest {
    @Test
    public void test() {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
        
        HelloService helloService = (HelloService)context.getBean("helloService");
        
        System.out.println("----------------------------------------------------------");
        System.out.println(helloService.sayHello("DanDan"));
        System.out.println("----------------------------------------------------------");
        
    }
}


三、輸出如下結果

----------------------------------------------------------
Hello DanDan
----------------------------------------------------------


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