问题标签 [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.

0 投票
2 回答
246 浏览

dapr - 如何在 Ubuntu Linux 上安装 Dapr

Dapr是基于分布式构建块和组件的新型事件驱动技术。

如何安装技术堆栈并开始使用 Dapr。

0 投票
1 回答
430 浏览

rest - 是否有 dapr.io 设计模式来获取状态存储中的所有键

在容器化微服务中,我使用 dapr.io 状态管理系统作为设备的数据缓存;提供一种大规模访问许多设备状态的高效方式。

使用简单的 CRUD 方法,我可以使用 dapr 创建、读取、更新和删除设备状态,如下所示:

  • 邮政设备/
  • 获取设备/钥匙
  • PUT设备/钥匙
  • 删除设备/密钥

我的主要问题是获取所有键的列表:

  • 获取设备

由于 dapr 不支持状态存储中所有键的列表,我需要使用我自己的实现分别跟踪所有键。

https://github.com/dapr/docs/tree/master/concepts/state-management

到目前为止,我已经测试了两种方法:

  1. POST/PUT/DELETE 设备调用将事件发布到索引 API 的 SAGA 模式
  2. 在设备微服务 POST/PUT/DELETE 调用中手动管理索引

在我看来,上述方法增加了不必要的复杂性并产生了规模问题。

是否有使用 dapr 实现所有键列表的模式而没有上述复杂性?

0 投票
1 回答
191 浏览

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

在此处输入图像描述

有谁知道如何解决这个问题?

0 投票
1 回答
170 浏览

azure-aks - dapr 自托管应用程序可以调用托管在 kubernetes 上的远程 dapr 服务吗?

我的分布式 dapr.io 应用程序增长非常快,并且包含多个 dapr app-id;并且出于开发目的在本地运行所有应用程序变得越来越困难。

开发中的本地自托管应用程序是否可以调用在 AKS 群集上运行的生产应用程序?

0 投票
1 回答
858 浏览

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

我究竟做错了什么?

0 投票
1 回答
445 浏览

c# - Dapr 客户端 Docker 撰写问题

我尝试在本地 Docker 实例中与 Dapr 集成 3 项服务。每个服务都在 Linux 容器中运行。

运行 Docker PS 我看到以下容器..

在此处输入图像描述

服务启动并运行后,我尝试将以下代码从 Service3 调用到 Service1 ...

我收到以下异常...

在此处输入图像描述

RequestUri 是否正确...

“http://127.0.0.1:3500/v1.0/invoke/nextware.daprtest.service1.api/method/Update”

鉴于这是调用边车的 DaprClient,我假设上面的 RequestUri 是正确的。

我错过了什么?

0 投票
1 回答
304 浏览

asp.net-core - 如何在 Dapr 中为控制器外的 .Net Core 订阅主题

几天前我刚开始使用 Dapr,虽然我能够在 Dapr 中发布和订阅事件,但我这样做的方式是在控制器中的操作方法上使用Topic方法属性,例如......

在此处输入图像描述

虽然这可行,但我不希望将集成事件与服务 API 混合。这就是威风...

在此处输入图像描述

我知道主题名称很长,但这样我可以确保主题的唯一性。

我更喜欢将处理程序放置在任何控制器之外。像这样的东西。。

在此处输入图像描述

这甚至可能吗?

0 投票
1 回答
1342 浏览

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 并在本地部署容器,以便我可以测试和调试。

提前致谢。

0 投票
2 回答
535 浏览

asp.net-web-api - Dapr 未在独立模式下运行

我正在努力让一个基本的 ASP.NET Core API 在本地与 Dapr 一起工作。我遵循了文档,但仍然没有运气。我确定我只是缺少一些基本的东西,但我就是无法解决。

这些是我到目前为止为尝试使其正常工作所做的步骤:

  1. 安装 Dapr CLI(cli 版本 0.11.0)
  2. 已执行dapr init --runtime-version 1.0.0-rc.3(已安装并运行 3 个 docker 容器)
  3. 导航到我的 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 并寻找替代方案来将我的微服务拼接在一起。

0 投票
1 回答
167 浏览

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 没有边车,但有注解......

在此处输入图像描述