Dapr sidecar (daprd) 概述
Dapr 采用 sidecar 模式,这意味着 Dapr API 运行在一个独立的进程中,即 Dapr sidecar,并与您的应用程序一起运行。Dapr sidecar 进程命名为 daprd
,并根据托管环境以不同的方式启动。
Dapr sidecar 提供以下功能:
当应用程序在其配置的端口上可访问时,Dapr sidecar 即达到准备状态。在应用程序启动或初始化期间,应用程序暂时无法访问 Dapr 组件。

应用程序通过本地 http 或 gRPC 端点调用 sidecar API。
使用 dapr run
的自托管
在 自托管模式 下安装 Dapr 时,daprd
二进制文件会被下载并放置在用户主目录下(Linux/macOS 为 $HOME/.dapr/bin
,Windows 为 %USERPROFILE%\.dapr\bin\
)。
在自托管模式下,使用 Dapr CLI 的 run
命令 会启动 daprd
可执行文件,并运行您提供的应用程序可执行文件。这是在本地进行开发和测试等场景中运行 Dapr sidecar 的推荐方式。
您可以在 Dapr run 命令参考 中找到 CLI 提供的用于配置 sidecar 的各种参数。
在 Kubernetes 中使用 dapr-sidecar-injector
在 Kubernetes 上,Dapr 控制平面包括 dapr-sidecar-injector 服务,它监视带有 dapr.io/enabled
注释的新 pod,并在 pod 内注入一个包含 daprd
进程的容器。在这种情况下,可以通过注释传递 sidecar 参数,如 此表 中的 Kubernetes 注释 列所述。
直接运行 sidecar
在大多数情况下,您不需要显式运行 daprd
,因为 sidecar 要么由 CLI(自托管模式)启动,要么由 dapr-sidecar-injector 服务(Kubernetes)启动。对于高级用例(如调试、脚本化部署等),可以直接启动 daprd
进程。
要获取所有可用参数的详细列表,请运行 daprd --help
或查看 此表,该表概述了 daprd
参数与 CLI 参数和 Kubernetes 注释的关系。
示例
-
通过指定其唯一 ID 启动与应用程序一起的 sidecar。
注意:
--app-id
是必填字段,且不能包含点。daprd --app-id myapp
-
指定您的应用程序正在监听的端口
daprd --app-id myapp --app-port 5000
-
如果您使用了多个自定义资源并希望指定资源定义文件的位置,请使用
--resources-path
参数:daprd --app-id myapp --resources-path <PATH-TO-RESOURCES-FILES>
-
如果您已将组件和其他资源(例如,弹性策略、订阅或配置)组织到单独的文件夹或共享文件夹中,您可以指定多个资源路径:
daprd --app-id myapp --resources-path <PATH-1-TO-RESOURCES-FILES> --resources-path <PATH-2-TO-RESOURCES-FILES>
-
在运行应用程序时启用 Prometheus 指标收集
daprd --app-id myapp --enable-metrics
-
仅监听 IPv4 和 IPv6 回环
daprd --app-id myapp --dapr-listen-addresses '127.0.0.1,[::1]'
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.