<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Dubbo 介绍 on Apache Dubbo</title><link>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/overview/what/</link><description>Recent content in Dubbo 介绍 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://deploy-preview-3199--dubbo.netlify.app/zh-cn/overview/what/index.xml" rel="self" type="application/rss+xml"/><item><title>了解 Dubbo 核心概念和架构</title><link>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/overview/what/overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/overview/what/overview/</guid><description>&lt;p>&lt;img alt="architecture" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/v3/concepts/architecture-2.png">&lt;/p>
&lt;p>以上是 Dubbo 的工作原理图，从抽象架构上分为两层：&lt;strong>服务治理抽象控制面&lt;/strong> 和 &lt;strong>Dubbo 数据面&lt;/strong> 。&lt;/p>
&lt;ul>
&lt;li>&lt;strong>服务治理控制面&lt;/strong>。服务治理控制面不是特指如注册中心类的单个具体组件，而是对 Dubbo 治理体系的抽象表达。控制面包含协调服务发现的注册中心、流量管控策略、Dubbo Admin 控制台等，如果采用了 Service Mesh 架构则还包含 Istio 等服务网格控制面。&lt;/li>
&lt;li>&lt;strong>Dubbo 数据面&lt;/strong>。数据面代表集群部署的所有 Dubbo 进程，进程之间通过 RPC 协议实现数据交换，Dubbo 定义了微服务应用开发与调用规范并负责完成数据传输的编解码工作。
&lt;ul>
&lt;li>服务消费者 (Dubbo Consumer)，发起业务调用或 RPC 通信的 Dubbo 进程&lt;/li>
&lt;li>服务提供者 (Dubbo Provider)，接收业务调用或 RPC 通信的 Dubbo 进程&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="dubbo-数据面">Dubbo 数据面&lt;/h2>
&lt;p>从数据面视角，Dubbo 帮助解决了微服务实践中的以下问题：&lt;/p>
&lt;ul>
&lt;li>Dubbo 作为 &lt;strong>服务开发框架&lt;/strong> 约束了微服务定义、开发与调用的规范，定义了服务治理流程及适配模式&lt;/li>
&lt;li>Dubbo 作为 &lt;strong>RPC 通信协议实现&lt;/strong> 解决服务间数据传输的编解码问题&lt;/li>
&lt;/ul>
&lt;p>&lt;img alt="framework" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/v3/what/framework1.png">&lt;/p>
&lt;h3 id="服务开发框架">服务开发框架&lt;/h3>
&lt;p>微服务的目标是构建足够小的、自包含的、独立演进的、可以随时部署运行的分布式应用程序，几乎每个语言都有类似的应用开发框架来帮助开发者快速构建此类微服务应用，比如 Java 微服务体系的 Spring Boot，它帮 Java 微服务开发者以最少的配置、最轻量的方式快速开发、打包、部署与运行应用。&lt;/p>
&lt;p>微服务的分布式特性，使得应用间的依赖、网络交互、数据传输变得更频繁，因此不同的&lt;strong>应用需要定义、暴露或调用 RPC 服务，那么这些 RPC 服务如何定义、如何与应用开发框架结合、服务调用行为如何控制？这就是 Dubbo 服务开发框架的含义，Dubbo 在微服务应用开发框架之上抽象了一套 RPC 服务定义、暴露、调用与治理的编程范式&lt;/strong>，比如 Dubbo Java 作为服务开发框架，当运行在 Spring 体系时就是构建在 Spring Boot 应用开发框架之上的微服务开发框架，并在此之上抽象了一套 RPC 服务定义、暴露、调用与治理的编程范式。&lt;/p></description></item><item><title>与 gRPC、Spring Cloud、Istio 的关系</title><link>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/overview/what/xyz-difference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/overview/what/xyz-difference/</guid><description>&lt;p>很多开发者经常会问到 Apache Dubbo 与 Spring Cloud、gRPC 以及一些 Service Mesh 项目如 Istio 的关系，要解释清楚它们的关系并不困难，你只需要跟随这篇文章和 Dubbo 文档做一些更深入的了解，但总的来说，它们之间有些能力是重合的，但在一些场景你可以把它们放在一起使用。&lt;/p>
&lt;p>虽然这是一篇 Dubbo 维护者写的文档，我们仍会尽力将 Dubbo 与其他组件之间的联系与差异客观、透明的展现出来，但考虑到每个人对不同产品的熟悉程度不一，这里的个别表述可能并不完全准确，希望能给开发者带来帮助。&lt;/p>
&lt;h2 id="dubbo-与-spring-cloud">Dubbo 与 Spring Cloud&lt;/h2>
&lt;p>&lt;img alt="dubbo-springcloud" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/v3/difference/dubbo-springcloud.png">&lt;/p>
&lt;p>从上图我们可以看出，Dubbo 和 Spring Cloud 有很多相似之处，它们都在整个架构图的相同位置并提供一些相似的功能。&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Dubbo 和 Spring Cloud 都侧重在对分布式系统中常见问题模式的抽象（如服务发现、负载均衡、动态配置等）&lt;/strong>，同时对每一个问题都提供了配套组件实现，形成了一套微服务整体解决方案，让使用 Dubbo 及 Spring Cloud 的用户在开发微服务应用时可以专注在业务逻辑开发上。&lt;/li>
&lt;li>&lt;strong>Dubbo 和 Spring Cloud 都完全兼容 Spring 体系的应用开发模式&lt;/strong>，Dubbo 对 Spring 应用开发框架、Spring Boot 微服务框架都做了很好的适配，由于 Spring Cloud 出自 Spring 体系，在这一点上自然更不必多说。&lt;/li>
&lt;/ul>
&lt;p>虽然两者有很多相似之处，但由于它们在诞生背景与架构设计上的巨大差异，&lt;strong>两者在性能、适用的微服务集群规模、生产稳定性保障、服务治理等方面都有很大差异&lt;/strong>。&lt;/p>
&lt;p>Spring Cloud 的优势在于：&lt;/p>
&lt;ul>
&lt;li>同样都支持 Spring 开发体系的情况下，Spring Cloud 得到更多的原生支持&lt;/li>
&lt;li>对一些常用的微服务模式做了抽象如服务发现、动态配置、异步消息等，同时包括一些批处理任务、定时任务、持久化数据访问等领域也有涉猎。&lt;/li>
&lt;li>基于 HTTP 的通信模式，加上相对比较完善的入门文档和演示 demo 和 starters，让开发者在第一感觉上更易于上手&lt;/li>
&lt;/ul>
&lt;p>Spring Cloud 的问题有：&lt;/p></description></item></channel></rss>