dapr牵手.net学习笔记:开篇

dotNET跨平台 dotNET跨平台     2023-01-01     523

关键词:

dapr,一个为分布式应用程序的运行时,为开发者在对接分布式组件时,提供了便利。使用dapr带来的好处可扩展性,因为它是通过sidecar的理概念来集成其他运行时的。同时dapr还提供了多种语言的SDK。

关于dapr更多介绍,官方文档(https://docs.dapr.io/zh-hans/)是很好的了解学习渠道,这里就不再赘述。

开始《dapr牵手.net学习笔记》系统的原因有三:一是工作中的应用,都是基于分布式工作,基于k8s基础设施部署;二是dapr的热度在上升(虽然还不完美),是该系统的做一次与.net应用落地的实践了;三是公众号上的小伙伴的要求。

关于《dapr牵手.net学习笔记》还是以一个程序员的角度去面对,本着代码至上的原则,尽量用操作命令,.net实例为主,做落地分享(概念,理论,原理官方文档说的很好很明了了)。虽然dapr是微软牵头做的,我发现在dapr的文档中,更多的是用其他语言来举例,这有讨好其他语言的开发者的嫌疑,不过道理相通,所以这个系统尽量全用.net,让dotneter们感受到社区的温暖


说在开篇:

1、本系列是学习笔记系统,所以demo的环境基本是在windows上和windows上的docker,对于一些在这个环境上无法完成的例子,可能偶尔会切到别的环境,到时具体给出。

2、dapr的安装和基本命令就不作详细说明了,这里全有:https://docs.dapr.io/zh-hans/getting-started/install-dapr-cli/,可以先行试验,很简单,这点为dapr点赞。

3、因为是边研究边更新文章,可能缺少对dapr认识的全局视角,深度层次,难免有错误,遗漏,偏驳,或认知缺陷,所以也希望大家见谅,并及时提出,我会在之后的文章中提示更正,这样可以不误导更多学习者

dapr牵手.net学习笔记:状态管理进阶

为了防止并发对数据修改造成差异,dapr使用了etag标签来作为版本号,对数据修改进行验证。下面是对etag的一个demoappsettings.json中的url配置"StateUrl":"http://localhost:3500/v1.0/state/statestore"在PaymentSystem项目中添加两... 查看详情

dapr牵手.net学习笔记:绑定

绑定有点像订阅发布,但又不一样,绑定更简单,绑定输出(调用方)-绑定输入(被调用方)。本例是用dockercompose编排,并且用rabbitMQ来支持,因为rabbitMQ支持输入和输出绑定。demo的目录结构&#... 查看详情

dapr牵手.net学习笔记:状态管理进阶

在上一篇文章中说到,dapr默认的状态是不可能跨appid的,也就是只能在相同的应用内访问自己设置的状态数据,dapr支持三种状态的共享配置:appid,nam,none,是通过修改components下的statestore.yaml文件中... 查看详情

dapr牵手.net学习笔记:actor小试

Actor模型是一种避免线程共享数据,相同Actor实体串行化的方案,所以不便dapr的其他功能,几乎都是非编程入侵的,相反,DaprAcror深度定制的,关于Actor,.net中有一些通用框架,比如Akka.net,微... 查看详情

dapr牵手.net学习笔记:想入非非的服务调用

demo运行环境:Windows10,Docker(dapr_zipkin,dapr_redid,dapr_placement)安装:daprinit卸载:dapruninstall,然后删除C:\\Users\\当前用户\\.daprdapr在部署时是通过给服务挂载一个sidecar, 查看详情

dapr牵手.net学习笔记:发布-订阅

queue,是很好的削峰填谷工具,在业内也是主流;发布订阅,可以有效的解耦两个应用,所以dapr把他们进行了有效的封装,我们使用起来更简单高效。本篇的案例是下完订单后,会把消息发布到redisÿ... 查看详情

dapr牵手.net学习笔记:用docker-compose部署服务

上一篇聊到用两个物理机(一个win,一个mac)来部署dapr和服务,实现order调用pay的负载均衡。本篇说一下在windows上的docker部署这三个服务,达到与上一篇的效果。三个服务的部署架构是这样的首先要把OrderSystem(服... 查看详情

dapr牵手.net学习笔记:跨物理机负载均衡服务调用

dpar在同一台电脑上不能run相同appid,这个在上篇说过,所以就用外部负载均衡nginx来对应,那在不同的host中跑同一服务,看看dapr内部的负载均衡是怎么实现的。说说现有的服务,两个服务,订单服务,... 查看详情

dapr牵手.net学习笔记:actor一个场景

接上一篇最后的场景,为了解决相同帐户并发引起的数据库行级锁,可以引入Actor的串机制,相同ActorID的实例,串行,这样就能在应用层把读取余额的资源争抢解决掉,剩下的工作就是一定时间间隔,... 查看详情

dapr牵手.net学习笔记:可观测性-分布式跟踪

分布式跟踪在dapr里是开箱即用的,不需要对应用作任何一丁点的侵入式编程。之前的开发,如果想实现分式跟踪,就得在应用中埋点,这是一个与业务无关系的动作。dpar通过sidecar可以轻松做到这点,从而让... 查看详情

uwp学习开发笔记记录(开篇)

...软的动作,所以在职的小伙伴闲暇之余有时间可以来补充学习一下UWP的技术,但是全身心的投入到UWP的怀抱,暂时还不是个好时机。对于微软其他的技术,我觉得还是很不错的,最近本人的前同事及好友有很多都放弃.NET去 查看详情

tcc学习笔记开篇

     TCC,全称TinyCCompiler(http://bellard.org/tcc/),是一个颇具特色的C编译器,你能把它当作一个C语言解释器来用,也可以嵌入你自己的应用程序作一个动态代码生成器。     TinyCCompiler(缩写为TCC,... 查看详情

使用dapr和.net6.0进行微服务实战:dapr简介(代码片段)

...是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进。本文是《使用Dapr和.NET6.0进行微服务实战》的第2篇Dapr简介部分,大致包括:了解Dapr&... 查看详情

stm32学习笔记:开篇准备

...小觑。所以本人从2018年1月1日开始对于STM32系列单片机的学习很感谢我的班主任送我的开发板:STM32F429I-DISCOVERY(M4) 以下是ST官网对应的型号数据以及开发文档:  英文版文档信息:http://t.cn/RH0dc2D  中文版文档信息:htt... 查看详情

.net云原生架构师训练营(基于opstorming和actor的大型分布式架构一)--学习笔记

目录为什么我们用OrleansDaprVSOrleansActor模型Orleans的核心概念为什么我们用Orleans分布式系统开发、测试的难度(服务发现、通信)运维的复杂度(伸缩性与可靠性的保障)actor拥有全局唯一身份自动伸缩功能DaprVSOrleansDapr文档:​... 查看详情

dapr+.net实战(十-终篇)k8s运行dapr(代码片段)

工作原理为了实现在k8s上安装Dapr,Dapr需要部署dapr-sidecar-injector、dapr-operator、dapr-placement和dapr-sentry服务。 dapr-operator:管理组件(statestores,pub/subs,etc.)dapr-sidecar-injector: 将Dapr注入 annotated pods,并 查看详情

dapr+.net实战本地调试

前几节开发Dapr应用程序时,我们使用daprcli来启动dapr服务,就像这样:daprrun--dapr-http-port3501--app-port5001--app-idfrontenddotnet.\\FrontEnd\\bin\\Debug\\net5.0\\FrontEnd.dll如果你想要通过dapr调试服务呢?在这里使用d 查看详情

nodejs学习笔记之net模块

...技术A一,开篇分析从今天开始,我们来深入具体的模块学习,这篇文章是这个系列文章的第三篇,前两篇主要是以理论为主,相信大家在前两篇的学习中,对NodeJS也有一个基本的认识,没事!!!趁热打铁,让我们继续将NodeJS... 查看详情