0
点赞
收藏
分享

微信扫一扫

SpringBoot + Zookeeper+ dubbo 整合项目 做注册中心 测试生产者和消费者


首先创建 Maven 的 dubbo-demo 父项目

父工程下分别新建

dubbo-provider 生产者

dubbo-provider-api api接口

dubbo-consumer 消费者

SpringBoot + Zookeeper+ dubbo 整合项目 做注册中心 测试生产者和消费者_spring boot

dubbo-provider-api api接口 项目

创建公共接口

package com.jq.service.impl;

public interface PhoneService {

String getPhoneList();
}

dubbo-provider 生产者 项目

配置依赖:

<!--api接口-->
<dependency>
<groupId>jq</groupId>
<artifactId>dubbo-provider-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>

<!--zookeeper依赖-->
<!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper -->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.14</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>

<!-- Zookeeper dependencies -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.0.1</version>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>

<!-- dubbo集成springboot-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.3</version>
</dependency>

配置文件信息 application.yml

#服务端口
server:
port: 8000

#服务名称
spring:
application:
name: dubbo-provider

#dubbo配置
dubbo:
application:
name: dubbo-provider
id: dubbo-provider
protocol:
#注意======== id: dubbo name: dubbo 不能更改
id: dubbo
name: dubbo
port: 20882
registry:
id: dubbo-provider
address: zookeeper://192.168.230.137:2181
scan:
#扫描提供者信息路径
base-packages: com.jq.service.impl

创建一个ServiceImol的实现类

package com.jq.service.impl;

import org.apache.dubbo.config.annotation.Service;

@Service //注入dubbo包
public class PhoneServiceImpl implements PhoneService{
@Override
public String getPhoneList() {
return "4343433";
}
}

创建消费者控制层测试

package com.jq.controller;

import com.jq.service.impl.PhoneService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class PhoneController {

@Reference //远程调用
private PhoneService phoneService;
//生产者
@RequestMapping("test1")
public String test(){
return phoneService.getPhoneList();
}


}

生产者访问 http://localhost:8000/test1

SpringBoot + Zookeeper+ dubbo 整合项目 做注册中心 测试生产者和消费者_ide_02

dubbo-consumer 消费者 项目

配置依赖:

<!--api接口-->
<dependency>
<groupId>jq</groupId>
<artifactId>dubbo-provider-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>

<!--zookeeper依赖-->
<!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper -->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.14</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>

<!-- Zookeeper dependencies -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.0.1</version>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>

<!-- dubbo集成springboot-->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.3</version>
</dependency>

配置文件信息 application.yml

#服务端口
server:
port: 8001

#服务名称
spring:
application:
name: dubbo-consumer

#dubbo配置
dubbo:
application:
name: dubbo-consumer
id: dubbo-consumer
registry:
id: dubbo-consumer
#连接zookeeper
address: zookeeper://192.168.230.137:2181

创建消费者控制层测试

package com.jq.controller;

import com.jq.service.impl.PhoneService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class PhoneController {

@Reference
private PhoneService phoneService;
//消费者
@RequestMapping("test")
public String test(){
return phoneService.getPhoneList();
}


}

消费者者访问显示:

SpringBoot + Zookeeper+ dubbo 整合项目 做注册中心 测试生产者和消费者_apache_03


消费者者访问 http://localhost:8001/test

SpringBoot + Zookeeper+ dubbo 整合项目 做注册中心 测试生产者和消费者_apache_04


生产者访问 http://localhost:8000/test1

SpringBoot + Zookeeper+ dubbo 整合项目 做注册中心 测试生产者和消费者_ide_02

项目启动后页面注册信息:

SpringBoot + Zookeeper+ dubbo 整合项目 做注册中心 测试生产者和消费者_spring boot_06


SpringBoot + Zookeeper+ dubbo 整合项目 做注册中心 测试生产者和消费者_zookeeper_07


SpringBoot + Zookeeper+ dubbo 整合项目 做注册中心 测试生产者和消费者_zookeeper_08


SpringBoot + Zookeeper+ dubbo 整合项目 做注册中心 测试生产者和消费者_ide_09


SpringBoot + Zookeeper+ dubbo 整合项目 做注册中心 测试生产者和消费者_ide_10


举报

相关推荐

0 条评论