Dubbo知识点总结

1.什么是Dubbo?

Apache Dubbo是一款高性能的RPC框架(RPC:remote procedure call,即远程过程调用)。

2.Dubbo功能

面向接口的远程方法调用,智能容错和负载均衡,服务自动注册和发现。

以及高度可扩展能力,运行期流量调度,可视化的服务治理与运维。

3.Dubbo架构(来源:Dubbo官网

  • 注册中心。协调 Consumer 与 Provider 之间的地址注册与发现
  • 配置中心。
    • 存储 Dubbo 启动阶段的全局配置,保证配置的跨环境共享与全局一致性
    • 负责服务治理规则(路由规则、动态配置等)的存储与推送。
  • 元数据中心。
    • 接收 Provider 上报的服务接口元数据,为 Admin 等控制台提供运维能力(如服务测试、接口文档等)
    • 作为服务发现机制的补充,提供额外的接口/方法级别配置信息的同步能力,相当于注册中心的额外扩展

4.Dubbo注册中心--zookeeper

zookper是Apache Hadoop 的子项目,是一种树形目录服务,支持变更推送。适合作为Dubbo服务注册中心。

5.Dubbo基本配置(基于注解)

provider(服务提供者):

  • xml配置:
<!-- 当前应用名称,用于注册中心计算应用间依赖关系,注意:消费者和提供者应用名不要一样 --> 
<dubbo:application name="dubbodemo_provider" /> 
<!-- 连接服务注册中心zookeeper ip为zookeeper所在服务器的ip地址--> 
<dubbo:registry address="zookeeper://192.168.134.129:2181"/>
 <!-- 注册 协议和port --> 
<dubbo:protocol name="dubbo" port="20881"></dubbo:protocol>
 <!-- 扫描指定包,加入@Service注解的类会被发布为服务 -->
 <dubbo:annotation package="com.xxx.service" />
  • 用法:在service的实现类上加注解:@Service(注意,此注解使用Dubbo提供的)

 consumer(服务消费者):

  • xml配置:
<!-- 当前应用名称,用于注册中心计算应用间依赖关系,注意:消费者和提供者应用名不要一样 --> 
<dubbo:application name="dubbodemo_consumer" /> 
<!-- 连接服务注册中心zookeeper ip为zookeeper所在服务器的ip地址--> 
<dubbo:registry address="zookeeper://192.168.134.129:2181"/>
 <!-- 扫描controller -->
 <dubbo:annotation package="com.xxx.controller" />
  • 用法:在controller中注入service(注解:@Reference)

6.被事务代理的Service无法发布到Dubbo

  • 原因:基于JDK动态代理的事务在创建代理对象时,对象的完整名为com.sun.proxy.$Proxy42(后面两位数字不固定),导致Dubbo进行包匹配时无法匹配。因此无法发布到Dubbo。
  • 解决方案:

        事务修改为基于cglib动态代理.(在配置开启事务注解支持时,添加proxy-target-class="true")

<tx:annotation-driven transaction-manager="transactionManager" proxy-target- class="true"/>

        在服务实现类@Service注解中添加:interfaceClass=XXX.class(XXX为要发布服务的类名)

@Service(interfaceClass=XXX.class)
@Transactional
public class XXXServiceImpl implements XXXService{
    ...
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值