【愚公系列】2022年12月 Dapr分布式应用运行时-Dapr的简介
2023-02-19 12:19:44 时间
文章目录
一、Dapr的简介
Dapr官网:https://dapr.io/
1.Dapr的概念
Dapr 是一个可移植的事件驱动运行时,使任何开发人员都可以轻松构建可复原的、 在云和边缘上运行的无状态和有状态应用程序,并包含 语言和开发人员框架。利用挎斗架构的优势,Dapr 帮助 您可以应对构建微服务带来的挑战,并使代码平台不可知。
2.Dapr的功能
从上图我们可以看到,使用Dapr开发的微服务应用理论上可以部署到任意的云提供商、边缘设备、虚拟机、Service Fabric集群、Kubernetes集群里面。
并且在如下方面(称之为Building Block)进行外部依赖的抽象:
服务调用:
Dapr 服务调用构建块处理 FineCollectionService 和 VehicleRegistrationService 之间的请求/响应通信。因为该调用是检索完成操作所需数据的查询,所以此处可以接受同步调用。 服务调用构建基块提供服务发现。 FineCollection服务不再需要知道 VehicleRegistration 服务所在的位置。 如果 VehicleRegistration 服务脱机,它还会实现自动重试。发布 & 订阅:
发布和订阅构建基块可处理异步消息传送,以便将 TrafficControl 服务中的超速违规信息发送到FineCollectionService。 此实现能分离 TrafficControl 和 FineCollection 服务。 如果FineCollectionService 暂时不可用,数据会在队列中累积,并在稍后恢复处理。 RabbitMQ是当前的消息代理,用于将消息从生成方传输到使用方。 因为 Dapr 发布/订阅构建基块将消息代理抽象化,所以开发人员无需了解RabbitMQ 客户端库的详细信息。 切换到另一个消息代理时,不需要更改代码,只需完成配置。状态管理:
TrafficControl 服务使用状态管理构建基块将车辆状态持久保存服务之外的 Redis 缓存中。与发布/订阅一样,开发人员无需了解 Redis 特定的 API。 切换到另一个数据存储时,不需要更改代码。输出绑定:
FineCollection 服务通过电子邮件将罚款信息发送给超速车辆的车主。 SMTP 的 Dapr 输出绑定使用 SMTP协议将电子邮件传输抽象化。输入绑定:
CameraSimulation 使用 MQTT 协议将包含模拟车辆信息的消息发送至 TrafficControl 服务。它使用 .NET MQTT 库将消息发送到 Mosquitto,Mosquitto 是轻量型的 MQTT 代理。TrafficControl 服务使用 MQTT 的 Dapr 输入绑定来订阅 MQTT 代理并接收消息。机密管理:
FineCollectionService 需要用于连接到 SMTP 服务器的凭据以及内部使用的罚款计算器组件的许可证密钥。它使用机密管理构建基块来获取凭据和许可证密钥。执行组件:
TrafficControlService 具有基于 Dapr 执行组件的替代实现。 在此实现中,TrafficControl 服务会针对入口摄像头记录的每个车辆创建一个新的执行组件。 车辆的牌照号码构成唯一的执行组件 ID。执行组件封装车辆状态,并将其持久保存在 Redis 缓存中。 当出口摄像头记录到车辆时,会调用该执行组件。 执行组件随后会计算平均车速,并可能得出超速违规结果。
相关文章
- [git]查看某一行代码是谁写的
- [git]安装git-pylint-commit-hook提高python项目中的代码质量
- [linux]重拾linux
- 《HelloGitHub月刊》第 01 期
- [git]通过commit_id找回文件
- [git]修改commit
- [git]使用GPG签名你的commit
- [git]本地查看,重命名,拉取,删除远程分支
- [git]解决:git config --global push.default matching
- [git]git add 增加文件,文件名乱码
- [linux]删除目录下的一类文件
- [git]用pelican搞一个自己的blog(已完成)
- [git]解决rebase冲突
- Goodbye 2020,Welcome 2021 | 沉淀 2021
- Goodbye 2019,Welcome 2020 | 沉淀 2020
- VSTS 执行git pull报错问题修复
- 软件分享 | 第四期 Linux远程连接神器获取和安装
- PHP网页简单编写
- c++使用icu国际化(i18n)
- go-cqhttp(电脑机器人搭建)教程