.NET 變更摘要處理器 SDK:下載和版本資訊 (舊版)

適用於: NoSQL

連結
SDK 下載 NuGet (英文)
API 文件 變更摘要處理器連結庫 API 參考檔
開始使用 開始使用變更摘要處理器 .NET SDK
目前支持的架構 Microsoft .NET Framework 4.5
Microsoft .NET Core

注意

如果您使用變更摘要處理器,請參閱 .NET SDK 的最新版本 3.x,其中包含 SDK 內建的變更摘要。

版本資訊

v2 組建

2.5.0

  • 已新增 類別的新建構函式, Microsoft.Azure.Documents.ChangeFeedProcessor.Logging.TraceLogProvider 這個類別會採用的 System.Diagnostics.TraceSource 實例做為自變數。 這可讓 TraceLogProvider用於 .net 追蹤的 ,以程式設計方式從原始程式碼中初始化的自定義 TraceSource 實例建立。 在此變更之前,您只能使用App.config檔案來設定 .net 追蹤。

2.4.0

  • 已新增租用集合的支持,這些集合可以使用定義為 /partitionKey 的數據分割索引鍵進行分割。 在此變更租用集合的數據分割索引鍵之前,必須定義為 /id。
  • 此版本允許使用租用集合搭配 API for Gremlin,因為 Gremlin 集合不能有定義為 /id 的數據分割索引鍵。

2.3.2

  • 已新增與 [V3 SDK 的租用存放區相容性,以啟用經常性移轉路徑。 應用程式可以移轉至 V3 SDK,並移回變更摘要處理器連結庫,而不會遺失任何狀態。

2.3.1

  • FeedProcessing.ChangeFeedObserverCloseReason.Unknown如果找不到分割區,或目標複本不是最新的讀取會話,則更正了關閉原因傳送至 FeedProcessing.IChangeFeedObserver.CloseAsync 的情況。 在這些情況下 FeedProcessing.ChangeFeedObserverCloseReason.ResourceGoneFeedProcessing.ChangeFeedObserverCloseReason.ReadSessionNotAvailable 現在會使用關閉原因。
  • 已新增一個新的關閉原因 FeedProcessing.ChangeFeedObserverCloseReason.ReadSessionNotAvailable ,會在目標複本不是最新的讀取會話時,傳送至關閉變更摘要觀察者。

2.3.0

  • 已新增新的方法和 ChangeFeedProcessorBuilder.WithCheckpointPartitionProcessorFactory 對應的公用介面 ICheckpointPartitionProcessorFactory。 這可讓介面的實作 IPartitionProcessor 使用內建檢查點機制。 新的處理站與現有的 IPartitionProcessorFactory類似,不同之處在於其 Create 方法也會採用 ILeaseCheckpointer 參數。
  • 只有兩個方法的其中一個,無論是 ChangeFeedProcessorBuilder.WithPartitionProcessorFactoryChangeFeedProcessorBuilder.WithCheckpointPartitionProcessorFactory,都可用於相同的 ChangeFeedProcessorBuilder 實例。

2.2.8

  • 穩定性和可診斷性改善:
    • 新增了偵測讀取變更摘要需要很長時間的支援。 當它花費的時間超過 屬性所 ChangeFeedProcessorOptions.ChangeFeedTimeout 指定的值時,會採取下列步驟:
      • 在有問題的分割區上讀取變更摘要的作業已中止。
      • 變更摘要處理器實例會卸除有問題的租用擁有權。 卸除的租用將在下一個租用取得步驟期間進行,由相同或不同的變更摘要處理器實例完成。 如此一來,讀取變更摘要就會開始。
      • 健康情況監視器會回報問題。 默認的熱身監視器會將所有回報的問題傳送至追蹤記錄。
    • 已新增公用屬性: ChangeFeedProcessorOptions.ChangeFeedTimeout。 此屬性的預設值為10分鐘。
    • 已新增公用列舉值: Monitoring.MonitoredOperation.ReadChangeFeed。 當的值 HealthMonitoringRecord.Operation 設定為 Monitoring.MonitoredOperation.ReadChangeFeed時,表示健康情況問題與讀取變更摘要有關。

2.2.7

  • 改善取得所有租用時,因網路問題而花費的時間超過租用到期間隔的案例負載平衡策略:
    • 在此案例中,用來誤認為租用已過期的負載平衡演算法,導致從作用中擁有者竊取租用。 這可能會觸發不必要的重新平衡許多租用。
    • 此版本中已修正此問題,方法是避免在取得擁有者尚未變更的過期租用時重試衝突,並將取得過期的租用延後至下一個負載平衡反覆專案。

2.2.6

  • 改善觀察者例外狀況的處理。
  • 觀察者錯誤的更豐富資訊:
    • 當 Observer 因為 Observer 的 ProcessChangesAsync 擲回例外狀況而關閉時,CloseAsync 現在會收到設定為 ChangeFeedObserverCloseReason.ObserverError 的原因參數。
    • 已新增追蹤,以識別 Observer 中用戶程式代碼內的錯誤。

2.2.5

  • 已新增處理使用共享資料庫輸送量之集合中分割的支援。
    • 此版本修正了在集合中使用共用資料庫輸送量分割期間,將結果分割成只建立一個子數據分割索引鍵範圍,而不是兩個子分割區索引鍵範圍時,可能發生的問題。 發生這種情況時,變更摘要處理器可能會停滯刪除舊分割區索引鍵範圍的租用,而不會建立新的租用。 此版本已修正此問題。

2.2.4

  • 已新增 ChangeFeedProcessorOptions.StartContinuation 屬性,以支援從要求接續令牌開始變更摘要。 只有當租用集合是空的,或租用沒有 ContinuationToken 設定時,才會使用這個值。 對於已設定 ContinuationToken 之租用集合中的租用,會使用 ContinuationToken,並忽略 ChangeFeedProcessorOptions.StartContinuation。

2.2.3

  • 已新增使用自定義存放區保存每個分割區的接續令牌的支援。
    • 例如,自定義租用存放區可以是以任何自定義方式分割的 Azure Cosmos DB 租用集合。
    • 自定義租用存放區可以使用新的擴充點 ChangeFeedProcessorBuilder.WithLeaseStoreManager(ILeaseStoreManager) 和 ILeaseStoreManager 公用介面。
    • 將 ILeaseManager 介面重構為多個角色介面。
  • 次要重大變更:已移除擴充點 ChangeFeedProcessorBuilder.WithLeaseManager(ILeaseManager),請改用 ChangeFeedProcessorBuilder.WithLeaseStoreManager(ILeaseStoreManager)。

2.2.2

  • 此版本修正了在處理受監視集合中的分割和使用分割租用集合期間所發生的問題。 處理分割分割區的租用時,可能不會刪除對應至該分割區的租用。 此版本已修正此問題。

2.2.1

  • 已修正具有多個寫入區域和新會話令牌格式之帳戶的估算器計算。

2.2.0

  • 已新增數據分割租用集合的支援。 分割區索引鍵必須定義為 /id。
  • 次要重大變更:IChangeFeedDocumentClient 介面和 ChangeFeedDocumentClient 類別的方法已變更為包含 RequestOptions 和 CancellationToken 參數。 IChangeFeedDocumentClient 是進階擴充點,可讓您提供檔用戶端的自定義實作來與變更摘要處理器搭配使用,例如裝飾 DocumentClient 並攔截所有呼叫,以執行額外的追蹤、錯誤處理等。透過此更新,實作 IChangeFeedDocumentClient 的程式代碼必須變更,才能在實作中包含新的參數。
  • 次要 診斷的改善。

2.1.0

  • 已新增 API、Task<IReadOnlyList<RemainingPartitionWork IRemainingWorkEstimator.GetEstimatedRemainingWorkPerPartitionAsync>> ()。 這可用來取得每個分割區的估計工作。
  • 支援 Microsoft.Azure.DocumentDB SDK 2.0。 需要 Microsoft.Azure.DocumentDB 2.0 或更新版本。

2.0.6

  • 已新增 ChangeFeedEventHost.HostName 公用屬性,以與 v1 相容。

2.0.5

  • 已修正分割區分割期間發生的競爭狀況。 競爭狀況可能會導致取得租用,並在分割區分割期間立即遺失,並造成爭用。 此版本已修正競爭條件問題。

2.0.4

  • GA SDK

2.0.3-prerelease

  • 已修正下列問題:

    • 分割區分割發生時,可能會重複處理分割之前修改的檔。
    • 當租用集合中沒有租用時,GetEstimatedRemainingWork API 會傳回 0。
  • 下列例外狀況會公開。 實作 IPartitionProcessor 的延伸模組可能會擲回這些例外狀況。

    • Microsoft.Azure.Documents.ChangeFeedProcessor.Exceptions.LeaseLostException。
    • Microsoft.Azure.Documents.ChangeFeedProcessor.Exceptions.PartitionException。
    • Microsoft.Azure.Documents.ChangeFeedProcessor.Exceptions.PartitionNotFoundException。
    • Microsoft.Azure.Documents.ChangeFeedProcessor.Exceptions.PartitionSplitException。

2.0.2-prerelease

  • 次要 API 變更:
    • 已移除標示為過時的 ChangeFeedProcessorOptions.IsAutoCheckpointEnabled。

2.0.1-prerelease

  • 穩定性改善:
    • 更妥善地處理租用存放區初始化。 當租用存放區是空的時,只有一個處理器實例可以初始化它,其他實例會等候。
    • 更穩定/有效率的租用更新/發行。 更新和釋放租用一個分割區與更新其他分割區無關。 在 v1 中,已針對所有分割區循序完成。
  • 新的 v2 API:
    • 處理器彈性建構的產生器模式:ChangeFeedProcessorBuilder 類別。
      • 可以採用任何參數組合。
      • 可以採用 DocumentClient 實例來監視和/或租用集合(不適用於 v1)。
    • IChangeFeedObserver.ProcessChangesAsync 現在會採用 CancellationToken。
    • IRemainingWorkEstimator - 剩餘的工作估算器可以與處理器分開使用。
    • 新的擴充點:
      • IPartitionLoadBalancingStrategy - 用於處理器實例之間的分割區自定義負載平衡。
      • ILease、ILeaseManager - 用於自定義租用管理。
      • IPartitionProcessor - 用於分割區上的自定義處理變更。
  • 記錄 - 使用 LibLog 連結庫。
  • 與 v1 API 回溯相容 100%。
  • 新的程式代碼基底。
  • SQL .NET SDK 1.21.1 版和更新版本相容。

v1 組建

1.3.3

  • 已新增更多記錄。
  • 已修正呼叫擱置工作估計多次時發生 DocumentClient 流失的問題。

1.3.2

  • 修正擱置中的工作估計。

1.3.1

  • 改善穩定性。
    • 修正處理可能導致某些分割區上停止觀察者之已取消的工作問題。
  • 支援手動檢查點。
  • SQL .NET SDK 1.21 版和更新版本相容。

1.2.0

  • 新增 .NET Standard 2.0 的支援。 套件現在支援 netstandard2.0net451 架構 Moniker。
  • SQL .NET SDK 1.17.0 版和更新版本相容。
  • SQL .NET Core SDK 1.5.1 版和更新版本相容。

1.1.1

  • 修正當變更摘要是空的,或沒有任何工作擱置時,計算剩餘工時估計值的問題。
  • SQL .NET SDK 1.13.2 版和更新版本相容。

1.1.0

  • 已新增 方法,以取得變更摘要中要處理的剩餘工時估計值。
  • SQL .NET SDK 1.13.2 版和更新版本相容。

1.0.0

  • GA SDK
  • SQL .NET SDK 1.14.1 版和更新版本相容。

發行和淘汰日期

Microsoft 會在淘汰 SDK 之前至少 提供 12 個月的 通知,以順利轉換至較新的/支援版本。 新的功能與最佳化項目只會新增至目前的 SDK,因此建議您一律盡早升級至最新的 SDK 版本。

警告

在 2022 年 8 月 31 日之後,Azure Cosmos DB 將不再進行 Bug 修正、新增新功能,以及支援適用於 NoSQL 的 Azure Cosmos DB .NET 或 .NET Core SDK 1.x 版。 如果您還不想升級,Azure Cosmos DB 服務會繼續處理從 1.x 版 SDK 傳送的要求。


版本 發行日期 退場日期
2.5.0 2023年5月15日 ---
2.4.0 2021年5月6日 ---
2.3.2 2020 年 8 月 11 日 ---
2.3.1 2020 年 7 月 30 日 ---
2.3.0 2020 年 4 月 2 日 ---
2.2.8 2019年10月28日 ---
2.2.7 2019 年 5 月 14 日 ---
2.2.6 2019年1月29日 ---
2.2.5 2018 年 12 月 13 日 ---
2.2.4 2018 年 11 月 29 日 ---
2.2.3 2018 年 11 月 19 日 ---
2.2.2 2018 年 10 月 31 日 ---
2.2.1 2018 年 10 月 24 日 ---
1.3.3 2018 年 5 月 8 日 ---
1.3.2 2018 年 4 月 18 日 ---
1.3.1 2018 年 3 月 13 日 ---
1.2.0 2017 年 10 月 31 日 ---
1.1.1 2017 年 8 月 29 日 ---
1.1.0 2017 年 8 月 13 日 ---
1.0.0 2017年7月7日 ---

常見問題集

如何收到即將淘汰 SDK 的通知?

Microsoft 會在淘汰 SDK 終止支援之前提供 12 個月的提前通知,以利順利轉換至支援的 SDK。 我們會透過各種通道通知您:Azure 入口網站、Azure 更新,以及直接通訊給指派的服務系統管理員。

我可以在 12 個月期間使用即將淘汰的 Azure Cosmos DB SDK 來撰寫應用程式嗎?

是,您可以在 12 個月的通知期間使用即將淘汰的 Azure Cosmos DB SDK 來撰寫、部署和修改應用程式。 建議您在 12 個月的通知期間,視需要移轉至較新的 Azure Cosmos DB SDK 版本。

淘汰日期之後,使用不支援的 Azure Cosmos DB SDK 的應用程式會發生什麼事?

淘汰日期之後,Azure Cosmos DB 將不再進行錯誤修正、新增功能,或為已淘汰的 SDK 版本提供支援。 如果您不想升級,從已淘汰版本的 SDK 傳送要求將繼續由 Azure Cosmos DB 服務提供服務。

哪些 SDK 版本會有最新的功能和更新?

新功能和更新只會新增至最新支援的主要 SDK 版本的最新次要版本。 建議您一律使用最新版本來利用新功能、效能改善和錯誤修正。 如果您使用舊版、未淘汰的 SDK,對 Azure Cosmos DB 的要求仍會正常運作,但您無法存取任何新功能。

如果我無法在截止日期之前更新應用程式,該怎麼辦?

建議您儘早升級至最新的 SDK。 將 SDK 標記為淘汰之後,您將有 12 個月的時間更新您的應用程式。 如果您無法從淘汰日期更新,從已淘汰版本的 SDK 傳送要求將繼續由 Azure Cosmos DB 提供服務,因此執行中的應用程式將繼續運作。 但 Azure Cosmos DB 將不再對已淘汰的 SDK 版本進行錯誤修正、新增功能或提供支援。

如果您有支援方案並需要技術支援, 請提出支援票證以與我們連絡

如何要求功能新增至 SDK 或連接器?

新功能不一定會立即新增至每個 SDK 或連接器。 如果不支援您想要新增的功能,請將意見反應新增至我們的 社群論壇

另請參閱

若要深入瞭解 Azure Cosmos DB,請參閱 Microsoft Azure Cosmos DB 服務頁面。