dubbo+zookeeper下生产者和消费者配置(基于springboot开发)

Posted 刘曙尘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dubbo+zookeeper下生产者和消费者配置(基于springboot开发)相关的知识,希望对你有一定的参考价值。

一.总共分为三个目录:

  • dubbo-api      服务的接口用于对接客户端和服务端 
  • dubbo-client     客户端配置文件为:consumer.xml
  • dubbo-service  服务端配置文件为:provide.xml  

二.配置文件

  1.consumer.xml:   

<?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" />
    <!-- zookeeper作为注册中心 -->
    <dubbo:registry protocol="zookeeper"
        address="zookeeper://10.92.1.17:2181" />
    <dubbo:protocol name="dubbo" port="20895" />
    <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
    <dubbo:reference
        interface="com.dubbo.api.rpc.TestService" id="testService"></dubbo:reference>
</beans>

 

  2.provide.xml:

<?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="provider" />
    <!-- 使用zookeeper作为注册中心 -->
    <dubbo:registry protocol="zookeeper"
        address="zookeeper://10.92.1.17:2181" />
    <dubbo:protocol name="dubbo" port="20895" />
    <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
    <dubbo:service interface="com.dubbo.api.rpc.TestService"
        ref="testService"></dubbo:service>
</beans>

  3pom文件:   

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.dubbo.api</groupId>
            <artifactId>dubbo-api</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>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.6</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>

  4. 服务的接口

/**  
* @Title: TestService.java  
* @Description:   
* @author lsc  
* @date 2018年8月17日  
* @version 1.0  
* @Copyright:Copyright Taikanglife.All Rights Reserved  
*/  
package com.dubbo.api.rpc;

/**   
 * @ClassName:  TestService   
 * @Description:
 * @author: lsc
 * @date: 2018年8月17日 上午10:03:28     
 * @Copyright:Copyright Taikanglife.All Rights Reserved
 */
public interface TestService {
    
    public String sayHello();
}

  5.服务的实现

package com.dubbo.dubbo;

import org.springframework.stereotype.Service;

import com.dubbo.api.rpc.TestService;

/**
 * @ClassName:  TestServiceImpl   
 * @Description:
 * @author: lsc
 * @date: 2018年8月17日 上午10:24:11     
 * @Copyright:Copyright Taikanglife.All Rights Reserved
 */
@Service("testService")
public class TestServiceImpl implements TestService {
    @Override
    public String sayHello() {
        return "hello dubbo";
    }
}

  6.服务的调用

package com.dubbo.dubboclient;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.dubbo.api.rpc.TestService;

/**
 * @ClassName:  MyController   
 * @Description:
 * @author: lsc
 * @date: 2018年8月17日 上午10:24:56     
 * @Copyright:Copyright Taikanglife.All Rights Reserved
 */
@RestController
public class MyController {
    
    @Autowired
    private TestService testService;
 
    @RequestMapping("/home")
    public String home(){
        return testService.sayHello();
    }
}

  

以上是关于dubbo+zookeeper下生产者和消费者配置(基于springboot开发)的主要内容,如果未能解决你的问题,请参考以下文章

[Dubbo开发]配置简单的生产者和消费者

zookeeper客户端命令行查看dubbo服务的生产者和消费者

zk客户端命令查看dubbo服务的生产者和消费者

SpringBoot+Dubbo+Zookeeper入门案例

Dubbo:zookeeper 注册中心

dubbo使用zookeeper连接,zookeeper宕机后怎么处理