NCC CAP 7.2 版本发布通告,控制板新增支持 k8s 服务发现
今天,我们很高兴宣布 CAP 发布 7.2 版本正式版,我们在这个版本中主要致力于 Dashboard 对 k8s 服务发现的支持。
从 7.1 版本以来,我们发布了4个小版本,在这些版本中我们主要解决发现的Bug和添加一些小功能,这篇文章中可能也会提及我们在这些小版本中加的一些小功能。
下面,具体看一下我们新版本的功能吧。
总览
可能有些人还不知道 CAP 是什么,老规矩来一个简介。
CAP 是一个用来解决微服务或者分布式系统中分布式事务问题的一个开源项目解决方案(https://github.com/dotnetcore/CAP)同样可以用来作为 EventBus 使用,该项目诞生于2016年,目前在 Github 已经有超过 6000+ Star 和 90+ 贡献者,以及在 NuGet超 500 万的下载量,并在越来越多公司的和项目中得到应用。
如果你想对 CAP 更多了解,请查看我们的 官方文档。
本次在 CAP 7.2 版本中我们主要带来了以下新特性:
-
消息发布任务由.NET线程池管理
-
Dashboard 添加对 Kubernetes 服务发现的支持
-
Dashboard 支持自定义JWT认证登录
-
Dashboard Api 支持匿名访问
-
破坏性改动
-
移除 ProducerThreadCount 配置项
-
SnowflakeId 生成由静态单例更改为依赖注入单例
-
移除7.1版本事务异步方法的支持
-
-
BUG 修复
-
修复 RabbitMQ BasicQos 配置项未按预期工作的问题
-
消息发布任务由.NET线程池管理
在过去,我们消息发布的Task是一条一条发送的,通过使用 ProducerThreadCount
配置项来控制同时发送的进程数来提高消息发送效率。在这个版本中,消息发布任务将由 .NET 线程池调度,同时 ProducerThreadCount
配置项被移除,这将充分利用 .NET 线程池的能力来提高发送效率。
在消息的消费侧,消费者的执行同样是线性的,在过去通过使用 UseDispatchPerGroup
配置项来让每个消费者组使用不同的队列来实现跨消费者组的并行消费。
现在消费侧同样引入了线程池,不过没有默认开启,可以通过EnableConsumerPrefetch
来启用,这样所有的消费者都将并行执行,无论是否处于相同的组, 。UseDispatchPerGroup
将不再需要
在 7.2.1 版本中,
UseDispatchPerGroup
将和EnableConsumerPrefetch
同时工作,参考 issue #1399 了解更多详情。
Dashboard 添加对 Kubernetes 服务发现的支持
在CAP的前期阶段,Kubernetes并没有被广泛使用。我们使用 Consul 进行仪表板发现,从其他节点收集数据,这大大简化了在微服务中查看不同节点数据的过程。
根据我们社区的反馈,越来越多的人使用 Kubernetes 作为他们的部署环境。所以我们在这个版本中支持 Kubernetes 作为服务发现。我们引入了一个新的NuGet包 DotNetCore.CAP.Dashboard.K8s
来实现这一点。
在引入了NuGet包后,现在有一个新的 UseK8sDiscovery
配置项用于配置服务发现,以下是一个配置示例
services.AddCap(x => { // ... x.UseDashboard(); x.UseK8sDiscovery(); });
组件将会自动检测是否处于集群内部,如果处于集群内部还需要赋予 Pod Kubernetes Api 的权限。
分配 Pod 访问 Kubernetes Api
如果你的 Deployment 关联的 ServiceAccount 没有 K8s Api 访问权限的话,则需要赋予 namespaces, services 资源的 get, list 权限。
所需配置项请参考我们的文档。https://cap.dotnetcore.xyz/user-guide/zh/monitoring/kubernetes/#dashboard
Kubernetes 发现页和Consul发现页使用的同一个,
CAP 仪表盘
将 Dashboard 独立运行
如果你想将 Dashboard 作为单独的 Pod 来部署,专门负责查看集群内其他服务的话,我们提供了一个单独的扩展方法来实现这一点。
配置如下:
// 只需要这一行即可 builder.Services.AddCapDashboardStandalone();
这将使CAP Dashboard 作为一个独立的pod服务来运行,仅用作查看其他服务。
下面这个是一个Sample.Dashboard.Jwt这个示例项目,打包的一个可供测试的Docker镜像
docker pull ghcr.io/yang-xiaodong/cap-dashboard:0.2
支持自定义JWT认证登录
现在我们的 Dashboard 支持接入自定义 JWT 统一认证。
现在你可以和你自己的系统集成,使用你的自定义登录页,使用你自己的Token,来访问 Dashboard。
你可以在 Sample.Dashboard.Jwt 示例中查看更多详细。
Dashboard Api 支持匿名访问
在将 CAP Dashboard 集成到现有项目的过程中,有些项目使用了 ASP.NET Core 全局认证过滤器,由于 CAP 的 API 也是基于 ASP.NET Core 路由机制实现的,所以会被全局过滤器限制,现在我们提供了一个新的配置项以允许API匿名访问。
我们在 Dashboard 中提供了一个新的配置项 AllowAnonymousExplicit
以允许将目前的 Api 进行允许匿名访问。
破坏性改动
移除 ProducerThreadCount 配置项
正如在第一节中介绍的一样,我们的消息发送任务现在使用 .NET 线程池进行,所以 ProducerThreadCount
配置项现在已经无效被移除。
SnowflakeId 生成由静态单例更改为依赖注入单例
我们的自动生成 Published 和 Received 表主键的雪花算法现在已经由静态单例模式更改为使用依赖注入的方式进行,这允许用户自行修改实现。
services.AddSingleton<ISnowflakeId, SnowflakeId>();
受改动影响,具体 Broker 中 CustomHeaders
配置项将由 CustomHeadersBuilder
替代, CustomHeadersBuilder 配置项提供了 IServiceProvider 允许从中获得 ISnowflakeId 实例。
移除7.1版本事务异步方法的支持
在7.1版本中,我们添加了对开启事务异步方法的支持,在这个版本中,我们将其移除。原因是由于我们的事务状态使用 AsyncLocal 存储,AsyncLocal 不支持向上传递导致事务状态丢失,所以这个版本将其移除。
BUG 修复
另外在这个版本中,我们修复了一些已知的Bug,以下是已经修复的问题列表。
-
修复 RabbitMQ BasicQos 配置项未按预期工作的问题

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
IDEA 插件 Fast Request 2023.2.1 发布
简介 Restful Fast Request是一个类似于 Postman 的 IDEA 插件。它是一个强大的 restful api 工具包插件,可以根据已有的方法帮助您快速、自动生成 url 和 params。 Restful Fast Request = API 调试工具 + API 管理工具 + API 搜索工具。 它有一个漂亮的界面来完成请求、检查服务器响应、存储你的 api 请求和导出 api 请求。插件帮助你在 IDEA 界面内更快更高效得调试你的 API。 Restful Fast Request 为简化 API 调试而生,3 秒调完 Spring 接口不是梦,所以少年,赶紧上号吧 倾听用户的声音,不断提升自我,本次Restful Fast Request更新主要内容如下: 新功能、优化项、修复项 最新域名 UI简化 api文档支持保存和打开 bilibili视频教程直达 自动域名优化 Map解析优化 show apis放入到右键菜单 统计页面加入了版本号 url和curl拷贝有environment变量的时候url没替换变量 curl以form-urlencoded和...
- 下一篇
XL-LightHouse 1.1.1 发布,轻松实现大数据实时统计
升级内容: 1、增加lighthouse-insights模块,后续将陆续增加多维数据可视化查询功能;2、代码结构优化;3、文档优化; 一键部署,一行代码接入,无需大数据研发运维经验,轻松实现海量数据实时统计,使用 XL-LightHouse 后: 1、再也不需要用 Flink、Spark、ClickHouse 或者基于 Redis 这种臃肿笨重的方案跑数了; 2、再也不需要疲于应付对个人价值提升没有多大益处的数据统计需求了,能够帮助您从琐碎反复的数据统计需求中抽身出来,从而专注于对个人提升、对企业发展更有价值的事情; 3、轻松帮您实现任意细粒度的监控指标,是您监控服务运行状况,排查各类业务数据波动、指标异常类问题的好帮手; 4、培养数据思维,辅助您将所从事的工作建立数据指标体系,量化工作产出,做专业严谨的职场人,创造更大的个人价值; 概述 XL-LightHouse 是针对互联网领域繁杂的流式数据统计需求而开发的一套集成了数据写入、数据运算、数据存储和数据可视化等一系列功能,支持超大数据量,支持超高并发的【通用型流式大数据统计平台】。 XL-LightHouse 目前已基本涵盖了常见...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启