【愚公系列】2023年01月 Dapr分布式应用运行时-Dapr运行.Net Core程序
【摘要】 前言Dapr能运行各种各样的应用程序包含python、java、node、.net等。Dapr 使用主要有两种模式:基于docker内初始化时选择docker外初始化时选择docker外相关文档:https://docs.dapr.io/operations/hosting/self-hosted/self-hosted-no-docker/本文主要是讲解.net技术栈的使用。 一、Dap...
前言
Dapr能运行各种各样的应用程序包含python、java、node、.net等。
Dapr 使用主要有两种模式:
- 基于docker内
- 初始化时选择docker外
初始化时选择docker外相关文档:https://docs.dapr.io/operations/hosting/self-hosted/self-hosted-no-docker/
本文主要是讲解.net技术栈的使用。
一、Dapr运行.Net Core程序
1.创建应用
打开vs创建控制台应用程序
2.添加 Dapr 状态管理
安装Dapr包
dotnet add package Dapr.Client
3.Program类如下
using Dapr.Client;
const string storeName = "statestore";
const string key = "counter";
var daprClient = new DaprClientBuilder().Build();
var counter = await daprClient.GetStateAsync<int>(storeName, key);
while (true)
{
Console.WriteLine($"Counter = {counter++}");
await daprClient.SaveStateAsync(storeName, key, counter);
await Task.Delay(1000);
}
更新的代码实现以下步骤:
- 首先,会实例化一个新的 DaprClient 实例。 此类使你能够与 Dapr 进行交互。
- 从状态存储中,DaprClient.GetStateAsync 会提取 counter 键的值。 如果该键不存在,会返回 int 的默认值(即 0)。
- 然后,代码将循环访问,将 counter 值写入控制台并将递增的值保存到状态存储中。
3.运行程序
使用如下dapr运行程序
dapr run --app-id DaprCounter dotnet run
可以看到redis中已经有计数器的数据
原理说明
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: statestore //组件名
namespace: production //组件所在命名空间
spec:
type: state.redis //组件类型
version: v1 //组件版本
metadata: //组件信息
- name: redisHost //redis主机ip
value: localhost:6379
- name: redisPassword //redis密码
value: ""
- name: actorStateStore
value: "true"
scopes:
- DaprCounter //什么程序可以访问
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)