问题标签 [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 投票
1 回答
468 浏览

asp.net-core - 无法使用 Dapr 调用另一个服务

我在使用我的微服务启动和运行 Dapr 时遇到了重大问题。每次我尝试调用另一个服务时,它都会返回 500 错误消息

服务和 dapr 边车目前在我们的开发机器上的 docker-compose 中运行,但在正确部署后将在 Kubernetes 中运行。

当我查看 Docker for Windows 中 dapr 容器的日志时,我可以看到在端口 443 上发现了应用程序以及一些初始化消息,但此后没有记录任何其他内容,即使我发出调用请求也是如此。

我有一个名为 clients 的容器,我在其中调用了一个名为 test 的 API,然后尝试在另一个名为 simpleapi 的容器中调用 Microsoft 的示例天气预报 API。

我正在使用 swaggerUI 来调用 api。测试 api 返回 200,但是当我在调用上放置断点时,我可以看到响应是 500。

如果我直接使用 swaggerui 调用 weatherforecast api,它会返回 200 和预期的有效负载。

我在容器中运行 Dapr 仪表板,它没有显示任何应用程序。

Docker-Compose.yml

来自客户端 API 的测试控制器。

这对我的公司来说是一个重大的新项目,如果我们不能尽快完成这项工作,我们将不得不放弃 Dapr 并自己实施一切。

我希望这里有一些明显的问题。

0 投票
0 回答
374 浏览

c# - 在 ASP .NET 核心 3.1 中使用 docker-compose 运行 DAPR 时出现问题

我正在尝试使用 docker-compose 运行多个微服务,依赖 DAPR 在它们之间建立通信。但是,即使开发人员 shell 日志显示 DAPR 边车已启动并正在运行,我也无法在 DAPR 仪表板中看到它们,也无法调用使用它们的方法。

我已经按照https://docs.microsoft.com/en-us/dotnet/architecture/dapr-for-net-developers/getting-started和谷歌的说明进行了很多操作,但找不到问题。

我还通过成功运行上述 Microsoft 示例验证了 DAPR 已正确安装并获得预期结果。

这是我的 docker-compose.yml 文件

这是 DAPR 日志文件

我已经验证了这两个微服务以及 MSSQL 容器都在运行。但是尝试使用 DAPR 调用服务失败且没有响应。从 swagger UI 调用 api 方法按预期工作,但 DAPR 甚至似乎没有运行。

招摇用户界面

调用尝试

有谁知道问题是什么?

0 投票
0 回答
37 浏览

dapr - 开放应用程序模型 (OAM) 与分布式应用程序运行时 (Dapr)

我有一些 Google Cloud Functions、一些 AWS Lambda、一些 Azure Functions、EKS + AKS 上的工作负载和本地 K8S 集群一起处理一些工作负载。我喜欢抽象出这些工作负载中的横切关注点。我正在研究开放应用程序模型 (OAM) 与分布式应用程序运行时 (Dapr)。

如果可以远程统一多个云提供商的计算并抽象出横切关注点,有人可以分享吗?

内森·胡

0 投票
1 回答
63 浏览

performance - 如何解读 Dapr Sidecar 性能测试?

如果我理解正确,Dapr 文档说单个边车在指定条件下使用 0.48 vCPU。

这是否意味着如果像 Netflix 或 Uber 这样的大型应用程序(使用超过一千个微服务)要使用 Dapr,那么它需要超过 480 个 vCPU?好吓人。

我哪里错了?

0 投票
1 回答
69 浏览

c# - dapr getall:怎么做?

首先,抱歉,我知道这个问题已经发布,但是只有一个解决方案指向死链接,没有其他选项。所以响应不再存在。

我正在使用 dapr,涉及到 docker,并且我正在使用它来存储一些数据。

我有这行代码有效:

记录是一个对象,record.Id = id

现在我需要做一个Getall,所以,获取Record类型的所有记录。

所以这是我的代码:

它可以构建,但是在运行时会出现错误,因为myListcan't be null

那么我该怎么做呢?

选项1:

有连续的 id 然后在它们之间迭代,这不是一个很好的解决方案,我必须假设 id 的极限值。

选项2:放弃dapr,这不是一个好的解决方案,因为它不能解决问题,这也是一种解决方法。

那么,我该如何做一个getAll?

0 投票
0 回答
290 浏览

.net - Dapr .Net SDK 的 InvokeMethodGrpcAsync() gRPC 调用问题

我在 Dapr 中启动了一个具有 gRPC 服务的应用程序。使用 id MyGrpcApi001 启动 Dapr。HTTP 端口:55319。gRPC 端口:55320

我已经使用以下命令启动它:

dapr run --app-id MyGrpcApi001 --app-protocol grpc --app-port 5000 -- dotnet run

原型:

我有一个客户端,它有 2 种使用 gRPC 连接到服务的方法

  • 直接通过自动生成的客户端调用服务
  • 另一个通过 dapr sidecar gRPC 端口

第二种方法似乎不起作用,所以直接调用有效,但是sidecar似乎没有找到服务。以下是两者的日志:

正在运行的服务的日志:

第一种方法OK:

第二种方法错误:

第二个似乎有错误的 URL,其中包括/dapr.proto.runtime. ...

我在这里做错了什么?dapr run 命令是错误的,还是 InvokeMethodGrpcAsync 方法的参数错误?

由于我可以直接通过自动生成的客户端运行该方法,我认为服务器工作正常,是 dapr 没有找到服务和/或方法。

有任何想法吗?

谢谢!

0 投票
1 回答
384 浏览

unit-testing - 你如何使用 Dapr 进行单元测试?

我有一个要单元测试的类,但它使用 DaprClient 对象(来自 SDK),这在我的单元测试环境中不起作用。我想创建一个模拟并使用它,但 DaprClient 实现的唯一接口是 IDisposable。

有没有办法模拟 DaprClient 进行单元测试?

我能想到的唯一解决方案是将 DaprClient 包装在一个带有接口的类中,并在任何地方使用这个包装器。这感觉真的很乱,每次我想在 DaprClient 上使用新方法时都需要更新包装器。

我对可能绕过该问题的其他解决方案持开放态度,但我更喜欢用模拟类型方法进行简单替换。

我在 Windows 上的 Visual Studio 2019 中使用 .Net 5、xUnit 和 Moq(尽管一些团队成员使用 Mac,因此它需要在两个平台上工作)。

在这个特定的例子中,我使用的是 DaprClient.GetBulkSecretAsync 方法,但如果可能的话,我想要一个可以在其他地方使用的解决方案。

0 投票
0 回答
293 浏览

asp.net-core - 无法在 Kubernetes 中使用 Dapr Pubsub 块向 RabbitMQ 发布消息

我正在使用Dapr .NET SDKandPublishAsync方法将消息发布到RabbitMQ.

我希望消息能够毫无问题地发布。我在Kubernetes. 代码可以在DaprPubsub找到

RabbitMQ 的配置非常完美。组件定义完美。Dapr SDK 可以到达 RabbitMQ。事实上,在 RabbitMQ 交换中,我能够find an exchange使用主题名称的名称进行创建,但是没有创建队列,并且我打算放入队列的消息也没有添加到队列中。使用上面提供的代码链接在 a 上重现问题的步骤local K8s cluster如下

  1. 使用from LinkRabbitMQKubernetes集群中安装Helm
  2. 使用 AMQP 配置更新组件文件。
  3. 在与代码相同的命名空间中应用组件
  4. 部署代码。
  5. 执行Kubectl获取svc,获取服务daprpub的Loadbalancer外网IP。端口将是 5045。
  6. 假设外部 IP 类似于localHost. 以 http://localHost:5045/swagger 访问 URL。将显示招摇页面
  7. 在 Swagger UI 中访问 Put in queue 方法。该方法执行时没有任何异常。

附加日志

0 投票
0 回答
27 浏览

c# - 运行时 SMTP 更改为 Twilio SendGrid DAPR 组件

我想使用两个 DAPR 绑定组件(SMTP 和 Twilio SendGrid)并在运行时更改它们。我检查了请求模板并且是相同的,但是是否可以在运行时从一个更改为另一个?

0 投票
1 回答
118 浏览

azure - 使用 Azure 存储模拟器进行 Dapr 本地开发

对于本地开发/调试,我们将 Dapr 组件设置为使用 docker-compose 运行。其中一个组件使用Azure 事件中心输入绑定。为了让每个开发人员的事件流分开,我们创建了专用的消费者组和专用的存储容器来存储检查点。

我想在本地开发场景中使用 Azure 存储模拟器来简化开发设置。然而,存储容器配置只允许配置 storageAccountName、storageAccountKey 和 storageContainerName。

是否有机会将 Dapr 事件中心绑定配置为使用 Azure 存储模拟器而不是云托管存储帐户?