加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

asp压缩 适用于 .NET 的 gRPC 配置

发布时间:2022-09-30 05:03:20 所属栏目:Asp教程 来源:互联网
导读: false
如果设置为 true 且指定了 HttpMessageHandler 或 HttpClient,则在处置 GrpcChannel 时,将分别处置 HttpHandler 或 HttpClient。
LoggerFactory
null
客户端用于记录有关 gRPC 调用

false

如果设置为 true 且指定了 HttpMessageHandler 或 HttpClient,则在处置 GrpcChannel 时,将分别处置 HttpHandler 或 HttpClient。

LoggerFactory

null

客户端用于记录有关 gRPC 调用的信息的 LoggerFactory。 可以通过依赖项注入来解析或使用 LoggerFactory.Create 来创建 LoggerFactory 实例。 有关配置日志记录的示例,请参阅 。

MaxSendMessageSize

null

可以从客户端发送的最大消息大小(以字节为单位)。 尝试发送超过配置的最大消息大小的消息会导致异常。 设置为 null时,消息的大小不受限制。

MaxReceiveMessageSize

4 MB

可以由客户端接收的最大消息大小(以字节为单位)。 如果客户端收到的消息超过此限制,则会引发异常。 增大此值可使客户端接收更大的消息,但可能会对内存消耗产生负面影响。 设置为 null时,消息的大小不受限制。

Credentials

null

一个 ChannelCredentials 实例。 凭据用于将身份验证元数据添加到 gRPC 调用。

CompressionProviders

gzip

用于压缩和解压缩消息的压缩提供程序的集合。 可以创建自定义压缩提供程序并将其添加到集合中。 默认已配置提供程序支持 gzip 压缩。

ThrowOperationCanceledOnCancellation

false

如果设置为 true,则在取消调用或超过其截止时间时,客户端将引发 OperationCanceledException。

UnsafeUseInsecureChannelCallCredentials

false

如果设置为 true,则 CallCredentials 应用于不安全通道发出的 gRPC 调用。 通过不安全的连接发送身份验证标头具有安全隐患,不应在生产环境中执行。

MaxRetryAttempts

5

最大重试次数。 该值限制服务配置中指定的任何重试和 hedging 尝试值。单独设置该值不会启用重试。 重试在服务配置中启用,可以使用 ServiceConfig 来启用。 null 值会删除最大重试次数限制。 有关重试的详细信息,请参阅通过 gRPC 重试进行暂时性故障处理。

MaxRetryBufferSize

16 MB

在重试或 hedging 调用时,可用于存储发送的消息的最大缓冲区大小(以字节为单位)。 如果超出了缓冲区限制asp压缩,则不会再进行重试,并且仅保留一个 hedging 调用,其他 hedging 调用将会取消。 此限制将应用于通过通道进行的所有调用。 值 null 移除最大重试缓冲区大小限制。

MaxRetryBufferPerCallSize

1 MB

在重试或 hedging 调用时,可用于存储发送的消息的最大缓冲区大小(以字节为单位)。 如果超出了缓冲区限制,则不会再进行重试,并且仅保留一个 hedging 调用,其他 hedging 调用将会取消。 此限制将应用于一个调用。 值 null 移除每个调用的最大重试缓冲区大小限制。

ServiceConfig

null

gRPC 通道的服务配置。 服务配置可以用于配置 gRPC 重试。

下面的代码:

static async Task Main(string[] args)
{
    var channel = GrpcChannel.ForAddress("https://localhost:5001", new GrpcChannelOptions
    {
        MaxReceiveMessageSize = 5 * 1024 * 1024, // 5 MB
        MaxSendMessageSize = 2 * 1024 * 1024 // 2 MB
    });
    var client = new Greeter.GreeterClient(channel);
    var reply = await client.SayHelloAsync(
                      new HelloRequest { Name = "GreeterClient" });
    Console.WriteLine("Greeting: " + reply.Message);
}

请注意,未使用 GrpcChannelOptions 配置客户端侦听器。 相反,客户端侦听器是使用带有通道的 Intercept 扩展方法配置的。 此扩展方法位于 Grpc.Core.Interceptors 命名空间中。

static async Task Main(string[] args)
{
    var channel = GrpcChannel.ForAddress("https://localhost:5001");
    var callInvoker = channel.Intercept(new LoggingInterceptor());
    var client = new Greeter.GreeterClient(callInvoker);
    var reply = await client.SayHelloAsync(
                      new HelloRequest { Name = "GreeterClient" });
    Console.WriteLine("Greeting: " + reply.Message);
}

System.Net 处理程序选项

Grpc.Net.Client 使用派生自 HttpMessageHandler 的 HTTP 传输发出 HTTP 请求。 每个处理程序都提供其他选项用于发出 HTTP 请求。

处理程序在通道上配置,可通过设置 GrpcChannelOptions.HttpHandler 重写。 .NET Core 3 和 .NET 5 或更高版本默认使用 SocketsHttpHandler。 .NET Framework 上的 gRPC 客户端应用。

有关不同处理程序及其配置选项的详细信息,请参阅:

警告

若要将 ASP.NET Core gRPC 用于 Azure 应用服务或 IIS,则该 gRPC 具有额外的要求。 有关可以在何处使用 gRPC 的详细信息,请参阅 .NET 支持的平台上的 gRPC。

其他资源

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!