<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>常见问题与解答 on Dapr 文档库</title><link>https://v1-18.docs.dapr.io/zh-hans/concepts/faq/</link><description>Recent content in 常见问题与解答 on Dapr 文档库</description><generator>Hugo</generator><language>zh-hans</language><atom:link href="https://v1-18.docs.dapr.io/zh-hans/concepts/faq/index.xml" rel="self" type="application/rss+xml"/><item><title>Dapr 常见问题解答</title><link>https://v1-18.docs.dapr.io/zh-hans/concepts/faq/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/concepts/faq/faq/</guid><description>&lt;h2 id="dapr-与-istiolinkerd-或-osm-等服务网格有何不同">Dapr 与 Istio、Linkerd 或 OSM 等服务网格有何不同？&lt;/h2>
&lt;p>Dapr 并非服务网格。服务网格主要关注细粒度的网络控制，而 Dapr 则致力于帮助开发人员构建分布式应用程序。Dapr 和服务网格都采用 sidecar 模式，与应用程序共同运行。虽然它们有一些功能重叠，但各自也提供了独特的优势。有关更多信息，请阅读 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/concepts/faq/service-mesh/">Dapr &amp;amp; 服务网格&lt;/a> 概念页面。&lt;/p>
&lt;h2 id="性能基准">性能基准&lt;/h2>
&lt;p>由于 Dapr 作为应用程序的 sidecar，Dapr 项目对性能非常重视。请参阅 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/performance-and-scalability/perf-service-invocation/">此处&lt;/a> 以获取最新的性能数据。&lt;/p>
&lt;h2 id="actors">actors&lt;/h2>
&lt;h3 id="daprorleans-和-service-fabric-reliable-actors-之间有什么关系">Dapr、Orleans 和 Service Fabric Reliable Actors 之间有什么关系？&lt;/h3>
&lt;p>Dapr 中的 actors 源于 &lt;a href="https://www.microsoft.com/research/project/orleans-virtual-actors/">Orleans&lt;/a> 的虚拟 actor 概念，这意味着它们在被调用时会激活，并在一段时间后自动停用。如果您熟悉 Orleans，Dapr 的 C# actors 会让您感到熟悉。Dapr 的 C# actors 基于 &lt;a href="https://docs.microsoft.com/azure/service-fabric/service-fabric-reliable-actors-introduction">Service Fabric Reliable Actors&lt;/a>（同样源于 Orleans），这使得您可以将 Service Fabric 中的 Reliable Actors 迁移到其他托管平台，如 Kubernetes 或其他本地环境。此外，Dapr 不仅仅局限于 actors。它为您提供了一套最佳实践的构建模块，可以集成到任何微服务应用程序中。请参阅 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/concepts/overview/">Dapr 概述&lt;/a>。&lt;/p>
&lt;h3 id="dapr-与其他-actor-框架有何区别">Dapr 与其他 actor 框架有何区别？&lt;/h3>
&lt;p>虚拟 actor 功能是 Dapr 运行时提供的众多构建模块之一。由于 Dapr 是编程语言无关的，并提供 http/gRPC API，因此可以从任何语言调用 actors。这允许用一种语言编写的 actors 调用用不同语言编写的 actors。&lt;/p></description></item><item><title>Dapr与服务网格</title><link>https://v1-18.docs.dapr.io/zh-hans/concepts/faq/service-mesh/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/concepts/faq/service-mesh/</guid><description>&lt;p>Dapr 采用 sidecar 架构，作为独立进程与应用程序并行运行，提供服务调用、网络安全和&lt;a href="https://middleware.io/blog/what-is-distributed-tracing/">分布式追踪&lt;/a>等功能。这常常引发一个问题：Dapr 与 Linkerd、Istio 和 Open Service Mesh 等服务网格解决方案相比如何？&lt;/p>
&lt;h2 id="dapr与服务网格的比较">Dapr与服务网格的比较&lt;/h2>
&lt;p>虽然 Dapr 和服务网格确实有一些功能重叠，但&lt;strong>Dapr 不是一个服务网格&lt;/strong>。服务网格主要关注网络层面的问题，而 Dapr 则专注于为开发者提供构建微服务的工具。Dapr 是以开发者为中心的，而服务网格则是以基础设施为中心的。&lt;/p>
&lt;p>通常情况下，开发者无需关心应用程序是否部署在包含服务网格的环境中，因为服务网格会自动处理网络流量。服务网格主要由系统运维人员管理和部署，而 Dapr 的构建块 API 则是供开发者在代码中直接使用的。&lt;/p>
&lt;p>Dapr 与服务网格共享的一些常见功能包括：&lt;/p>
&lt;ul>
&lt;li>使用 mTLS 加密进行安全的服务间通信&lt;/li>
&lt;li>服务间的指标收集&lt;/li>
&lt;li>服务间的分布式追踪&lt;/li>
&lt;li>通过重试实现的弹性&lt;/li>
&lt;/ul>
&lt;p>值得注意的是，Dapr 提供基于名称的服务发现和调用，这对开发者来说非常友好。通过 Dapr 的 service-invocation API，开发者可以直接调用服务名称，而服务网格则处理 IP 地址和 DNS 地址等网络细节。然而，Dapr 不提供流量路由或流量拆分等功能，这些通常由应用程序的入口代理来解决。此外，Dapr 还提供其他应用程序级别的构建块，如状态管理、发布订阅消息传递、actor 模型等。&lt;/p>
&lt;p>Dapr 与服务网格在可观测性（追踪和指标）方面也有所不同。服务网格在网络层面操作，追踪服务之间的网络调用，而 Dapr 则通过 service-invocation 实现这一点。此外，Dapr 通过将追踪 ID 写入 Cloud Events 信封，提供对发布订阅调用的可观测性。这意味着对于同时使用服务间调用和发布订阅进行通信的应用程序，Dapr 的指标和追踪范围更广。&lt;/p>
&lt;p>下图展示了 Dapr 和服务网格提供的重叠功能和独特能力：&lt;/p>
&lt;img src="https://v1-18.docs.dapr.io/images/service-mesh.png" width=1000>
&lt;h2 id="将dapr与服务网格一起使用">将Dapr与服务网格一起使用&lt;/h2>
&lt;p>Dapr 可以与服务网格协同工作。在两者同时部署的情况下，Dapr 和服务网格的 sidecar 都在应用程序环境中运行。在这种情况下，建议仅配置 Dapr 或服务网格来执行 mTLS 加密和分布式追踪。&lt;/p></description></item></channel></rss>