使用了与请求协议不兼容的地址_生产环境Server-sent Events不能使用的问题

99921d0561a5fe312bb5b91d761d46d3.png

背景

我负责的鹰眼监控服务上线,部署完成,页面不能打开,通过接口观察发现,sse的连接不能拿到持续的推送响应数据,偶发能拿到部分数据

分析

1.能够正常请求,拿到http的响应数据(部分/不全),证明dns解析及nginx转发正常

2.手动调用服务服务(线上)接口,正常推送响应数据,证明服务本身没问题

3.测试及开发环境调用接口,正常推送响应数据,证明nginx的配置没问题(使用完全相同的配置)

4.查看服务器日志,全部是[Caused by: java.io.IOException: Connection reset by peer]错误,说明是远端关闭了连接

5.综合以上考虑,还是nginx转发或者前端的ha主动断掉了连接,但与运维确认后发现,测试环境ha和nginx配置也一模一样

陷入僵局,接下来,如何分析呢。死马当活马医,手动curl一下,分析请求,拿到如下一些数据

833917cfb403d4dcdc675a47caed8781.png
97837d87c7c5434bf3ede30cef295f4d.png

在对比一下测试环境和开发环境,好像没有HTTP2(h2),与运维确认,测试环境没有配置h2的插件,线上配置过。再多个可用和不可用的人员同时请求几个服务发现,确实请求的是h2的均不能使用,能够使用的均走的是HTTP/1.1 协议

跟踪

网上查询相关资料,完全没有任何可用信息,大多数只提到h2使用多路复用协议,可以使用Web-push功能,但如何在h2协议中配置sse,均没有找到资料。

疑问

1.为何部分人员请求相同地址拿到是不同的协议(均使用默认curl或者浏览器直接打开)

2.同时支持h2和http/1.1协议时,如何兼容配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值