头图

Dapr是一套开源、可移植的事件驱动型运行时,允许开发人员轻松立足云端与边缘位置运行弹性、微服务、无状态以及有状态等应用程序类型。Dapr能够确保开发人员专注于编写业务逻辑,而不必分神于解决分布式系统难题,由此显著提高生产力并缩短开发时长。Dapr降低了构建微服务架构类现代云原生应用程序的入门门槛,Dapr应用程序已经能够在生产场景中部署自托管基础设施或Kubernetes集群。当使用自托管模式部署在虚拟机环境选用Consul 作为服务发现组件时, 1.8版本解决了一个问题 : Consul 用作名称解析组件时,相同的 appid 无法实现负载平衡

2022年7月8日正式发布了1.8 版本,这是自从2021年2月发布首个1.0 版本以来第八次小版本更新,Dapr 1.8.0 版本的贡献者数量众多,我们要感谢所有 92位新的和现有的贡献者,他们帮助实现了这个版本。这次更新的内容很多都是大家期盼的功能,例如分布式锁API,中间件组件的外部 WASM 支持,更多的成熟Stable组件等。接下来我们一起来看看更新的内容。

  1. 死信Topic:有时,由于各种原因,应用程序可能无法处理消息。例如,检索处理消息所需的数据时可能存在暂时性问题,或者应用业务逻辑无法返回错误。死信Topic用于转发无法传递到订阅应用的消息。
  2. 分布式锁 API:分布式锁提供对应用程序中共享资源的互斥访问。在此版本中,引入了一个新的 alpha API,使您能够在共享资源上使用互斥锁。这是践行标准API的第一个,在Dapr中,处理共享资源的互斥访问推荐采用Dapr Actor 构建块,但是呢Dapr Actor 构建块在社区的采用上比较低,一个例外就是.NET相关的Dapr 解决方案里面对于Actor的采用是非常高的,在其他的Java,go,python等等相关项目中目前采用Dapr Actor的还是很少。
  3. 对中间件组件的 WASM 支持:现在,您可以使用外部 WASM 模块编写 Dapr 中间件组件,并使用非 Go 语言扩展 Dapr。
  4. 容错弹性策略进入预览版阶段,Dapr 1.7.0 实现了容错弹性策略第一阶段目标, 1.8 版本进入预览, Dapr 的组件版本分Alpha、Preview、Stable,我们会把Stable的组件和API 投入到生产。
  5. 状态共享的命名空间支持:在应用程序之间共享状态时,命名空间现在可用于隔离状态。这允许具有相同命名空间的应用重用相同的状态存储。
  6. 元数据 API 返回组件功能列表:现在可以查询元数据 API,以获取该 sidecar 已加载的组件的功能,特别是 pub/sub 和 state store
  7. 边车证书安装支持:Dapr sidecar现在可以支持为Linux和Windows容器安装证书。
  8. Kubernetes 改进:Dapr Operator 现在包括一个“看门狗”功能,以确保 Dapr sidecar 存在于 Pod 中,这在应用程序或集群故障期间尤其重要,以提供更高水平的弹性。部署 Dapr 时,无论是在 Kubernetes 上还是在 Docker 自托管中,提取的默认容器映像都基于distroless,现在,您可以使由Microsoft维护的免费开源Linux发行版和容器基础映像Mariner(正式名称为CBL-Mariner)的Image。
  9. 组件改进,在之前的 Dapr 版本中具有稳定候选版本的以下组件已升级为稳定版本
  • Azure Table Storage State Store (stable candidate)
  • Azure Event Hubs Binding (stable candidate)
  • Azure Storage Queues Binding (stable candidate)
  • Postgresql State Store (stable candidate)
  • Azure Event Hubs Pubsub (stable candidate)

Dapr现在有超过100多个组件(总共105个)。此版本中添加的新组件,其中2个是华为云的组件,一个是阿里的 Dubbo Binding:

  • 1.6 版本添加的 RouterChecker HTTP Request Routing ,已经有文档了。
  • Commerce Tools Binding
  • Apache Dubbo Binding
  • Huawei OBS Binding
  • Huawei CSMS Secret Store
  • In-memory State Store used for development
  • RocketMQ PubSub
  • Wasm Basic HTTP Middleware
  • Redis Distributed Lock
  1. 开发工具SDK 改进:

Python

  • 支持配置 API Unsubscribe events
  • 支持 per-actor-type configuration
  • 支持Actor 计时器和提醒中的TTL和时间/间隔格式

Java

  • 添加 pubsub routing

.NET

  • 支持配置API的 Unsubscribe events
  • 支持 per-actor-type configuration
  • 支持 distributed lock API

JavaScript

  • JavaScript SDK现在在@dapr/dapr上可用。较旧的包 dapr-client 正处于弃用的路上
  • 支持 Actor reminder/timer TTL support
  • 支持 Configuration API
  • 支持 gRPC proxy
  • 支持 configuring the SDK logger
  1. CLI 改进:
  2. 添加了注释 CLI 命令,用于将 Dapr 注释添加到已部署的 Kubernetes 配置中。
  3. dapr init在 k8s 模式下,现在可以使用 GHCR 和私有注册表来拉取映像
  4. 给 Dapr version 加上了文档

如果您不熟悉 Dapr,请访问入门页面并熟悉 Dapr。文档已更新,包含此版本的所有新功能和更改。通过概念和开发应用程序文档开始使用此版本中引入的新功能。要将 Dapr 升级到 1.8.0 版,请跳至本节。



长按识别二维码
关注微软中国MSDN

点击阅读原博客~


微软技术栈
418 声望994 粉丝

微软技术生态官方平台。予力众生,成就不凡!微软致力于用技术改变世界,助力企业实现数字化转型。