CAP 8.3 版本发布通告

前言

我们很高兴宣布 CAP 发布 8.3 版本正式版,我们在这个版本中主要根据用户反馈添加了一些细节的功能增强特性,例如RabbitMQ对于Queue的配置控制选项和Kafka的额外失败消费者重试等,同时升级了依赖的NuGet包到最新版本。

下面,具体看一下我们新版本的功能吧。

总览

可能有些人还不知道 CAP 是什么,老规矩来一个简介。

CAP 是一个用来解决微服务或者分布式系统中分布式事务问题的一个开源项目解决方案(https://github.com/dotnetcore/CAP)同样可以用来作为 EventBus 使用,该项目诞生于2016年,目前在 Github 已经有超过 6500+ Star 和 110+ 贡献者,以及在 NuGet超 800 万的下载量,并在越来越多公司的和项目中得到应用。

如果你想对 CAP 更多了解,请查看我们的 官方文档

本次在 CAP 8.3 版本中我们主要带来了以下新特性:

  • 为 NATS 添加禁用动态创建Topic和Stream的配置项
  • 消费者支持 IAsyncDisposable 接口
  • 为 RabbitMQ 添加支持 Queue 配置项
  • 为 Dashboard 添加K8S支持根据标签过滤节点的配置项
  • 为 Kafka 添加更多消费者失败时继续重试的错误代码
  • 升级依赖 NuGet 包到最新版本

为 NATS 添加禁用动态创建 Topic 和 Stream 的配置项

默认情况下向NATS服务端自动创建Topic和Stream,对于一些用户而言,严格的权限控制是有必要的。

在这个版本中,我们添加了 EnableSubscriberClientStreamAndSubjectCreation配置项允许用户可以选择是否自动创建相应的 Subject 和 Stream。

消费者支持 IAsyncDisposable 接口

注入到容器的消费者服务在过去默认会调用 IDispose 接口,现在也会调用 IAsyncDisposable 接口。

为 RabbitMQ 添加支持 Queue 配置项

根据 #1585 用例的描述,在他们的场景里系统中会有一些临时的服务用于从其他服务的事件中获取一些消息。这些临时服务会创建新的GUID的消费组队列,因此希望利用队列的自动删除功能来避免每次手动清理。

所以在这个版本中,我们为RabbitMQ添加了额外的配置项 QueueOptions 以允许自动删除队列。

为 Dashboard 添加K8S支持根据标签过滤节点的配置项

我们在这个版本改进了我们Dashboard中 K8S 节点发现的节点过滤功能,现在允许使用 Role 代替 ClusterRole 来获得更加安全的权限设定,在K8S中Role只能管理特定命名空间的资源。

现在可以将 ClusterRoleClusterRoleBinding 替换为如下:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: ns-svc-reader
  namespace: default
rules:
- apiGroups: [""]
  resources: ["services"]
  verbs: ["get", "watch", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods
subjects:
- kind: ServiceAccount
  name: api-access
  namespace: default
roleRef:
  kind: Role
  name: ns-svc-reader
  apiGroup: rbac.authorization.k8s.io

另外,我们允许对 服务 资源添加 dotnetcore.cap.visibility 标签以控制其可见性,当设置为 hide 时在 Dashboard 的下拉列表中将隐藏此服务。

同时对于一个 服务 公开多个 Port 的场景,你可以通过设置 dotnetcore.cap.portName 标签来指定端口名称或者设置 dotnetcore.cap.portIndex 来指定端口的索引。

为 Kafka 添加更多消费者失败时继续重试的错误代码

当 Kakfa 的消费者在消费的过程中可能会遇到很多异常,这些异常中的一部分可以通过重试来恢复,这些异常的错误代码有非常多,所以我们提供了一个配置项以允许用户根据他们的场景来进行配置。

在这个版本中,我们添加了更多异常可能引起的错误码并将其添加到RetriableErrorCodes默认中。如果你在使用的过程中遇到问题请向我们反馈。

总结

以上,就是本版本我们做出的一些新特性和改动,感谢大家的支持,我们很开心能够帮助到大家 。

大家在使用的过程中遇到问题希望也能够积极的反馈,帮助CAP变得越来越好。😃

如果你喜欢这个项目,可以通过下面的连接点击 Star 给我们支持。

GitHub stars

如果你觉得本篇文章对您有帮助的话,感谢您的【推荐】。


本文地址:http://www.cnblogs.com/savorboard/p/cap-8-3.html
作者博客:Savorboard
本文原创授权为:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本

posted @ 2024-10-14 17:05  Savorboard  阅读(14)  评论(0编辑  收藏  举报