<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Dapr 服务概述 on Dapr 文档库</title><link>https://v1-18.docs.dapr.io/zh-hans/concepts/dapr-services/</link><description>Recent content in Dapr 服务概述 on Dapr 文档库</description><generator>Hugo</generator><language>zh-hans</language><atom:link href="https://v1-18.docs.dapr.io/zh-hans/concepts/dapr-services/index.xml" rel="self" type="application/rss+xml"/><item><title>Dapr sidecar (daprd) 概述</title><link>https://v1-18.docs.dapr.io/zh-hans/concepts/dapr-services/sidecar/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/concepts/dapr-services/sidecar/</guid><description>&lt;p>Dapr 采用 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/concepts/overview/#sidecar-architecture">sidecar 模式&lt;/a>，这意味着 Dapr API 运行在一个独立的进程中，即 Dapr sidecar，并与您的应用程序一起运行。Dapr sidecar 进程命名为 &lt;code>daprd&lt;/code>，并根据托管环境以不同的方式启动。&lt;/p>
&lt;p>Dapr sidecar 提供以下功能：&lt;/p>
&lt;ul>
&lt;li>应用程序业务逻辑使用的 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/concepts/building-blocks-concept/">构建块 API&lt;/a>&lt;/li>
&lt;li>用于发现功能和设置属性的 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/reference/api/metadata_api/">元数据 API&lt;/a>&lt;/li>
&lt;li>用于检查健康状态和 sidecar 准备及存活状态的 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/resiliency/health-checks/sidecar-health/">健康 API&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>当应用程序在其配置的端口上可访问时，Dapr sidecar 即达到准备状态。在应用程序启动或初始化期间，应用程序暂时无法访问 Dapr 组件。&lt;/p>
&lt;img src="https://v1-18.docs.dapr.io/images/overview-sidecar-apis.png" width=700>
&lt;p>应用程序通过本地 http 或 gRPC 端点调用 sidecar API。
&lt;img src="https://v1-18.docs.dapr.io/images/overview-sidecar-model.png" width=700>&lt;/p>
&lt;h2 id="使用-dapr-run-的自托管">使用 &lt;code>dapr run&lt;/code> 的自托管&lt;/h2>
&lt;p>在 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/self-hosted/">自托管模式&lt;/a> 下安装 Dapr 时，&lt;code>daprd&lt;/code> 二进制文件会被下载并放置在用户主目录下（Linux/macOS 为 &lt;code>$HOME/.dapr/bin&lt;/code>，Windows 为 &lt;code>%USERPROFILE%\.dapr\bin\&lt;/code>）。&lt;/p>
&lt;p>在自托管模式下，使用 Dapr CLI 的 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/reference/cli/dapr-run/">&lt;code>run&lt;/code> 命令&lt;/a> 会启动 &lt;code>daprd&lt;/code> 可执行文件，并运行您提供的应用程序可执行文件。这是在本地进行开发和测试等场景中运行 Dapr sidecar 的推荐方式。&lt;/p>
&lt;p>您可以在 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/reference/cli/dapr-run/">Dapr run 命令参考&lt;/a> 中找到 CLI 提供的用于配置 sidecar 的各种参数。&lt;/p>
&lt;h2 id="在-kubernetes-中使用-dapr-sidecar-injector">在 Kubernetes 中使用 &lt;code>dapr-sidecar-injector&lt;/code>&lt;/h2>
&lt;p>在 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/kubernetes/">Kubernetes&lt;/a> 上，Dapr 控制平面包括 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/kubernetes/kubernetes-overview/">dapr-sidecar-injector 服务&lt;/a>，它监视带有 &lt;code>dapr.io/enabled&lt;/code> 注释的新 pod，并在 pod 内注入一个包含 &lt;code>daprd&lt;/code> 进程的容器。在这种情况下，可以通过注释传递 sidecar 参数，如 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/reference/arguments-annotations-overview/">此表&lt;/a> 中的 &lt;strong>Kubernetes 注释&lt;/strong> 列所述。&lt;/p></description></item><item><title>Dapr Operator 控制平面服务概述</title><link>https://v1-18.docs.dapr.io/zh-hans/concepts/dapr-services/operator/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/concepts/dapr-services/operator/</guid><description>&lt;p>在 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/kubernetes/">Kubernetes 模式&lt;/a>下运行 Dapr 时，一个运行 Dapr Operator 服务的 pod 负责管理 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/components/">Dapr 组件&lt;/a>的更新，并为 Dapr 提供 Kubernetes 服务端点。&lt;/p>
&lt;h2 id="运行-operator-服务">运行 Operator 服务&lt;/h2>
&lt;p>Operator 服务是 &lt;code>dapr init -k&lt;/code> 部署过程的一部分，或者可以通过 Dapr Helm charts 部署。有关在 Kubernetes 上运行 Dapr 的更多信息，请访问 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/kubernetes/">Kubernetes 托管页面&lt;/a>。&lt;/p>
&lt;h2 id="其他配置选项">其他配置选项&lt;/h2>
&lt;p>Operator 服务提供了一些额外的配置选项。&lt;/p>
&lt;h3 id="注入器监控功能">注入器监控功能&lt;/h3>
&lt;p>Operator 服务包含一个 &lt;em>注入器监控功能&lt;/em>，它会定期检查 Kubernetes 集群中所有运行的 pod，确保那些标记了 &lt;code>dapr.io/enabled=true&lt;/code> 的 pod 中正确注入了 Dapr sidecar。这个功能主要用于解决 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/concepts/dapr-services/sidecar-injector/">注入器服务&lt;/a>未能成功将 sidecar（&lt;code>daprd&lt;/code> 容器）注入 pod 的问题。&lt;/p>
&lt;p>注入器监控功能在以下情况下可能会很有帮助：&lt;/p>
&lt;ul>
&lt;li>
&lt;p>从完全停止的 Kubernetes 集群中恢复。当集群完全停止后再启动时（包括在集群完全故障的情况下），pod 会以随机顺序重启。如果您的应用程序在 Dapr 控制平面（特别是注入器服务）准备好之前重启，Dapr sidecar 可能不会注入到您的应用程序的 pod 中，导致应用程序行为异常。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>解决 sidecar 注入器可能出现的随机故障，例如注入器服务中的瞬时故障。&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>如果监控功能发现某个 pod 缺少 sidecar，而它本应该有一个，它会删除该 pod。然后 Kubernetes 会重新创建该 pod，并再次调用 Dapr sidecar 注入器。&lt;/p></description></item><item><title>Dapr Placement 控制平面服务概述</title><link>https://v1-18.docs.dapr.io/zh-hans/concepts/dapr-services/placement/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/concepts/dapr-services/placement/</guid><description>&lt;p>Dapr Placement 服务用于计算和分发用于定位的分布式哈希表，以便在&lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/self-hosted/">自托管模式&lt;/a>或&lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/kubernetes/">Kubernetes&lt;/a>上运行的&lt;a href="https://v1-18.docs.dapr.io/zh-hans/developing-applications/building-blocks/actors/">Dapr actor&lt;/a>能够被正确定位。哈希表按命名空间分组，将actor类型映射到相应的pod或进程，以便Dapr应用程序可以与actor进行通信。每当Dapr应用程序激活一个Dapr actor时，Placement服务会更新哈希表以反映最新的actor位置。&lt;/p>
&lt;h2 id="自托管模式">自托管模式&lt;/h2>
&lt;p>在自托管模式下，Placement服务的Docker容器会在执行&lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/self-hosted/self-hosted-with-docker/">&lt;code>dapr init&lt;/code>&lt;/a>时自动启动。如果您使用&lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/self-hosted/self-hosted-no-docker/">slim-init模式&lt;/a>，也可以手动将其作为进程运行。&lt;/p>
&lt;h2 id="kubernetes模式">Kubernetes模式&lt;/h2>
&lt;p>在Kubernetes模式下，Placement服务可以通过执行&lt;code>dapr init -k&lt;/code>或使用Dapr Helm图表进行部署。您可以选择在高可用性（HA）模式下运行Placement服务。&lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/kubernetes/kubernetes-production/#individual-service-ha-helm-configuration">了解更多关于在Kubernetes中设置HA模式的信息。&lt;/a>&lt;/p>
&lt;p>有关在Kubernetes上运行Dapr的更多信息，请访问&lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/kubernetes/">Kubernetes托管页面&lt;/a>。&lt;/p>
&lt;h2 id="placement表">Placement表&lt;/h2>
&lt;p>Placement服务提供了一个HTTP API &lt;code>/placement/state&lt;/code>，用于公开placement表的信息。该API与sidecar的healthz端口相同。这个端点默认是禁用的且不需要身份验证。要启用它，您需要将&lt;code>DAPR_PLACEMENT_METADATA_ENABLED&lt;/code>环境变量或&lt;code>metadata-enabled&lt;/code>命令行参数设置为true。如果您使用helm，只需将&lt;code>dapr_placement.metadataEnabled&lt;/code>设置为true。&lt;/p>


&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">重要&lt;/h4>

 当actor被部署到不同的命名空间时，如果您希望防止从所有命名空间检索actor信息，建议禁用&lt;code>metadata-enabled&lt;/code>。元数据端点的范围覆盖所有命名空间。

&lt;/div>

&lt;h3 id="用例">用例：&lt;/h3>
&lt;p>placement表API可用于检索当前的placement表，其中包含所有命名空间中注册的actor信息。这对于调试和工具提取、呈现actor信息非常有帮助。&lt;/p>
&lt;h3 id="http请求">HTTP请求&lt;/h3>
&lt;pre tabindex="0">&lt;code>GET http://localhost:&amp;lt;healthzPort&amp;gt;/placement/state
&lt;/code>&lt;/pre>&lt;h3 id="http响应代码">HTTP响应代码&lt;/h3>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>代码&lt;/th>
 &lt;th>描述&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>200&lt;/td>
 &lt;td>返回placement表信息&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>500&lt;/td>
 &lt;td>Placement无法返回placement表信息&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="http响应体">HTTP响应体&lt;/h3>
&lt;p>&lt;strong>Placement表API响应对象&lt;/strong>&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>名称&lt;/th>
 &lt;th>类型&lt;/th>
 &lt;th>描述&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>tableVersion&lt;/td>
 &lt;td>int&lt;/td>
 &lt;td>placement表版本&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>hostList&lt;/td>
 &lt;td>&lt;a href="https://v1-18.docs.dapr.io/zh-hans/concepts/dapr-services/placement/#actorhostinfo">Actor Host Info&lt;/a>[]&lt;/td>
 &lt;td>注册的actor主机信息的json数组。&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>&lt;a id="actorhostinfo">&lt;/a>&lt;strong>Actor主机信息&lt;/strong>&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>名称&lt;/th>
 &lt;th>类型&lt;/th>
 &lt;th>描述&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>name&lt;/td>
 &lt;td>string&lt;/td>
 &lt;td>actor的主机:端口地址。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>appId&lt;/td>
 &lt;td>string&lt;/td>
 &lt;td>应用程序ID。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>actorTypes&lt;/td>
 &lt;td>json string array&lt;/td>
 &lt;td>它托管的actor类型列表。&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>updatedAt&lt;/td>
 &lt;td>timestamp&lt;/td>
 &lt;td>actor注册/更新的时间戳。&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h3 id="示例">示例&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span> curl localhost:8080/placement/state
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;hostList&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#000;font-weight:bold">[{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;name&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;198.18.0.1:49347&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;namespace&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;ns1&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;appId&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;actor1&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;actorTypes&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#000;font-weight:bold">[&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;testActorType1&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;testActorType3&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">],&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;updatedAt&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#0000cf;font-weight:bold">1690274322325260000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000;font-weight:bold">},&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;name&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;198.18.0.2:49347&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;namespace&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;ns2&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;appId&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;actor2&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;actorTypes&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#000;font-weight:bold">[&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;testActorType2&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">],&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;updatedAt&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#0000cf;font-weight:bold">1690274322325260000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000;font-weight:bold">},&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;name&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;198.18.0.3:49347&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;namespace&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;ns2&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;appId&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;actor2&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;actorTypes&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#000;font-weight:bold">[&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;testActorType2&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">],&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;updatedAt&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#0000cf;font-weight:bold">1690274322325260000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000;font-weight:bold">],&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;#34;tableVersion&amp;#34;&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span> &lt;span style="color:#0000cf;font-weight:bold">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="相关链接">相关链接&lt;/h2>
&lt;p>&lt;a href="https://v1-18.docs.dapr.io/zh-hans/reference/api/placement_api/">了解更多关于Placement API的信息。&lt;/a>&lt;/p></description></item><item><title>Dapr Scheduler 控制平面服务概述</title><link>https://v1-18.docs.dapr.io/zh-hans/concepts/dapr-services/scheduler/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/concepts/dapr-services/scheduler/</guid><description>&lt;p>Dapr Scheduler 服务用于作业调度，可以在&lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/self-hosted/">自托管模式&lt;/a>或&lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/kubernetes/">Kubernetes&lt;/a>上运行。&lt;/p>
&lt;p>下图展示了如何通过作业 API 从您的应用程序调用 Scheduler 服务。Scheduler 服务跟踪的所有作业都存储在嵌入式 Etcd 数据库中。&lt;/p>
&lt;img src="https://v1-18.docs.dapr.io/images/scheduler/scheduler-architecture.png" alt="展示 Scheduler 控制平面服务和作业 API 的图示">
&lt;h2 id="actor-提醒">actor 提醒&lt;/h2>
&lt;p>在 Dapr v1.15 之前，&lt;a href="https://v1-18.docs.dapr.io/zh-hans/developing-applications/building-blocks/actors/actors-timers-reminders/#actor-reminders">actor 提醒&lt;/a>是通过 Placement 服务运行的。现在，默认情况下，&lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/support/support-preview-features/#current-preview-features">&lt;code>SchedulerReminders&lt;/code> 功能标志&lt;/a>被设置为 &lt;code>true&lt;/code>，您创建的所有新 actor 提醒都通过 Scheduler 服务运行，以提高其可扩展性。&lt;/p>
&lt;p>当您部署 Dapr v1.15 时，所有现有的 actor 提醒会从 Placement 服务迁移到 Scheduler 服务。这是针对每种 actor 类型的一次性迁移操作。您可以通过在 actor 类型的应用程序配置文件中将 &lt;code>SchedulerReminders&lt;/code> 标志设置为 &lt;code>false&lt;/code> 来阻止此迁移。&lt;/p>
&lt;h2 id="自托管模式">自托管模式&lt;/h2>
&lt;p>Scheduler 服务的 Docker 容器作为 &lt;code>dapr init&lt;/code> 的一部分自动启动。如果您在&lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/self-hosted/self-hosted-no-docker/">精简初始化模式&lt;/a>下运行，也可以手动作为进程运行。&lt;/p>
&lt;h2 id="kubernetes-模式">Kubernetes 模式&lt;/h2>
&lt;p>Scheduler 服务作为 &lt;code>dapr init -k&lt;/code> 的一部分或通过 Dapr Helm 图表部署。您可以在高可用性模式下运行 Scheduler。&lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/kubernetes/kubernetes-production/#individual-service-ha-helm-configuration">了解更多关于在 Kubernetes 服务中设置高可用性模式的信息。&lt;/a>&lt;/p></description></item><item><title>Dapr Sentry 控制平面服务概述</title><link>https://v1-18.docs.dapr.io/zh-hans/concepts/dapr-services/sentry/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/concepts/dapr-services/sentry/</guid><description>&lt;p>Dapr Sentry 服务负责管理服务之间的 mTLS，并作为证书颁发机构。它生成 mTLS 证书并将其分发给所有正在运行的 sidecar。这样，sidecar 可以通过加密的 mTLS 流量进行通信。有关更多信息，请阅读 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/concepts/security-concept/#sidecar-to-sidecar-communication">sidecar-to-sidecar 通信概述&lt;/a>。&lt;/p>
&lt;h2 id="自托管模式">自托管模式&lt;/h2>
&lt;p>Sentry 服务的 Docker 容器不会作为 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/self-hosted/self-hosted-with-docker/">&lt;code>dapr init&lt;/code>&lt;/a> 的一部分自动启动。不过，您可以按照 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/security/mtls/#self-hosted">mutual TLS&lt;/a> 的设置说明手动启动。&lt;/p>
&lt;p>如果您在 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/self-hosted/self-hosted-no-docker/">slim-init 模式&lt;/a> 下运行，也可以手动以进程的方式启动。&lt;/p>
&lt;img src="https://v1-18.docs.dapr.io/images/security-mTLS-sentry-selfhosted.png" width=1000>
&lt;h2 id="kubernetes-模式">Kubernetes 模式&lt;/h2>
&lt;p>Sentry 服务可以通过 &lt;code>dapr init -k&lt;/code> 或使用 Dapr Helm Chart 部署。有关在 Kubernetes 上运行 Dapr 的更多信息，请访问 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/kubernetes/">Kubernetes 托管页面&lt;/a>。&lt;/p>
&lt;img src="https://v1-18.docs.dapr.io/images/security-mTLS-sentry-kubernetes.png" width=1000>
&lt;h2 id="进一步阅读">进一步阅读&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://v1-18.docs.dapr.io/zh-hans/concepts/security-concept/">安全概述&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/self-hosted/self-hosted-with-docker/">自托管模式&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/kubernetes/">Kubernetes 模式&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Dapr Sidecar Injector 控制平面服务概述</title><link>https://v1-18.docs.dapr.io/zh-hans/concepts/dapr-services/sidecar-injector/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://v1-18.docs.dapr.io/zh-hans/concepts/dapr-services/sidecar-injector/</guid><description>&lt;p>在 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/kubernetes/">Kubernetes 模式&lt;/a> 下运行 Dapr 时，会创建一个运行 Dapr Sidecar Injector 服务的 pod。该服务会识别那些使用 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/reference/arguments-annotations-overview/">Dapr 注解&lt;/a> 初始化的 pod，并为这些 pod 中的 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/concepts/dapr-services/sidecar/">daprd 服务&lt;/a> 创建额外的容器。&lt;/p>
&lt;h2 id="运行-sidecar-注入器">运行 Sidecar 注入器&lt;/h2>
&lt;p>Sidecar 注入器服务可以通过执行 &lt;code>dapr init -k&lt;/code> 部署，或者通过 Dapr 的 Helm chart 进行部署。有关在 Kubernetes 上运行 Dapr 的更多信息，请访问 &lt;a href="https://v1-18.docs.dapr.io/zh-hans/operations/hosting/kubernetes/">Kubernetes 托管页面&lt;/a>。&lt;/p></description></item></channel></rss>