首次揭秘 Dubbo Ecosystem:从微服务框架到微服务生态

随着近几年微服务的流行,越来越多的用户选择从单体应用向分布式应用进行转型,在这个过程中,有许多企业选择了Alibaba开源的RPC框架Dubbo作为分布式应用开发的基础组件。

小编整理了一些java进阶学习资料和面试题,需要资料的请加JAVA高阶学习Q群:664389243 这是小编创建的java高阶学习交流群,加群一起交流学习深造。群里也有小编整理的2019年最新最全的java高阶学习资料!

但是,随着微服务化的逐渐深入,我们也发现Dubbo目前提供的能力逐渐无法满足微服务的各个方面需求。例如API gateway,熔断限流,分布式监控,分布式事务等方面,缺乏一套比较完整的围绕Dubbo的解决方案,基本上是各个公司自研,或者需要调研外面开源的各种框架进行调研选型,花费了比较大的时间和精力在这上面,却无法形成一套体系化的方案。

因此我们决定围绕Dubbo打造一整套微服务的解决方案,它包含了一系列的项目,涵盖微服务开发中的各个方面。这里面的项目都是经过Dubbo社区共同评估过,和Dubbo进行高度集成,且在生产中得到过验证的项目(这里并不是说所有的项目是阿里巴巴开源的),我们把它称之为“Apache Dubbo Ecosystem”。希望通过这个Ecosystem,真正帮助用户轻松快速的实现微服务架构。

Apache Dubbo Ecosystem的组件选择原则

Dubbo是一个微服务框架,帮助开发者快速构建高性能的微服务应用。在此基础之上,Dubbo不可能把微服务领域的所有能力重新再实现一遍,首先从资源角度讲,是很难完成的,第二即使完成了大家也不一定会采用。因此通过和开源的成熟方案做集成,形成一套完成的微服务领域生态,组成Dubbo Ecosystem,开发者无需为现有的系统做出过的的修改,就能快速开发微服务应用,这是Dubbo Ecosystem的初衷。

关于组件选择的原则,和哪些组件进行集成,并不是大而全的照单全收,而是经过Dubbo社区进行挑选,主要有以下几点:

已经具备很好的开发者群体和影响力的组件

在生产领域下得到过验证的组件

在某一方面成为标准或者事实标准的组件

只有满足上述才会被纳入Dubbo Ecosystem。一方面可以减少用户选型的成本,另一方面DubboEcosystem的组件也不会因为太过庞大而失去意义。

Apache Dubbo Ecosystem的层次结构

作为一个微服务架构,本身需要各个方面的组件共同组成,首先我们需要明确一个微服务架构需要考虑的哪些组件,以及他们的重要程度如何,经过梳理,我们按照如下层级关系梳理出了Apache Dubbo Ecosystem的层级结构图,包含从L0-L3的4层。

L0层主要包括了Dubbo的核心RPC能力,以及Service Mesh的能力。L1层核心是服务的注册发现,配置管理,高可用Reliability和Metrics的数据统计。L2层开始将更加贴近微服务领域,包含API Gateway, Tracing,Diagnosis, Transaction等。L3层的组件则更加开放一些,但在Scheduling, Event Driven, Authentication, Function等方面都还没有特别明确的方案出来,希望拥抱社区,由社区来主导,形成更加开放的生态。

此外,在运维侧,Dubbo Ecosystem的数据会互相打通,Dubbo Ecosystem中各个组件统一暴露Observability能力,最终通过Dubbo OPS进行展示和管控。在开发侧,则会深度融入当前流行的编程模型,例如SpringCloud/Spring Boot。

Apache Dubbo Ecosystem和 Spring Cloud 的联系

Apache Dubbo Ecosystem和 SpringCloud并没有竞争关系。Dubbo可以通过纯API,Spring容器启动(XML),Spring-boot启动(注解)等多种方式启动,自Dubbo开源以来,和Spring一直有着紧密的集成,Spring Cloud也已成为越来越多开发者赖以进行微服务开发的编程方式。Dubbo会尽可能的集成到Spring Cloud开发模式当中,帮助开发者快速搭建微服务应用。

具体而言,Alibaba的开源套件将以Spring Cloud Alibaba的形式和Spring Cloud编程模型进行深度对接,而Dubbo的RPC将作为核心RPC组件被集成,同时Dubbo Ecosystem中的组件包括,服务发现以及动态配置一站式管理Nacos,熔断限流Sentinel,消息组件RocketMQ等都会被集成在Spring Cloud Alibaba中。同时,Spring CloudAlibaba也支持对接阿里云上的服务例如OSS,ACM, SchedulerX等等。

小编整理了一些java进阶学习资料和面试题,需要资料的请加JAVA高阶学习Q群:664389243 这是小编创建的java高阶学习交流群,加群一起交流学习深造。群里也有小编整理的2019年最新最全的java高阶学习资料!

猜你喜欢

转载自blog.csdn.net/weixin_42784331/article/details/86547620