SpringBoot集成Dubbo(提供服务与消费服务)

服务提供者:

1、引入依赖

<dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>5.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>5.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-x-discovery</artifactId>
            <version>5.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>3.0.7</version>
        </dependency>

2、application.properties配置或application.yml配置

# 配置服务的名,以下两种配置方式相同
dubbo.application.name=user-service
# 项目启动端口
server.port=8002
# 配置注册中心的地址,指定注册中心的类型和地址信息
dubbo.registry.address=zookeeper://127.0.0.1:2181
# 配置服务提供者远程通信的协议和端口
dubbo.protocol.name=dubbo
dubbo.protocol.port=20881
server:
  port: 8090

spring:
  application:
    name: dubbo-samples-privider-springCloud

dubbo:
  application:
    name: ${spring.application.name}
  registry:
    address: zookeeper://127.0.0.1:2181
    timeout: 2000
  protocol:
    name: dubbo
    port: 20890
  # 扫描 @DubboService 注解  
  scan:
    base-packages: com.dubbo.service

3、启动类添加@EnableDubbo注解开启dubbo

4、暴露远程调用的接口,对外提供服务

@DubboService(interfaceClass = UserService.class, timeout = 5000)
public class UserServiceImpl implements UserService {
    @Override
    public List<UserAddress> getUserAddressList(String userId) {
        UserAddress address1 = new UserAddress(1, "北京市昌平区宏福科技园综合楼3层", "1", "李老师", "010-56253825", "Y");
        UserAddress address2 = new UserAddress(2, "深圳市宝安区西部硅谷大厦B座3层(深圳分校)", "1", "王老师", "010-56253825", "N");
        return Arrays.asList(address1,address2);
    }
}

服务消费者:

1、引入依赖

<dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>5.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>5.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-x-discovery</artifactId>
            <version>5.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>3.0.7</version>
        </dependency>

2、application.properties配置

# 配置服务的名,以下两种配置方式相同
#spring.application.name=order-service
dubbo.application.name=order-service
# 项目启动端口
server.port=8001
# 配置包扫描的路径
#dubbo.scan.base-packages=com.example.orderservicecomsumer.service
# 配置注册中心的地址,指定注册中心的类型和地址信息,以下两种方式配置相同
#dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.registry.address=127.0.0.1:2181
dubbo.registry.protocol=zookeeper

3、启动类添加@EnableDubbo注解开启dubbo

4、调用远程接口

/**
     * 调用远程接口,指定接口,关闭自启动检查,不可用时会抛出异常
     * 可通过 retries=“2” 来设置重试次数(不含第一次)
     * 为了避免超时导致客户端资源(线程)挂起耗尽,必须设置超时时间
     * 版本号不同的服务相互间不引用,version=*,表示随机调用,新版本和旧版本都可调用
     */
    @DubboReference(interfaceClass = UserService.class, check = false, retries = 3, timeout = 5000, version = "*")
    UserService userService;

    @Override
    public List<UserAddress> initOrder(String userId) {
        return userService.getUserAddressList(userId);
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值