CAP 6.0 版本发布通告 - 支持 OpenTelemetry
前言
今天,我们很高兴宣布 CAP 发布 6.0 版本正式版,在这个版本中,我们主要致力于对 OpenTelemetry 提供支持,以及更好的适配 .NET 6。
那么,接下来我们具体看一下吧。
总览
可能有些人还不知道 CAP 是什么,老规矩来一个简介。
CAP 是一个用来解决微服务或者分布式系统中分布式事务问题的一个开源项目解决方案(https://github.com/dotnetcore/CAP)同样可以用来作为 EventBus 使用,该项目诞生于2016年,目前在 Github 已经有超过 5000+ Star 和 70 个贡献者,以及在 NuGet 超200万的下载量,并在越来越多公司的和项目中得到应用。
如果你想对 CAP 更多了解,请查看我们的 官方文档。
本次在 CAP 6.0 版本中我们主要带来了以下新特性:
- 适配 .NET 6 启用 #nullable
- 支持 OpenTelemetry
- 改进 NATS Jetstream 对通配符的支持
- Azure ServiceBus 支持自定义 Header
- 更新依赖的 NuGet 包到最新版本
适配 .NET 6
虽然上一个版本也能够在 .NET 6 的项目中使用,但是在这个版本中我们升级了我们的 NuGet 包到和框架符合的 .NET 6 的版本,并且对于依赖了EF的包兼容了 .NET Standard 2.1 的支持。
过去我们使用 Jetbrains.Annotations 包对可能存在null的场景进行检查,但是并不彻底,而且IDE对其支持有限。 在新的 .NET 6版本中官方已经默认开启了#nullable的功能,所以我们也是将所有的库都进行了启用,以便于对可能存在null的场景尽可能在编译阶段知道,从而让代码更加稳健。
支持 OpenTelemetry
自 2.6 版本一直以来,我们提供了对 Diagnostics 的支持,并且我们在 SkyAPM.Diagnostics.CAP 中提供了对 Skywalking 的支持以用于做分布式跟踪,但这仅限于在 Skywalking 中才能使用。
在 .NET 6 中,.NET 团队改进了对分布式跟踪的支持,所以在这个版本中,CAP 提供了对 OpenTelemetry 的支持。
OpenTelemetry 是 CNCF 的一个可观测性项目,旨在提供可观测性领域的标准化方案,解决观测数据的数据模型、采集、处理、导出等的标准化问题,提供与三方 vendor 无关的服务。 它是一组标准和工具的集合,旨在管理观测类数据,如 trace、metrics、logs 等。
集成CAP的方式也很简单,以在 ASP.NET Core 项目中为例:
首先,引用 DotNetCore.CAP.OpenTelemetry
包
PM> Install-Package DotNetCore.CAP.OpenTelemetry
然后,在集成了 OpenTelemetry 的项目( 查看这里 )中添加 CAP 的 Instrumentation 即可。
public void ConfigureServices(IServiceCollection services)
{
services.AddOpenTelemetryTracing((builder) => builder
.AddAspNetCoreInstrumentation()
.AddCapInstrumentation() // <-- CAP 的支持,只需添加此行
.AddZipkinExporter()
);
}
这样,你就可能使用你喜爱的工具来对跟踪请求进行查看。以下为CAP 在 Zipkin 的一个截图。
你可以在文档中找到更多信息。
改进 NATS Jetstream 对通配符的支持
我们在上个版本(5.2)中改进了对 JetStream 的支持,但是不能发送带有* 通配符的消息,这个在 JetStream中是受支持的,在这个版本中我们对此进行了优化,现在你可能正常的发送带有通配符的消息。
此外,我们还提供了 NormalizeStreamName
配置项用于处于多个不同名称的流绑定同一个Topic的问题,默认情况下使用 '.' 前面的字符认为处于一个组。
Azure ServiceBus 支持自定义 Header
在这个版本中,Azure ServiceBus 也提供了 CustomHeaders
配置项用于接收来自于异构系统中发送的消息。
你可以在文档中找到更多信息。
感谢 @mviegas 对此提交的PR。
其他
其他的一些改进项目包括:
1、我们将所有的 nuget 的依赖包都升级到了最新版本。
2、修复了一些已知的Bug,你可以在 Github Release 中看到。
总结
以上,就是本版本中支持的一些新特性,感谢大家的支持,我们很开心能够帮助到大家 。大家在使用的过程中遇到问题希望也能够积极的反馈,帮助CAP变得越来越好。
如果你喜欢这个项目,可以通过下面的连接点击 Star 给我们支持。
如果你觉得本篇文章对您有帮助的话,感谢您的【推荐】。
本文地址:http://www.cnblogs.com/savorboard/p/cap-6-0.html
作者博客:Savorboard
本文原创授权为:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本
CAP 6.0 版本发布通告 - 支持 OpenTelemetry的更多相关文章
- CAP 3.0 版本发布通告
前言 大家好,我们很高兴宣布 CAP 发布了 3.0 版本正式版. 自从上次 CAP 2.6 版本发布 以来,已经过去了几个月的时间,关注的朋友可能知道,在这几个月的时间里,也发布了几个预览版的 3. ...
- CAP 5.0 版本发布通告
前言 今天,我们很高兴宣布 CAP 发布 5.0 版本正式版.同时我们也很高兴的告诉你 CAP 已经有越来越多的用户并且变得越来越流行. 在 5.0 版本中,我们主要致力于更好的支持 .NET 5 以 ...
- CAP 3.1 版本发布通告
前言 今天,我们很高兴宣布 CAP 发布 3.1 版本正式版.同时我们也很高兴的告诉你 CAP 在 GitHub 已经突破了 4000 Star. CAP 3000 Star 还是去年8月份的时候,最 ...
- CAP 5.1 版本发布通告 - 你期待的 Redis 来了
前言 今天,我们很高兴宣布 CAP 发布 5.1 版本正式版,在这个版本里我们同样引入了更多令人激动的新特性和改进,同时也得到越来越多人的喜爱. 得益于社区的反馈和贡献者的支持,在过去的两个月里,我们 ...
- CAP 2.4版本发布,支持版本隔离特性
前言 自从上次 CAP 2.3 版本发布 以来,已经过去了几个月的时间,这几个月比较忙,所以也没有怎么写博客,趁着2019年到来之际(现在应该是2019年开始的时候),CAP也发布了2018年的最后一 ...
- CAP 2.6 版本发布通告
前言 今天,我们很高兴宣布 CAP 发布 2.6 版本正式版.同时我们也很高兴的告诉你 CAP 在 GitHub 已经突破了3000 Star. 自从上次 CAP 2.5 版本发布 以来,已经过去了几 ...
- CAP 5.2 版本发布通告
前言 今天,我们很高兴宣布 CAP 发布 5.2 版本正式版,在这个版本中,我们主要致力于更好的优化使用体验以及支持新的 Transport,同时在该版本也进行了一些 bug 修复的工作. 自从 5. ...
- CAP 6.1 版本发布通告
前言 今天,我们很高兴宣布 CAP 发布 6.1 版本正式版,在这个版本中我们主要针对目前已经发现的几个BUG进行了修复了以及添加了一些小特性. 那么,接下来我们具体看一下吧. 总览 可能有些人还不知 ...
- CAP 6.2 版本发布通告
前言 今天,我们很高兴宣布 CAP 发布 6.2 版本正式版,在这个版本中我们主要做了一些功能优化,以及针对目前已经发现的几个 BUG 进行了修复了. 那么,接下来我们具体看一下吧. 总览 可能有些人 ...
随机推荐
- web端 - 返回上一步,点击返回,跳转上个页面 JS
1.方法一: <script language="javascript" type="text/javascript"> window.locati ...
- DT10功能介绍--DT10多波示波器
功能介绍 有些嵌入式软件方面的问题,利用传统的调试器可能无法解决,而通过逻辑分析器则能有效地解决.请仔细阅读本文, 看我们如何一步一步地讲解在这种情况下所需的配置. 但是,从传统意义上讲,逻辑分析器是 ...
- 【阿菜漏洞复现】DeFi 平台 MonoX Finance 漏洞分析及复现
前言 2021 年 11 ⽉ 30 ⽇,DeFi 平台 MonoX Finance 遭遇攻击,损失共计约 3100 万美元. 造成本次攻击的漏洞主要有两个: 移除流动性的函数未对调用者进行检测,使得任 ...
- linux系统目录初识
目录 今日内容概要 内容详细 系统目录结构介绍 目录结构知识描述 今日内容概要 系统目录结构介绍 目录结构详细描述 内容详细 系统目录结构介绍 # 1.linux系统中的目录 一切从根开始 结构拥有层 ...
- python3.6.4 scrapy框架from PIL import Image报错 from . import _imaging as core
scrapy框架爬取url下载图片时,用ImagesPipeline下载图片 from PIL import Image报错 from . import _imaging as core Import ...
- hbuilder打包app基本流程
声明:本文可能用到一些工具和第三方网站,都是为了达到目的而使用的工具,绝不含有广告成分 1.下载.最新的Hbuilder X貌似不能直接创建移动app了(自己不会用),建议旧版.可去腾某讯软件中心下载 ...
- Python利用ctypes实现C库函数调用
0X00 ctypes 是强大的,使用它我们就能够调 用动态链接库中函数,同时创建各种复杂的 C 数据类型和底层操作函数.使得python也具备了底层内存操作的能力,再配合python本身强大的表达能 ...
- CF469A I Wanna Be the Guy 题解
Content 小 A 和小 B 正在玩一个游戏,游戏一共有 \(n\) 关,而两个人各只能通过 \(p_A,p_B\) 个关卡.问他们能否通过合作通关这个游戏. 数据范围:\(1\leqslant ...
- Python 代码设计模式
责任链模式 (场景:OA系统,项目审批...) 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. 适用性 ...
- Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnl
org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read ...