问题标签 [dapr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dapr - 如何在 Ubuntu Linux 上安装 Dapr
Dapr是基于分布式构建块和组件的新型事件驱动技术。
如何安装技术堆栈并开始使用 Dapr。
rest - 是否有 dapr.io 设计模式来获取状态存储中的所有键
在容器化微服务中,我使用 dapr.io 状态管理系统作为设备的数据缓存;提供一种大规模访问许多设备状态的高效方式。
使用简单的 CRUD 方法,我可以使用 dapr 创建、读取、更新和删除设备状态,如下所示:
- 邮政设备/
- 获取设备/钥匙
- PUT设备/钥匙
- 删除设备/密钥
我的主要问题是获取所有键的列表:
- 获取设备
由于 dapr 不支持状态存储中所有键的列表,我需要使用我自己的实现分别跟踪所有键。
https://github.com/dapr/docs/tree/master/concepts/state-management
到目前为止,我已经测试了两种方法:
- POST/PUT/DELETE 设备调用将事件发布到索引 API 的 SAGA 模式
- 在设备微服务 POST/PUT/DELETE 调用中手动管理索引
在我看来,上述方法增加了不必要的复杂性并产生了规模问题。
是否有使用 dapr 实现所有键列表的模式而没有上述复杂性?
docker - 特使代理没有转发到列出的地址?
所以我有一个 dapr 服务托管在:192.168.1.34:50459
我正在尝试让它使用 grpc-web 与我的 Web 应用程序通信。为此,我有一个特使代理(根据https://github.com/grpc/grpc-web/issues/347)。
我的 envoy.yaml 文件如下:
它应该在 0.0.0.0:4949 侦听,并将其转发到 192.168.1.34:50459
但是当我启动这个代理时
它将它路由到 0.0.0.0:50459
有谁知道如何解决这个问题?
azure-aks - dapr 自托管应用程序可以调用托管在 kubernetes 上的远程 dapr 服务吗?
我的分布式 dapr.io 应用程序增长非常快,并且包含多个 dapr app-id;并且出于开发目的在本地运行所有应用程序变得越来越困难。
开发中的本地自托管应用程序是否可以调用在 AKS 群集上运行的生产应用程序?
rabbitmq - RabbitMQ 的 Dapr 绑定无法使用 Dapr 发布/订阅示例
我已经获取了Dapr pub/sub How-to 示例并尝试更新它以使用 RabbitMQ
我已经从 DockerHub 下载了 Docker rabbitmq:3 映像,它应该在 amqp://localhost:5672 上监听。
我为 RabbitMQ 创建了一个名为 rabbitmq.yaml 的新组件文件,并将其放在 .dapr/components 目录中。我对 RabbitMQ 的组件配置是:
我的订阅在同一 .dapr/components 目录下的 subscription-rabbitmq.yaml 中定义。它看起来如下:
当我使用 Redis Streams 组件和订阅运行示例时,节点应用程序会收到消息并显示在 dapr run 命令的输出中。
dapr publish --topic deathStarStatus --pubsub pubsub --data '{ "message": "This is a test" }'
但是当我向 RabbitMQ 发布消息时,它会显示“事件发布成功”,但节点应用程序没有收到消息。
dapr publish --topic deathStarStatus --pubsub my-rabbitmq --data '{ "message": "This is a test" }'
这是节点应用程序和运行它的命令:
dapr run --app-id app2 --app-port 3000 node app2.js
我究竟做错了什么?
asp.net-core - Dapr 和 Docker Compose 指南
我正在兜圈子试图弄清楚如何做到这一点,但我有以下情况。我正在尝试将 Dapr 合并到我的 ASP.NET Core 微服务中。
我已经按照文档(dapr init
_ _ _ _docker ps
我有许多 ASP.NET 核心微服务要运行,但每个服务都在它们自己的 Visual Studio 解决方案中……也就是说,我没有一个解决方案包含我所有的微服务项目。
我的问题是,如何使用 Docker Compose 部署(和调试)单个微服务?我正在尝试研究如何将 Dapr sidecar 注入到我的微服务中,但也让我的微服务引用现有的、已经在运行的、用于 Redis、Placement 等的 Dapr 容器。这可能吗?我已尽力遵循文档,但似乎无法使其正常工作。我的撰写文件目前看起来像这样:
如果我要解决这个问题,处理这种情况的最佳方法是什么?
最终,我试图迎合我正在处理微服务 A 的情况,但该服务调用了微服务 B(Dapr 服务到服务调用)。我可以假设微服务 B 已经在本地构建和部署,并且在它自己的容器中运行(注入了 Dapr sidecar)。我只需要一个 Docker Compose 文件来构建微服务 A,注入 Dapr sidecar 并在本地部署容器,以便我可以测试和调试。
提前致谢。
asp.net-web-api - Dapr 未在独立模式下运行
我正在努力让一个基本的 ASP.NET Core API 在本地与 Dapr 一起工作。我遵循了文档,但仍然没有运气。我确定我只是缺少一些基本的东西,但我就是无法解决。
这些是我到目前为止为尝试使其正常工作所做的步骤:
- 安装 Dapr CLI(cli 版本 0.11.0)
- 已执行
dapr init --runtime-version 1.0.0-rc.3
(已安装并运行 3 个 docker 容器) - 导航到我的 dotnet 项目并执行以下命令 -
dapr run --app-id microservicea --app-port 5000 --dapr-http-port 55000 --dapr-grpc-port 55001 -- dotnet run
执行dapr run
命令后,项目构建并出现各种 Dapr 日志,但是,我也收到以下消息:
Could not update sidecar metadata for cliPID: PUT http://127.0.0.1:55000/v1.0/metadata/cliPID giving up after 5 attempts
这向我表明 sidecar 没有作为进程运行,或者只是无法访问。
我不知道我做错了什么。
作为旁注,我确实注意到,如果我将 与dapr-http-port
中的端口匹配launchsettings.json
,我会收到以下消息 -但是当我尝试调用端点You're up and running! Both Dapr and your app logs will appear here.
时它仍然不起作用。http://127.0.0.1:5000/v1.0/invoke/microservicea/method/GetSomeData
对此的一些帮助将不胜感激。如果我无法让这个基本示例正常工作,那么我将不得不放弃 Dapr 并寻找替代方案来将我的微服务拼接在一起。
nginx - 在 AKS 中使用 NGINX 在 POD 中缺少 Dapr Side-Car
我有一个在 Azure 中运行的 AKS 集群,并已将 Dapr 运行时与其他一些使用 dapr.io/enabled、dapr.io/id 注释的测试服务部署一起部署到其中。
Daprd side-car 容器实例与每个服务位于同一个 pod 中,因此一切都很好。
然后我安装了带有 Dapr side-car 注释的 NGINX,但是我没有看到 Daprd 容器实例与 NGINX 容器位于同一个 pod 中。
我按照这篇文章部署了 NGINX,并通过 dapr-annotation.yaml 文件应用了 Dapr 注释
这是我的工作量...
这是我的服务和入口...
部署的 Service1 有边车...
部署的 Echo 服务有边车...
NGINX 没有边车,但有注解......