zoukankan      html  css  js  c++  java
  • Dubbo生产者和消费者经典案例

    一、导入依赖

    <dependency>
          <groupId>javaee</groupId>
          <artifactId>javaee-api</artifactId>
          <version>5</version>
        </dependency>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>fastjson</artifactId>
          <version>1.2.22</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-core</artifactId>
          <version>4.3.9.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.hamcrest/hamcrest-core -->
        <dependency>
          <groupId>org.hamcrest</groupId>
          <artifactId>hamcrest-core</artifactId>
          <version>1.3</version>
          <scope>test</scope>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-beans</artifactId>
          <version>4.3.9.RELEASE</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</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-aspects</artifactId>
          <version>4.2.1.RELEASE</version>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context-support</artifactId>
          <version>4.1.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-test</artifactId>
          <version>4.1.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.1.9.RELEASE</version>
        </dependency>
    
        <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
          <version>3.2.2</version>
        </dependency>
    
        <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis-spring</artifactId>
          <version>1.3.0</version>
        </dependency>
    
        <dependency>
          <groupId>org.javassist</groupId>
          <artifactId>javassist</artifactId>
          <version>3.17.1-GA</version>
        </dependency>
    
        <dependency>
          <groupId>cglib</groupId>
          <artifactId>cglib</artifactId>
          <version>2.2.2</version>
        </dependency>
    
        <dependency>
          <groupId>c3p0</groupId>
          <artifactId>c3p0</artifactId>
          <version>0.9.1.2</version>
        </dependency>
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.31</version>
        </dependency>
    
        <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>dubbo</artifactId>
          <version>2.5.3</version>
          <exclusions>
            <exclusion>
              <artifactId>spring</artifactId>
              <groupId>org.springframework</groupId>
            </exclusion>
          </exclusions>
        </dependency>
        <dependency>
          <groupId>org.apache.zookeeper</groupId>
          <artifactId>zookeeper</artifactId>
          <version>3.4.6</version>
          <exclusions>
            <exclusion>
              <artifactId>log4j</artifactId>
              <groupId>log4j</groupId>
            </exclusion>
          </exclusions>
        </dependency>
        <dependency>
          <groupId>com.github.sgroschupf</groupId>
          <artifactId>zkclient</artifactId>
          <version>0.1</version>
        </dependency>

    二、生产者

    2.1 创建service接口

    public interface UserService {
        public String getName();
    }

    2.2创建service接口实现类

    public class UserServiceImpl implements UserService{
        @Override
        public String getName() {
            return "userService服务启动成功";
        }
    }

    2.3 编写配置文件 

        <context:component-scan base-package="com.dubbo"/>
    <!--声明服务提供方-->
        <dubbo:application name="provider"/>
    
        <!--注册中心地址-->
        <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
    
        <!--dubbo服务端口-->
        <dubbo:protocol name="dubbo" port="20880"/>
    
        <!--服务注册-->
        <dubbo:service interface="com.dubbo.service.UserService" ref="userService"/>
        <bean id="userService" class="com.dubbo.service.UserServiceImpl"/>
    
        <dubbo:service interface="com.dubbo.service.DubboService" ref="dubboService"/>

    2.4编写测试类 

     public static void main(String[] args) {
            ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("ApplicationContext-service.xml");
            context.start();
            System.out.println("服务已注册");
            try {
                System.in.read();
            } catch (IOException e) {
                e.printStackTrace();
            }
    
            try {
                System.in.read();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    2.5控制台

    三、消费者

    3.1创建service层接口并与生产者命名一致

    public interface UserService {
        public String getName();
    }

    3.2编写配置文件

      <!--服务的应用名称-->
        <dubbo:application name="consumer"/>
        <!--需要扫描的服务所在的包-->
        <!--<dubbo:annotation package="com.itheima.demo.com.dubbo.service" />-->
        <!--指定注册中心-->
        <dubbo:registry address="zookeeper://127.0.0.1:2181" />
    
        <dubbo:reference interface="com.dubbo.service.UserService" id="userService" />
    
        <dubbo:reference id="dubboService" interface="com.dubbo.service.DubboService"/>
        </beans>

    3.3编写测试类 

     public static void main(String[] args) {
            ClassPathXmlApplicationContext classPathXmlApplicationContext=new ClassPathXmlApplicationContext("consumer.xml");
            UserService userService=(UserService)classPathXmlApplicationContext.getBean("userService");
            String name = userService.getName();
            System.out.println(name);
    
        }

    3.4控制台 

  • 相关阅读:
    rsync+inotifywait
    expect 批量执行命令
    用cloudmonkey批量创建虚拟机
    zabbix items 配置 修改zabbix表结构
    被攻击后排查的过程
    centos6.4安装 zabbix agent
    2015 Multi-University Training Contest 3 hdu 5323 Solve this interesting problem
    2015 Multi-University Training Contest 3 hdu 5326 Work
    2015 Multi-University Training Contest 3 hdu 5316 Magician
    2015 Multi-University Training Contest 1 hdu 5290 Bombing plan
  • 原文地址:https://www.cnblogs.com/szhhhh/p/11962272.html
Copyright © 2011-2022 走看看