关于dubbo以及zookeeper(新老版本)的选型

如果zookeeper 版本在3.4.x。
使用com,alibaba,dubbo 2.5.x 升级至org.apache.dubbo 2.7.1

使用下列引用信息,生产者 与消费者 均相同

        <!-- Dubbo -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.7.1</version>
        </dependency>
        <!-- SpringBootDubbo 整合包 -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.1</version>
        </dependency>
        <!-- curator和 zkClient 都是 ZooKeeperJava 客户端 -->
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>4.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>4.2.0</version>
        </dependency>
        <!-- ZooKeeper 由于日志冲突,排除日志-->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.10</version>
            <!-- 排除这个 slf4j-log4j12 -->
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

生产者配置信息 yml文件

server:
  port: 8083
dubbo:
  application:
    name: dubboProvider
    qos-port: 2222
  protocol:
    name: dubbo
  registry:
    address: zookeeper://127.0.0.1:2181

生产者service 使用注解@dubbo

@Service
public class ProviderServiceImpl implements ProviderService {
    @Override
    public String say(String message) {
        return message + "dubbo调用成功";
    }
}

然后在启动类上加伤 @EnabbleDubbo注解


import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableDubbo
public class DubboDemoProviderOneApplication {

    public static void main(String[] args) {
        SpringApplication.run(DubboDemoProviderOneApplication.class, args);
    }
}

项目结构如下
dubbo生产者项目层级

如上,一个简单的生产者调用信息就完成了,接下来就看消费者的配置信息

消费者配置信息 pom 文件,除了与生产者一样的pom外,需要加上需要调用的dubbo微服务jar内容

  		  <!-- Dubbo -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.7.1</version>
        </dependency>
        <!-- SpringBootDubbo 整合包 -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.1</version>
        </dependency>
        <!-- curator和 zkClient 都是 ZooKeeperJava 客户端 -->
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>4.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>4.2.0</version>
        </dependency>
        <!-- ZooKeeper 由于日志冲突,排除日志-->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.10</version>
            <!-- 排除这个 slf4j-log4j12 -->
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
  		<dependency>
            <groupId>com.example</groupId>
            <artifactId>dubbo-demo-provider-one</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency> 

消费者dubbo配置信息yml如下

server:
  port: 8084
dubbo:
  application:
    name: dubboConsumer
    qos-port: 2223
  protocol:
    name: dubbo
  registry:
    address: zookeeper://127.0.0.1:2181
spring:
  main:
    allow-bean-definition-overriding: true

消费者调用生产者接口,引入@Reference 注册暴露服务接口

@RestController
@RequestMapping(value = "api")
public class TestController {

    @Reference
    ProviderService providerService;

    @RequestMapping(value = "test")
    public String Test(){
        String say = providerService.say("测试");
        return say;
    }
}

消费者与生产者一样,启动类需要增加@EnableDubo注解

@SpringBootApplication
@EnableDubbo
public class DubboDemoConsumerOneApplication {

    public static void main(String[] args) {
        SpringApplication.run(DubboDemoConsumerOneApplication.class, args);
    }
}

消费者项目层级如下
消费者层级信息

此处以zookeeper 3.8.1为例

dubbo 使用3.2.2。zookeeper 使用 3.8.1

   <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>3.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
            <version>3.2.2</version>
            <type>pom</type>
        </dependency>
    </dependencies>

关于 生产者 消费者 启动类 需要加上@Enabledubbo注解信息,与 dubbo 2.7.x 相似,可以参考上面dubbo与zookeeper版本选型,
相对于 dubbo 2.7.x 版本来说,暴露服务注册注解,由@Reference 调整为@DubboReference。

@RestController
@RequestMapping(value = "api")
public class TestController {

    @DubboReference
    ProviderService providerService;

    @RequestMapping(value = "test")
    public String Test(){
        String say = providerService.say("测试");
        return say;
    }
}
  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值