Elastic.Channels 0.7.0

前缀已保留
dotnet add package Elastic.Channels --version 0.7.0                
NuGet\Install-Package Elastic.Channels -Version 0.7.0                
该命令旨在在Visual Studio的包管理器控制台中使用,因为它使用NuGet模块的安装-Package版本。
<PackageReference Include="Elastic.Channels" Version="0.7.0" />                
对于支持PackageReference的项目,请将此XML节点复制到项目文件中以引用该包。
paket add Elastic.Channels --version 0.7.0                
#r "nuget: Elastic.Channels, 0.7.0"                
#r指令可用于F# Interactive和Polyglot Notebooks。将此内容复制到交互工具或脚本的源代码中,以引用包。
// Install Elastic.Channels as a Cake Addin
#addin nuget:?package=Elastic.Channels&version=0.7.0

// Install Elastic.Channels as a Cake Tool
#tool nuget:?package=Elastic.Channels&version=0.7.0                

Elastic.Channels

提供了一种专门的System.Threading.Channels.ChannelWriter实现,使得批量消费推送到该线程的数据变得容易。

批处理将在达到一定最大值或批次的生命周期超过一定年龄时发出。

这允许以相同的方式推送不同速率的数据,同时可以实施不同的实现来将批处理数据发送给接收器。

此包主要作为核心库以及抽象类提供,不提供任何有用的实现。

它包含一个NoopBufferedChannel实现,该实现在其单元测试和基准测试目的的` exposImport 实现`中不执行任何操作。

BufferedChannelBase<>

一个抽象类,要求实现者实现

protected abstract Task<TResponse> Export(IReadOnlyCollection<TEvent> buffer, CancellationToken ctx);

任何实现都允许通过以下方式将其数据推送到它

var e = new TEvent();
if (await channel.WaitToWriteAsync(e))
	written++;

ChannelOptionsBase<>

BufferedChannelBase<>的实现者必须创建自己的ChannelOptionsBase<>实现。这样,每个通道实现都会创建一个适当命名的选项类。

简单的最小实现


public class Event { }
public class Response { }

public class NoopChannelOptions 
  : ChannelOptionsBase<Event, Response> { }

public class NoopBufferedChannel 
  : BufferedChannelBase<NoopChannelOptions, Event, Response>
{

  public NoopBufferedChannel(NoopChannelOptions options) 
    : base(options) { }

  protected override Task<Response> Export(IReadOnlyCollection<NoopEvent> buffer, CancellationToken ctx)
  {
    return Task.FromResult(new Response());
  }
}

现在一旦我们实例化了一个 NoopBufferedChannel,我们就可以用它推送数据。

var e = new Event();
if (await noopChannel.WaitToWriteAsync(e))
	written++;

为了测试或调试目的,既存在 NoopBufferedChannel,也存在更专门的 DiagnosticsBufferedChannel

DiagnosticsBufferedChannel.ToString() 揭示了大量关于状态机的见解。

缓冲区选项

每个 ChannelOptionsBase<> 实现都会接收并公开一个 BufferOptions 实例。这控制了 BufferedChannelBase<> 的缓冲行为。

选项 描述
InboundBufferMaxSize 可以在内存中队列的最大飞行实例数。如果达到此阈值,事件将被丢弃
OutboundBufferMaxSize 本地缓冲区应达到的事件数,在单个调用中将事件发送到 Elasticsearch 前
OutboundBufferMaxLifetime 缓冲区刷新前的最大年龄
ExportMaxConcurrency 控制多少个并发 Export 操作可以发生
ExportMaxRetries Export 上最大重试次数
ExportBackOfPeriod 计算重试的适当退避时间的函数
ExportBufferCallback 每当缓冲区刷新时调用一次,不包括重试
WaitHandle 注入一个 waitHandle,在每次刷新(不包括重试)后发出信号
产品 兼容的以及额外的计算目标框架版本。
.NET net5.0 已计算。  net5.0-windows 已计算。  net6.0 已计算。  net6.0-android 已计算。  net6.0-ios 已计算。  net6.0-maccatalyst 已计算。  net6.0-macos 已计算。  net6.0-tvos 已计算。  net6.0-windows 已计算。  net7.0 已计算。  net7.0-android 已计算。  net7.0-ios 已计算。  net7.0-maccatalyst 已计算。  net7.0-macos 已计算。  net7.0-tvos 已计算。  net7.0-windows 已计算。  net8.0 已计算。  net8.0-android 已计算。  net8.0-browser 已计算。  net8.0-ios 已计算。  net8.0-maccatalyst 已计算。  net8.0-macos 已计算。  net8.0-tvos 已计算。  net8.0-windows 已计算。 
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET 标准版 netstandard2.0 兼容。 netstandard2.1 兼容。
.NET 框架 net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包含的目标框架(在包中)
了解有关 目标框架.NET 标准版 的更多信息。

NuGet 包 (1)

显示依赖于 Elastic.Channels 的前 1 个 NuGet 包

下载
Elastic.Ingest.Transport

提供组件,用于通过 Elastic.Transport 通过 HTTP 向分布式系统发布事件

GitHub 仓库

此包没有被任何流行的GitHub仓库使用。

版本 下载 最后更新
0.7.0 132,669 4/10/2024
0.6.0 282 3/28/2024
0.5.7 7,471 2/13/2024
0.5.6 473 1/22/2024
0.5.5 446,596 7/12/2023
0.5.4 478 7/10/2023
0.5.3 504 7/5/2023
0.5.2 501 6/22/2023
0.5.1 494 5/4/2023
0.5.0 84,158 4/28/2023
0.4.3 537 4/17/2023
0.4.2 775 4/5/2023
0.4.1 508 4/5/2023
0.4.0 520 4/5/2023
0.3.2 19,692 2/27/2023
0.3.1 1,052 2/20/2023
0.3.0 760 2/16/2023
0.2.2 898 1/31/2023
0.2.1 744 1/31/2023
0.2.0 705 1/31/2023
0.1.0 919 1/25/2023