日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

NCC CAP 6.0 发布 —— 新增支持 OpenTelemetry

發(fā)布時(shí)間:2023/12/4 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NCC CAP 6.0 发布 —— 新增支持 OpenTelemetry 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

今天,我們很高興宣布 CAP 發(fā)布 6.0 版本正式版,在這個(gè)版本中,我們主要致力于對(duì) OpenTelemetry 提供支持,以及更好的適配 .NET 6。

那么,接下來(lái)我們具體看一下吧。

總覽

可能有些人還不知道 CAP 是什么,老規(guī)矩來(lái)一個(gè)簡(jiǎn)介。

CAP 是一個(gè)用來(lái)解決微服務(wù)或者分布式系統(tǒng)中分布式事務(wù)問(wèn)題的一個(gè)開(kāi)源項(xiàng)目解決方案(https://github.com/dotnetcore/CAP)同樣可以用來(lái)作為 EventBus 使用,該項(xiàng)目誕生于2016年,目前在 Github 已經(jīng)有超過(guò) 5000+ Star 和 70 個(gè)貢獻(xiàn)者,以及在 NuGet 超200萬(wàn)的下載量,并在越來(lái)越多公司的和項(xiàng)目中得到應(yīng)用。

如果你想對(duì) CAP 更多了解,請(qǐng)查看我們的 官方文檔(http://cap.dotnetcore.xyz/)。

本次在 CAP 6.0 版本中我們主要帶來(lái)了以下新特性:

  • 適配 .NET 6 啟用 #nullable

  • 支持 OpenTelemetry

  • 改進(jìn) NATS Jetstream 對(duì)通配符的支持

  • Azure ServiceBus 支持自定義 Header

  • 更新依賴(lài)的 NuGet 包到最新版本

適配 .NET 6

雖然上一個(gè)版本也能夠在 .NET 6 的項(xiàng)目中使用,但是在這個(gè)版本中我們升級(jí)了我們的 NuGet 包到和框架符合的 .NET 6 的版本,并且對(duì)于依賴(lài)了EF的包兼容了 .NET Standard 2.1 的支持。

過(guò)去我們使用 Jetbrains.Annotations 包對(duì)可能存在null的場(chǎng)景進(jìn)行檢查,但是并不徹底,而且IDE對(duì)其支持有限。在新的 .NET 6版本中官方已經(jīng)默認(rèn)開(kāi)啟了#nullable的功能,所以我們也是將所有的庫(kù)都進(jìn)行了啟用,以便于對(duì)可能存在null的場(chǎng)景盡可能在編譯階段知道,從而讓代碼更加穩(wěn)健。

支持 OpenTelemetry

自 2.6 版本一直以來(lái),我們提供了對(duì) Diagnostics 的支持,并且我們?cè)?SkyAPM.Diagnostics.CAP 中提供了對(duì) Skywalking 的支持以用于做分布式跟蹤,但這僅限于在 Skywalking 中才能使用。

在 .NET 6 中,.NET 團(tuán)隊(duì)改進(jìn)了對(duì)分布式跟蹤的支持,所以在這個(gè)版本中,CAP 提供了對(duì) OpenTelemetry 的支持。

OpenTelemetry 是 CNCF 的一個(gè)可觀測(cè)性項(xiàng)目,旨在提供可觀測(cè)性領(lǐng)域的標(biāo)準(zhǔn)化方案,解決觀測(cè)數(shù)據(jù)的數(shù)據(jù)模型、采集、處理、導(dǎo)出等的標(biāo)準(zhǔn)化問(wèn)題,提供與三方 vendor 無(wú)關(guān)的服務(wù)。它是一組標(biāo)準(zhǔn)和工具的集合,旨在管理觀測(cè)類(lèi)數(shù)據(jù),如 trace、metrics、logs 等。

集成CAP的方式也很簡(jiǎn)單,以在 ASP.NET Core 項(xiàng)目中為例:

首先,引用 DotNetCore.CAP.OpenTelemetry 包

PM> Install-Package DotNetCore.CAP.OpenTelemetry

然后,在集成了 OpenTelemetry 的項(xiàng)目( https://opentelemetry.io/docs/instrumentation/net/getting-started/#aspnet-core )中添加 CAP 的 Instrumentation 即可。

public?void?ConfigureServices(IServiceCollection?services){services.AddOpenTelemetryTracing((builder)?=>?builder.AddAspNetCoreInstrumentation().AddCapInstrumentation()?// <-- CAP 的支持,只需添加此行.AddZipkinExporter());}

這樣,你就可能使用你喜愛(ài)的工具來(lái)對(duì)跟蹤請(qǐng)求進(jìn)行查看。以下為CAP 在 Zipkin 的一個(gè)截圖。

你可以在文檔中找到更多信息。

https://cap.dotnetcore.xyz/user-guide/zh/monitoring/opentelemetry/

改進(jìn) NATS Jetstream 對(duì)通配符的支持

我們?cè)谏蟼€(gè)版本(5.2)中改進(jìn)了對(duì) JetStream 的支持,但是不能發(fā)送帶有* 通配符的消息,這個(gè)在 JetStream中是受支持的,在這個(gè)版本中我們對(duì)此進(jìn)行了優(yōu)化,現(xiàn)在你可能正常的發(fā)送帶有通配符的消息。

此外,我們還提供了 NormalizeStreamName 配置項(xiàng)用于處于多個(gè)不同名稱(chēng)的流綁定同一個(gè)Topic的問(wèn)題,默認(rèn)情況下使用 '.' 前面的字符認(rèn)為處于一個(gè)組。

Azure ServiceBus 支持自定義 Header

在這個(gè)版本中,Azure ServiceBus 也提供了 CustomHeaders 配置項(xiàng)用于接收來(lái)自于異構(gòu)系統(tǒng)中發(fā)送的消息。你可以在文檔中找到更多信息。

https://cap.dotnetcore.xyz/user-guide/en/transport/azure-service-bus/#heterogeneous-systems

感謝 @mviegas 對(duì)此提交的PR。

其他

其他的一些改進(jìn)項(xiàng)目包括:

1、我們將所有的 nuget 的依賴(lài)包都升級(jí)到了最新版本。

2、修復(fù)了一些已知的Bug,你可以在 Github Release 中看到。

總結(jié)

以上,就是本版本中支持的一些新特性,感謝大家的支持,我們很開(kāi)心能夠幫助到大家 。大家在使用的過(guò)程中遇到問(wèn)題希望也能夠積極的反饋,幫助CAP變得越來(lái)越好。😃

總結(jié)

以上是生活随笔為你收集整理的NCC CAP 6.0 发布 —— 新增支持 OpenTelemetry的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。