Dapr 是一个开源、可移植的、事件驱动的运行时,可以帮助开发人员构建在云和边缘上运行的弹性的、微服务的、无状态和有状态应用程序,并且关注于业务逻辑而不用考虑分布式相关的问题。
近日 Dapr 1.8 正式发布,这是自 2021 年 2 月发布 1.0 版本以来的第八次小版本更新,更新内容如下:
分布式锁 API(alpha)
- 分布式锁提供了从一个应用程序对共享资源的互斥访问。在这个版本中,一个新的 alpha API 被引入,使你能够在共享资源上采取互斥的锁。
中间件组件的 WASM 支持
- 你现在可以使用外部 WASM 模块编写 Dapr 中间件组件,并使用非 Go 语言扩展 Dapr。
容错弹性策略 (preview)
- 延续 V1.7 版本的容错弹性策略功能
覆盖默认弹性重试
- Dapr 为某些请求失败和瞬时错误提供默认重试。在这个版本中,现在可以通过在弹性规范中用保留的、命名的关键字定义弹性策略,用自定义重试逻辑覆盖默认重试。
改进的弹性日志记录
- 现在,当 resiliency 策略被加载时,你会看到哪些策略在 Dapr sidecar 启动时被加载为信息日志。打开调试日志,你可以看到弹性策略启动的频率和目标的细节。
共享状态的命名空间支持
- 当应用程序之间共享状态时,现在可以使用命名空间来隔离状态。这允许不同命名空间的应用程序以相同的 appid 重复使用相同的状态存储。
元数据 API 返回组件功能列表
- 元数据 API 现在可以查询 sidecar 所加载的组件的功能,特别是 pub/suba 和状态存储。
Dead letter topics
- 有的时候,应用程序可能会因为各种原因而无法处理消息。例如,在检索处理消息所需的数据时可能会出现短暂的问题,或者应用程序的业务逻辑失败,返回一个错误。Dead letter topics 用于转发无法交付给订阅应用程序的消息。
Sidecar 证书安装支持
- Dapr sidecar 现在可以支持 Linux 和 Windows 容器的证书安装。
Kubernetes 改进
- 现在可以从 Tekton Pipelines 注入 Dapr sidecars,而不需要配置任何特殊的 RBAC 权限
- Dapr Operator 现在包括一个 "看门狗" 功能,以确保 Dapr sidecar 存在于 pod 中,这在应用程序或集群故障期间尤其重要,可以提供更高的弹性水平。
- 在部署 Dapr 时,无论是在 Kubernetes 上还是在 Docker 自托管中,所拉出的默认容器镜像都是基于 distroless 的。现在你可以使用基于 Mariner 的镜像,正式名称为 CBL-Mariner,这是一个由微软维护的免费开源 Linux 发行版和容器基础镜像。
CLI 改进
- 增加了
annotate
CLI 命令,用于向部署的 Kubernetes 配置添加 Dapr 注释。 - k8s 模式下的
dapr init
和dapr upgrade
现在可以使用 GHCR 和私有注册表来拉动镜像。 - 记录了
version
命令
更多详情可查看:https://github.com/dapr/dapr/releases/tag/v1.8.0