Dubbo源码解析(二十)Dubbo 服务自省(小马哥视频观后感)

本文基于小马哥的视频讲解,探讨了Dubbo服务自省的背景、定义、使用场景和架构设计。面对CloudNative技术和Spring Cloud的挑战,Dubbo引入服务自省以减轻注册中心压力,支持应用级别的服务注册与发现,并简化URL元数据。服务自省涉及服务元信息的处理和分析,确保客户端在调用时能正确路由并获取接口详细信息。

服务自省

Dubbo 2.7.5 +

背景

业界方案

  • CloudNative 的 技术兴起

image-20200822113330298

  • Sping Cloud的快速崛起

image-20200822113512534

Dubbo 所面临的的挑战

  • 如何解决或缓解注册中心压力过载

    • Dubbo是以接口发布服务的,所以注册中心节点会多,内存会很大。

    • 消费者和提供者与注册中心压力都会很大。网络抖动会造成网络风暴。

    • 因为注册中心需要实时将服务上下线等时间通知到对应的消费者、提供者。

  • 如何支持以应用为粒度的服务注册与发现

    • 支持SpringCloud服务注册与发现模型
    • 支持Kubernetes服务注册与发现模型
    • 兼容Dubbo 传统服务注册与发现模型
  • 如何精简Dubbo URL 元数据

    • https://blog.csdn.net/u013076044/article/details/89035939
    • image-20200822114519689

概述

JavaBeans 自省- At runtime and in the builder environment we need to be able to figure out which properties,event,and methods a JavaBean supports。We call this process introspection。

定义

Dubbo 应用在运行期间处理和分析Dubbo服务元信息的过程,如当前应用暴露的Dubbo服务以及各自的通讯协议等。期间会伴随着时间的广播和处理,如服务暴露事件。

  • Dubbo 2.7.5 引入服务自省和事件机制

术语定义

image-20200822133241527

使用场景

image-20200822133755640

image-20200822133913111

架构设计

image-20200822134057031

image-20200822134632582


以上是小马哥的视频总结,下面是自己的一些思考。


总的来说,相比于原来的接口发布,现在是将整个微服务作为一个实例(ServiceInstance)注册,所以客户端调用的时候,需要考虑请求的路由,也就是我们之前的URL对象。

所以我们在服务调用的时候需要考虑,不仅仅拿到这个微服务实例的地址,还需要知道这个微服务实例具体发布了哪些服务,也就是微服务实例和接口的映射(ServiceNameMapping)。
image-20200822145027732

然后根据对应的serviceName去元数据中心获取接口的详细信息(方法、参数)。

image-20200822145125070

image-20200822145249270

最后组成一批URL。

附录: zk上的节点信息

image-20200822144637514

{
    
    
    "parameters":{
    
    
        "side"
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值