概述
2018年1月8日夜间,Dubbo 创始人之一梁飞在 Dubbo 交流群里透露了 Dubbo 3.0 正在动工的消息。
什么是Dubbo
百度百科上说:
Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。
知乎上的答友说:
1. Dubbo负载均衡是对外提供一个公共地址,请求过来时通过轮询、随机等,路由到不同server。目的分摊压力。失效备援是发现一台server挂了,就让另外一台去服务了。跟餐馆换个服务员继续招待你一样;
2. Dubbo是Java下的一套RPC框架(soa思想),作用就是统一管理配置,各个系统服务间的调用。dubbo在淘宝也是解决他们实际问题的,不一定适合其他。 另外各家公司也都有大同小异的实现,所以没多少人用、也就没多少介绍。原理就是: A系统调用B系统接口服务, 后面就是怎么把这个流程,动态化(zookeeper通知)、权限化、配置化、低耦合化、自动化。
总之:
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求。
Dubbo 3.0重大革新
据了解,新的 Dubbo 内核与 Dubbo 2.0 完全不同,但它兼容 2.0。Dubbo 3.0 将以 Streaming 为内核,而不再是 2.0 时代的 RPC,但是 RPC 会在 3.0 中变成远程 Streaming 对接的一种可选形态。梁飞给出了一个内核接口:Streaming docking(Streaming),他说一切服务治理将围绕这个内核接口进行扩展。而 Streaming 通道与 gRPC 类似,支持 HTTP/2,同时 REST 接口也会受到一等公民支持,但是梁飞也表示此次在通讯上的改动并不大,重点是在服务治理和编程模型上。
说到编程模型的革新,梁飞透露,此次 Dubbo 3.0 能够开工,主要也是因为新特性将去掉一切阻塞,以“一切同步”为第一目标,在对 IO 密集业务的处理上,它能够提高机器利用率,使得一半机器的成本被节省下来。他还表示,其实 Dubbo 3.0 技术选型重大变更的驱动因素,也就是降低成本,因为在将系统服务化后,全业务线的机器都在等待返回数据,负载压不上去,机器浪费严重。
这个去阻塞化的模式,其实就是使用了“反应式编程”模式(Reactive Programming),梁飞介绍,在 Dubbo 3.0 中,reactive 将成为核心,会做到客户端、服务端、缓存和数据库,全程无阻塞。在数据库上,JDBC 驱动将进行更改,同时,为了性能,还会配合使用阿里毕玄对 JVM 协程的改造。更为重要的是,这个重大变更,不仅体现在 Dubbo 上,它也将影响到阿里 10 年来积累的中间件。
群里有人问到是否会采用 Service Mesh,梁飞表示,Dubbo 3.0 将支持可选 mesh,多加一层 IPC,这主要是为了兼容老系统;而内部则会优先尝试内嵌模式。他说代理模式 Ops 可独立升级框架,减少业务侵入,而内嵌模式可以带业务测试、部署节点少、稳定性检测方便。同时,可以将 Dubbo 3.0 启动为独立进程,由 dubbo-mesh 进行 IPC,路由、负载均衡和熔断机制将由独立进程控制。
拭目以待
据说,目前Dubbo 3.0 已正式投入全职开发梯队,初步 Runtime 已在验证,3 月底将在线上应用投入使用。
自去年11月份阿里公开宣布重启维护Dubbo 之后,大家一直在关注着Dubbo 的进展。今天这样一个小道消息的爆出,让大家很是兴奋,希望Dubbo真正完成涅磐重生!
开源地址
Dubbo GitHub地址:https://github.com/alibaba/dubbo
(本资讯同步发布于:https://mp.weixin.qq.com/s/PpH9xoj0FZAbjKHkA57AAw,http://www.52im.net/article-282-1.html)