SpringBoot+Dubbo微服务用户中心实践-Dubbo集成-消费调用

1、Dubbo消费调用

        上文我们总结了Dubbo的服务提供者如何进行sdk及服务的发布,本文将简单描述其他服务该如何调用该接口,新建一个springboot的gateway工程,此处不对该工程进行详细描述,只是举例消费调用方式

1.1、新建gateway工程

        新建gateway工程,springboot版本、dubbo版本等要与之前的ac服务(生产者)保持一致,结构大致如下:

        pom文件需要引入ac-client发布的sdk,如下:其他maven引用省略

<dependencies>
     <dependency>
        <groupId>com.cj.ac</groupId>
        <artifactId>ac-client</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
        <type>pom</type>
        <exclusions>
            <exclusion>
                <artifactId>slf4j-reload4j</artifactId>
                <groupId>org.slf4j</groupId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>  

1.2、测试调用

        新建一个测试接口,本文在AppController中写的测试接口, 如下:

        @DubboReference:dubbo服务注入,低版本为@Reference(需注意自己引用的Apache还是Alibaba的),其中retries为重试次数,version为服务实现的版本号,lazy为懒加载模式(可在一定程度上解决各服务启动顺序的问题,如果不配置懒加载,服务启动时会去验证该接口是否有服务提供者,如果没有,则抛出异常,而懒加载则是在该接口真正调用时才会验证是否有提供者,不影响启动)

/**
 * 应用前端控制器
 *
 * @Author: changjiang
 * @date: 2024/7/24 17:33 in beijing
 */
@RestController
@RequestMapping("/app")
public class AppController {

    @DubboReference(retries = 3,version = "1.0.0",lazy = true)
    private RemoteUserInfoService userInfoService;

    /**
     * 测试dubbo连通性接口,获取用户信息
     * 
     * @param id
     * @return
     */
    @GetMapping("/testUser")
    public Object testUser(@RequestParam Long id){
        return userInfoService.findById(id);
    }
}

1.3、配置文件

        如果该应用不再对外提供dubbo服务,则不需要在启动入口配置@EnableDubbo注解来声明了,只需要在配置文件中配置dubbo相关配置即可。注意一下几点:

        dubbo.application.name:dubbo唯一标识,不可重复

        qos-enable:false:是否启用qos命令,QoS这个概念指用于动态的对服务进行查询和控制,在本环境中是指,是否允许反向控制dubbo服务,即通过zookeeper对dubbo服务进行上下线等操作,方便我们对dubbo进行控制,具体qos相关说明,可查看QOS 概述 | Apache Dubbo,本文不使用该配置,以减少端口占用等其他引申问题。

dubbo:
  application:
    name: GatewayStarter
    qos-enable: false
  protocol:
    name: dubbo
    port: -1
  registry:
    address: zookeeper://127.0.0.1:2181

1.4、启动服务

        启动该服务后,同样可以在zookeeper工具中查看到该服务,启动日志及zookeeper如下:

 1.5、测试验证

        通过postman等其他接口调用gateway服务的测试接口

2、总结

        至此我们完成了以此dubbo从服务发布到服务调用的一整个流程,后续我们将针对其他各点的总结,如集成trace及日志配置、集成redis、aop切面及动态配置等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值