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 給我們支持。

GitHub stars

如果你覺得本篇文章對您有幫助的話,感謝您的【推薦】。


本文地址:http://www.cnblogs.com/savorboard/p/cap-6-0.html
作者博客:Savorboard
本文原創授權為:署名 - 非商業性使用 - 禁止演繹,協議普通文本 | 協議法律文本


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM