You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

x/net/http2:如果StreamID用尽会发生什么,以及当触发errStreamID错误时的动作是什么?

当使用 HTTP/2 时,客户端服务器之间使用数字标识符(称为 Stream ID)来标识每个请求和响应。 Stream ID 是一个 31 位整数,因此在某些情况下可能会用尽。如果 Stream ID 用尽,将会发生 HTTP/2 的一个协议错误。

在 Go 的 x/net/http2 库中,当出现 errStreamID 错误时,意味着 Stream ID 已用尽。要想避免这个错误,可以通过在配置中指定最大 Stream ID 来设置上限。例如:

tlsConfig := &tls.Config{
    NextProtos:         []string{http2.NextProtoTLS},
    MaxVersion:         tls.VersionTLS12,
    CipherSuites:       []uint16{tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256},
    PreferServerCipherSuites: true,
}

h2s := &http2.Server{
    MaxStreamsPerConnection:    100, // Set maximum number of streams per connection
}

server := &http.Server{
    Addr:      ":8080",
    Handler:   handler,
    TLSConfig: tlsConfig,
    ConnState: h2s.ConnState,
}

err := server.ListenAndServeTLS("server.crt", "server.key")
if err != nil {
    log.Fatal(err)
}

在上述示例中,通过设置 MaxStreamsPerConnection 属性来限制每个连接的最大 Stream ID 数量,可以有效地避免 Stream ID 用尽的问题。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

Go 语言微服务介绍与开发实战|社区征文

在谈论微服务时,编排和服务发现是微服务中非常重要的部分。像 Kubernetes 这样的工具可以用来编排和协调 Docker 容器。一般来说,微服务的最佳实践就是每个微服务有一个 Docker 容器。**服务发现**是对微服务实例... =&rk3s=8031ce6d&x-expires=1715185300&x-signature=IdquGWvJFi8luhIErRoXWqW9n%2BY%3D)[Go Micro](https://github.com/go-micro/go-micro) 是一个基于 RPC 的可插拔库,它提供了在 Go 中编写微服务的基本构建块。...

字节跳动 kube-apiserver 高可用方案 KubeGateway

其中认证是为了 **识别出用户的身份** 。Kubernetes 支持多种认证策略,比如 Bootstrap Token、Service Account Token、OpenID Connect Token、TLS 双向认证等。目前 kube-apiserver 的客户端使用得较多的策略是... 一般是基于请求 URL 地址的方式进行代理转发。> > 但是使用四层 LB 会引起另外的问题,具体如下:* **请求负载不均衡**:由于 kube-apiserver 和 client 是使用 HTTP2 协议连接,HTTP2 的多个请求都会复用底层...

字节跳动 kube-apiserver 高可用方案 KubeGateway

其中认证是为了**识别出用户的身份**。Kubernetes 支持多种认证策略,比如 Bootstrap Token、Service Account Token、OpenID Connect Token、TLS 双向认证等。目前 kube-apiserver 的客户端使用得较多的策略... 一般是基于请求 URL 地址的方式进行代理转发。> > > > 但是使用四层 LB 会引起另外的问题,具体如下:* **请求负载不均衡**:由于 kube-apiserver 和 client 是使用 HTTP2 协议连接,HTTP2 的多个请求都会...

Kitex v0.9.0 正式发布!

Streaming**-------------------------基于 gRPC(HTTP2) 的 Thrift Streaming 功能正式 Release,用户可以使用 Thrift IDL 定义自己的 Streaming 请求,为保持 IDL 解析的兼容性,Kitex 的 Streaming 方法的定义... HTTP2 with thrift binary)* [#1217] feat: support thrift and pb multi service* [#1268] feat(thrift): support frugal fallback for arm* [#951] feat(bizerr): support returning biz status error ...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

x/net/http2:如果StreamID用尽会发生什么,以及当触发errStreamID错误时的动作是什么?-优选内容

资源访问时报错“net::ERR_HTTP2_SERVER_REFUSED_STREAM
问题现象访问网页时部分资源无法正确加载,控制台报错net::ERR_HTTP2_SERVER_REFUSED_STREAMnet::ERR_FAILED。 原因分析资源并行请求数较多,达到 HTTP2 最大流数限制。 解决方案(推荐)根据实际需要,在 ConfigMap 中将http2-max-concurrent-streams的值调整至更大(默认:128)。具体操作参见:http2-max-concurrent-streams。 在 ConfigMap 中直接关闭 HTTP2 支持,设置use-http2为false。具体操作参见:use-http2
拉流转推
xample.mtime.cn/Video/2003/02/04/mp4/190204084208765161.mp4" bodySrcAddr = &bodySrcAddrValue body.SrcAddr = bodySrcAddr //点播视频播放地址列表,拉流来源类型为点播视频(Type 为 1)时,为必选参数,最多支持传入 30 个点播视频播放地址,每个地址最大长度为 1000 个字符。 bodySrcAddrS := []*string{} var bodySrcAddrS0 *string var bodySrcAddrS0Value string = "https://pull.example.com/live/stream-1...
拉流回源
错误码等信息可通过接口文档或打开 API Explorer 的文档说明页签查看。 前提条件调用接口前,请先完成 Go SDK 的安装及初始化操作 调用示例本节为您介绍拉流回源相关接口的功能和调用示例。 添加或更新播放触发回源... ( "os" "context" "fmt" "github.com/volcengine/volc-sdk-golang/base" "github.com/volcengine/volc-sdk-golang/service/live/v20230101")func main () { // 强烈建议不要把 AccessKey ID 和 Ac...
流管理
在调用时,请您参考注释,进行调整。 调用说明本文提供的接口调用示例均通过 AK 和 SK 初始化实例。 接口的参数说明和错误码等信息可通过接口文档或打开 API Explorer 的文档说明页签查看。 前提条件调用接口前,请... { AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) query := &live_v20230101.DescribeLiveStreamInfoByPageQuery{} //查询数据的页码,取值为正...

x/net/http2:如果StreamID用尽会发生什么,以及当触发errStreamID错误时的动作是什么?-相关内容

统计分析

{ AccessKeyID: os.Getenv("ACCESS_KEY_ID"), SecretAccessKey: os.Getenv("ACCESS_KEY_SECRET"), }) resp, err := service.DescribeLiveISPData(context.Background()) if err != nil { fmt.Printf("error %v", err) } else { fmt.Printf("success %+v", resp) }}查询单路推流监控数据您可以调用 DescribeLivePushStreamMetrics 接口查询单路推流监控数据。详细的参数说明可参见 DescribeLivePushStre...

更新拉流转推任务

为空时必传;反之,则该参数不生效 Stream String 否 stream-123 推流的流名称,推流地址(DstAddr)为空时必传;反之,则该参数不生效 SrcAddr String 否 http://example.mtime.cn/Video/2003/02/04/mp4/190204084208765... 错误码下表仅列出本接口特有的错误码。更多信息请参见公共错误码获取详细信息。 状态码 错误错误信息 说明 200 CommonErr - 未分类错误。建议重试,如果仍返回该错误码,请联系技术支持。 400 InvalidParam - 输入...

直播时移

在调用时,请您参考注释,进行调整。 调用说明本文提供的接口调用示例均通过 AK 和 SK 初始化实例。 接口的参数说明和错误码等信息可通过接口文档或打开 API Explorer 的文档说明页签查看。 前提条件调用接口前,请... 取值与直播流地址中 StreamName 字段取值相同,默认为空表示当前应用下的所有流都进行时移。支持由大小写字母(A - Z、a - z)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 100 个字符。 // note: // 流名称不...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

接入指引

如果您使用火山引擎的 CDN,请先完成以下操作。 已完成域名添加,并配置 CNAME。 已生成拉流地址。 如果您需要使用 HTTPS 类型拉流地址,请先添加证书,并开启 HTTPS 配置。 已完成 Web 类型应用创建并获取 AppID。 引... streamname.flv', logger:{ appId: '2****4' }}).then(function(veplayer){ console.log('创建播放器成功,播放器实例为', veplayer)}).catch(function(err){ console.log('创建播放器失败,失败报错为', err...

快速入门(Node.js SDK)

TosClientError, TosServerError } from '@volcengine/tos-sdk';// 创建客户端const client = new TosClient({ accessKeyId: process.env['TOS_ACCESS_KEY'], accessKeySecret: process.env['TOS_SECRET_KEY']... error); }}async function main() { try { const bucketName = 'node-sdk-test-bucket'; // 目标桶 const objectName = 'putObject-test'; // 目标对象 // 返回 data.content 为 stream const { ...

安全管理

在调用时,请您参考注释,进行调整。 调用说明本文提供的接口调用示例均通过 AK 和 SK 初始化实例。 接口的参数说明和错误码等信息可通过接口文档或打开 API Explorer 的文档说明页签查看。 前提条件调用接口前,请... 当加密算法使用 `md5_custom` 时:默认无加密字段,但推荐至少包含 `key` 和 `volcTime`。同时您还可以自定义 `Domain`、`AppName`、`StreamName` 等字段。 例如,选择 key、volcTime 和 Domain 作为加密字段,则取值为...

数据消费接口

(http-stream) 是否需要鉴权 是 请求参数Hearder请求参数 字段 类型 是否必填 说明 X-Insight-Biz-Name string 是 业务名称 -> 即火山账号ID X-Insight-Access-Token string 是 API访问凭证access_token Query请求... ( "fmt" "net/http" "io/ioutil")func main() { url := "https://insight.volcengineapi.com/oauth/access_token" method := "GET" client := &http.Client { } req, err := http.NewRequest(meth...

接口说明-WebSocket

避免造成转义符等导致json格式错误 输入 音频格式支持 暂只支持s16le 音频编码建议 建议采样率16kHz,单通道 输出 结果格式 支持用户通过请求参数配置,格式暂只支持s16le,建议采样率24kHz,单通道 公共参数参考详细说... GolangGo // Code sample:// use websocket client to invoke SAMI Streaming Servicepackage mainimport ( "bytes" "encoding/binary" "encoding/json" "errors" "flag" "fmt" "io/ioutil" "log" "math" "net/ht...

查询直播流或域名的回源带宽监控数据

App 和 Stream 来指定回源流。 ISPList Array of String 否 ["telecom"] 提供网络接入服务的运营商标识符,缺省情况下表示所有运营商,支持的运营商如下所示。 unicom:联通; railcom:铁通; telecom:电信; mobile:移动; cernet:教育网; tianwei:天威; alibaba:阿里巴巴; tencent:腾讯; drpeng:鹏博士; btvn:广电; huashu:华数; other:其他。您也可以通过 DescribeLiveISPData 接口获取运营商对应的标识符。 UserRegionList A...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询