CAP 8.3 版本发布通告

news/2024/10/14 17:09:54

前言

我们很高兴宣布 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-readernamespace: default
rules:
- apiGroups: [""]resources: ["services"]verbs: ["get", "watch", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:name: read-pods
subjects:
- kind: ServiceAccountname: api-accessnamespace: default
roleRef:kind: Rolename: ns-svc-readerapiGroup: 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
本文原创授权为:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/71516.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

参赛故事|我也想成为一名金蝶云苍穹开发布道师

金蝶云苍穹开发者大赛参赛有感!迷茫到突破 站在人生的十字路口,作为一名大三学生,我感受到了前所未有的压力。毕业的脚步越来越近,校园内的竞争愈发激烈,身边的同学早已通过奖学金、竞赛获奖等为自己的简历增光添彩。而我,望着自己那份平淡无奇的简历,不禁感到迷茫和焦虑…

UE-GAS CreateDefaultSubobjectUAbilitySystemComponent返回为nullptr

前因 原先在项目中用了默认的ASC(UAbilitySystemComponent),后面因为新的需求导致需要改为自己的ASC。结果改了之后,发现在Pre-Init(构造函数)时,CreateDefaultSubobject的返回值是nullptr。 过程 于是去论坛求助:论坛的人的回答是,你修改了ASC的类,导致前一个ASC反序…

vue3 antvX6的使用源码

npm install --save @antv/x6<template><div class="dashboard-container"><p>选择节点</p><button @click="save">保存</button><div class="antvBox"><div class="menu-list"><…

程序员攻占小猿口算,炸哭小学生!

小学生口算 PK,已经演变为各大高校和程序员之间的算法学术交流竞赛!小学生万万没想到,做个加减乘除的口算练习题,都能被大学生、博士生、甚至是程序员大佬们暴打!最近这款拥有 PK 功能的《小猿口算》App 火了,谁能想到,本来一个很简单的小学生答题 PK,竟然演变为了第四…

注塑机接插件航空插头工厂数据采集产量监控系统

测试机柜温湿度01.温度7dp8dp 测试机柜温湿度01.湿度压接计数器02.产量计数 测试机柜温湿度02.温度测试机柜温湿度02.湿度3eftkf 压接计数器03.产量计数 压接计数器01.产量计数压接计数器04.产量计数200121 压接计数器05.产量计数5gd1qg 海天温湿度.温度6h0c2l 海天温湿度.湿度…

C#中使用Socket请求Web服务器过程

最开始我们需要明白一件事情,因为这是这篇文章的前提: HTTP协议只是一个应用层协议,它底层是通过TCP进行传输数据的。因此,浏览器访问Web服务器的过程必须先有“连接建立”的发生。而有人或许会问:众所周知,HTTP协议有两大特性,一个是“无连接”性,一个是“无状态”性。…

新蜀门+单机版安装教程+虚拟机一键端+GM

今天给大家带来一款单机游戏的架设:新蜀门。本版本支持win64位系统 另外:本人承接各种游戏架设(单机+联网) 本人为了学习和研究软件内含的设计思想和原理,带了架设教程仅供娱乐。 教程是本人亲自搭建成功的,绝对是完整可运行的,踩过的坑都给你们填上了。如果你是小白也没…

一文为你解读MySQL8.0 Instant DDL源码实现

MySQL 8.0.12版本引入了INSTANT(即时)算法,对部分ADD COLUMN操作,不再修改用户原有数据,只需对表元信息进行修改。一、背景介绍 数据库中每一行数据都被持久化存储在磁盘中。当我们对表进行ADD/DROP COLUMN操作时,磁盘中的数据也会相应地被修改,所需时间与对应表的大小成…