张贴在 2018

  • Dubbo服务分组和版本聚合

    Saturday, October 27, 2018 在 功能演示

    我们在调用Dubbo服务的时候,一般只需要将Consumer端的dubbo:reference指定成服务端中dubbo:service暴露的服务,就可以找到服务端,完成调用,也就是说,Dubbo只需要服务接口信息就可以找到服务提供者。 其实除了服务提供者以外,Dubbo也有服务分组和版本的概念,在客户端去寻找“匹配”的服务端的时候,需要服务接口,版本号,组别这三个信息都匹配,才算是一个有效的服务端: public static boolean isMatch(URL consumerUrl, …

    更多

  • Dubbo 协议详解

    Friday, October 05, 2018 在 功能演示

    协议的概念 协议是两个网络实体进行通信的基础,数据在网络上从一个实体传输到另一个实体,以字节流的形式传递到对端。在这个字节流的世界里,如果没有协议,就无法将这个一维的字节流重塑成为二维或者多维的数据结构以及领域对象。 协议是什么 协议是双方确定的交流语义,比如:我们设计一个字符串传输的协议,它允许客户端发送一个字符串,服务端接收到对应的字符串。这个协议很简单,首先发送一个4字节的消息总长度,然后再发送1字节的字符集charset长度,接下来就是消息的payload,字符集名称和字符串正文。 发送 …

    更多

  • Dubbo与Kubernetes集成

    Sunday, September 30, 2018 在 功能演示

    大体目标 Dubbo的provider不再关心服务注册的事宜,只需要把其Dubbo服务端口打开,由Kubernetes来进行服务的声明和发布;Dubbo的consumer在服务发现时直接发现kubernetes的对应服务endpoints,从而复用Dubbo已有的微服务通道能力。好处是无需依赖三方的软负载注册中心;同时无缝融入Kubernetes的多租户安全体系。Demo的代码参照: https://github.com/dubbo/dubbo-kubernetes 闲谈 Kubernates是 …

    更多

  • Dubbo Mesh | Service Mesh的实践与探索

    Thursday, September 20, 2018 在 功能演示

    近日,在Aliware Open Source•成都站-Apache Dubbo 开发者沙龙上,阿里巴巴中间件高级技术专家李云(至简)向开发者们分享了阿里巴巴中间件团队在Service Mmesh领域的探索和最新实践。本文是根据至简的现场分享所整理,为大家回顾分享中的精彩内容。 精彩观点导读 我们去探索一项技术,并不会仅仅因为其先进性,而是因为我们目前遇到了一些无法解决的问题,而这项技术正好能解决这个问题。 所有软件最重要的使命不是满足功能要求,而是演进,从而持续成长。 微服务本质是对服务的拆 …

    更多

  • 如何基于Dubbo实现全异步调用链

    Sunday, September 02, 2018 在 功能演示

    基于Dubbo实现全异步编程,是在2.7.0版本中对现有异步方式增强后新引入的功能。本文先是回顾2.6.x及之前版本对异步的支持情况及存在的问题,引出了2.7.0版本基于CompletableFuture做了哪些针对性的增强,通过几个示例详细阐述了增强后的异步编程的使用方式,最后总结了引入异步模式带来的新问题及Dubbo的解决方法。通过阅读这篇文章,可以很容易的基于Dubbo2.7.0+版本实现一个全异步的远程服务调用链路。 从3.0.0版本开始,Dubbo框架提供了对Reactive编程范式的 …

    更多

  • Dubbo 集群容错

    Wednesday, August 22, 2018 在 功能演示

    Design For failure 在分布式系统中,集群某个某些节点出现问题是大概率事件,因此在设计分布式RPC框架的过程中,必须要把失败作为设计的一等公民来对待。一次调用失败之后,应该如何选择对失败的选择策略,这是一个见仁见智的问题,每种策略可能都有自己独特的应用场景。因此,作为框架来说,应当针对不同场景提供多种策略,供用户进行选择。 在Dubbo设计中,通过Cluster这个接口的抽象,把一组可供调用的Provider信息组合成为一个统一的Invoker供调用方进行调用。经过路由规则过滤, …

    更多

  • Dubbo 现有心跳方案总结以及改进建议

    Sunday, August 19, 2018 在 功能演示

    1 前言 设计一个好的心跳机制并不是一件容易的事,就我所熟知的几个 RPC 框架,它们的心跳机制可以说大相径庭,这篇文章我将探讨一下如何设计一个优雅的心跳机制,主要从 Dubbo 的现有方案以及一个改进方案来做分析。 2 预备知识 因为后续我们将从源码层面来进行介绍,所以一些服务治理框架的细节还需要提前交代一下,方便大家理解。 2.1 客户端如何得知请求失败了? 高性能的 RPC 框架几乎都会选择使用 Netty 来作为通信层的组件,非阻塞式通信的高效不需要我做过多的介绍。但也由于非阻塞的特性, …

    更多

  • Dubbo2.7 三大新特性详解

    Wednesday, August 15, 2018 在 功能演示

    1 背景介绍 自 2017 年 7 月阿里重启 Dubbo 开源,到目前为止 github star 数,contributor 数都有了非常大的提升。2018 年 2 月 9 日阿里决定将 Dubbo 项目贡献给 Apache,经过一周的投票,顺利成为了 Apache 的孵化项目,也就是大家现在看到的 Incubator Dubbo。预计在 2019 年 4 月,Dubbo 可以达成毕业,成为 Apache 的顶级项目。 2 分支介绍 Dubbo 目前有如图所示的 5 个分支, …

    更多

  • 通过QoS对服务进行动态控制

    Tuesday, August 14, 2018 在 功能演示

    QoS,全称为Quality of Service, 是常见于网络设备中的一个术语 ,例如在路由器中,可以通过Qos动态的调整和控制某些端口的权重,从而优先的保障运行在这些端口上的服务质量。 在Dubbo中,QoS这个概念被用于动态的对服务进行查询和控制。例如对获取当前提供和消费的所有服务,以及对服务进行动态的上下线,即从注册中心上进行注册和反注册操作。 QoS工作机制 从Dubbo 2.5.8开始,默认引入了Qos功能,默认处于启动状态。所有的QoS功能被抽象成一个个的命令,通过执行这些命 …

    更多

  • Spring Boot Dubbo应用启停源码分析

    Tuesday, August 14, 2018 在 功能演示

    背景介绍 Dubbo Spring Boot 工程致力于简化 Dubbo RPC 框架在Spring Boot应用场景的开发。同时也整合了 Spring Boot 特性: 自动装配 (比如: 注解驱动, 自动装配等). Production-Ready (比如: 安全, 健康检查, 外部化配置等). DubboConsumer启动分析 你有没有想过一个问题?dubbo-spring-boot-project中的DubboConsumerDemo应用就一行代码,main方法执行完之后,为什么不会直 …

    更多