SpringCloud Alibaba系列——8Dubbo的服务发现

本文详细解析了SpringCloud Alibaba中Dubbo的服务发现过程,从Spring代理对象的生成到Dubbo代理对象的创建,再到RegistryDirectory如何刷新服务列表,最后讲解了服务列表Invoker的生成。文中通过源码分析了各个关键步骤,包括包装类流转、服务注册与消费者连接等,为理解Dubbo服务发现提供了全面的指导。
摘要由CSDN通过智能技术生成

学习目标

  1. Dubbo的服务发现

第1章 注册发现

同样的先贴出总体流程图

 

1.1 spring代理对象

当你用@DubboReference标识一个属性时,其实spring会生成了spring的代理对象注入进去。spring创建代理的过程在上节课的时候我们已经讲过,同学们可以翻看上节课的笔记看看代理的生成原理。

private void createLazyProxy() {
    //set proxy interfaces
    //see also:org.apache.dubbo.rpc.proxy.AbstractProxyFactory.getProxy(org.apache.dubbo.rpc.Invoker<T>,boolean)
    //很明显这里会用spring的代理工厂生成代理对象
    ProxyFactory proxyFactory = new ProxyFactory();
    //定义哦了TargetSource类型实例,spring中会有该类调用其getTarget方法拿到目标对象,其实这里就会生成Dubbo的代理
    proxyFactory.setTargetSou
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Cloud Alibaba中使用Dubbo进行分布式服务需要进行以下步骤: 1. 添加Dubbo依赖:在pom.xml文件中添加Dubbo依赖,例如: ``` <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-dubbo</artifactId> <version>2.2.3.RELEASE</version> </dependency> ``` 2. 配置Dubbo:在application.properties或者application.yml文件中添加Dubbo配置,例如: ``` #Dubbo配置 spring: dubbo: application: name: dubbo-provider #服务提供者名称 registry: address: nacos://localhost:8848 #注册中心地址 protocol: name: dubbo #协议名称 port: 20880 #协议端口号 ``` 3. 编写Dubbo服务接口:在服务提供者中定义Dubbo服务接口,例如: ``` public interface UserService { User getUserById(Long id); } ``` 4. 实现Dubbo服务接口:在服务提供者中实现Dubbo服务接口,例如: ``` @Service(version = "1.0.0") public class UserServiceImpl implements UserService { @Override public User getUserById(Long id) { //实现方法 } } ``` 5. 注册Dubbo服务:在服务提供者中使用@DubboService注解注册Dubbo服务,例如: ``` @Service(version = "1.0.0") @DubboService(interfaceClass = UserService.class) public class UserServiceImpl implements UserService { @Override public User getUserById(Long id) { //实现方法 } } ``` 6. 调用Dubbo服务:在服务消费者中使用@DubboReference注解调用Dubbo服务,例如: ``` @Service public class UserServiceImpl implements UserService { @DubboReference(version = "1.0.0") private UserService userService; public User getUserById(Long id) { return userService.getUserById(id); } } ``` 以上就是在Spring Cloud Alibaba中使用Dubbo进行分布式服务的步骤。需要注意的是,Dubbo还支持其他的注册中心和负载均衡策略,可以根据实际情况进行配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木木_2024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值