首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2022年12月 Dapr分布式应用运行时-Dapr的简介

【愚公系列】2022年12月 Dapr分布式应用运行时-Dapr的简介

作者头像
愚公搬代码
发布2022-12-31 15:59:06
5140
发布2022-12-31 15:59:06
举报
文章被收录于专栏:历史专栏历史专栏

文章目录

一、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 缓存中。 当出口摄像头记录到车辆时,会调用该执行组件。 执行组件随后会计算平均车速,并可能得出超速违规结果。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-12-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Dapr的简介
    • 1.Dapr的概念
      • 2.Dapr的功能
      相关产品与服务
      云数据库 Redis
      腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档