当前位置: 首页 > news >正文

建网站公司销售北京seo设计公司

建网站公司销售,北京seo设计公司,网站制作 佛山,建建设人才市场官方网站测试环境没有报错,生产环境每天都有几条这样的报错,网上查了好多资料,翻译成中文大概意思是 Broken pipe(“管道破裂”) 错误原因说明: 1)broken pipe的字面意思是“管道破裂”。broken pip的…

测试环境没有报错,生产环境每天都有几条这样的报错,网上查了好多资料,翻译成中文大概意思是 Broken pipe(“管道破裂”

错误原因说明:

1)broken pipe的字面意思是“管道破裂”。broken pip的原因是该管道的读端被关闭。

2)broken pipe经常发生socket关闭之后(或者其他的描述符关闭之后)的write操作中。

3)发生broken pipe错误时,进程收到SIGPIPE信号,默认动作是进程终止。

4)broken pipe最直接的意思是:写入端出现的时候,另一端却休息或退出了,因此造成没有及时取走管道中的数据,从而系统异常退出

网上分析原因很多如下
1、报文过大:处理的报文过大,导致客户的端无法解析报文。 

2、文件过大:处理时间过长,由于执行时间较长或频率较高,程序或服务器出发超时直接结束进程。

3、重复提交:处理时间过长导致当客户端重复发送请求,而上次请求尚未完成,下次请求会close上次请求。

4、数据库配置问题:mysql配置文件忘记配置wait_timeout参数,导致数据库连接顺序关闭(RS、PS、CONN)。

5、另外就是:Java虚拟机内存太小或者使用低版本的JVM,出发垃圾回收。

结合项目本身分析:

我的应该是在第二和第三条导致的,client端用户在杀死进程时,接口的TCP请求尚未完成(未完成的原因是处理时间长)。
导致server端write数据时,收到SIGPIPE信号,抛出Broken pipe异常。

说白了就是我请求写入的数据量比较大,处理时间比较长,在测试环境单机测试的情况下,不会有问题。但生产环境数据请求量上来以后,当前一次请求还未处理完,后一个请求就把前一个请求给close掉了,导致write数据时,收到sigpipe(信号污染),抛出出了Broken pipe。

java.net.SocketException: Broken pipe
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
    at org.apache.http.impl.io.SessionOutputBufferImpl.streamWrite(SessionOutputBufferImpl.java:124)
    at org.apache.http.impl.io.SessionOutputBufferImpl.write(SessionOutputBufferImpl.java:160)
    at org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:113)
    at org.apache.http.entity.ByteArrayEntity.writeTo(ByteArrayEntity.java:112)
    at org.apache.http.impl.DefaultBHttpClientConnection.sendRequestEntity(DefaultBHttpClientConnection.java:156)
    at org.apache.http.impl.conn.CPoolProxy.sendRequestEntity(CPoolProxy.java:152)
    at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:238)
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
 

解决办法:

我的场景是把身份证照片转成base64数据传输的,压缩前大概两百五十多k。

期初不怎么怀疑因为传输内容过大造成的,但试着对base64数据做了下压缩,在观察线上日志,发现问题确实没有了。

因为上传图片识别,牵扯到客户端和服务端的交互,虽然问题解决了,但我还是怀疑服务端连接设置也存在问题,一次数据传输200多k就造成报错,未免有点儿太过经不起考验,后续有新的发现,还会更新。

参考资料:

https://blog.csdn.net/shenshao_8/article/details/81049456

https://blog.csdn.net/ooppookid/article/details/54891771

https://www.cnblogs.com/cthon/p/9139553.html

http://www.mmbaike.com/news/72524.html

相关文章:

  • 做展厅的网站网站关键词怎么添加
  • 买车看车app排行榜山西seo排名厂家
  • 公司想做个网站成都公司网站seo
  • 手机app下载平台哪个好宣城网站seo
  • 石柱县城乡建设委员会网站网络营销的模式有哪些
  • 沈阳市做网站电话怎么建网站教程
  • 开发网站需要多少钱软件外包公司排行榜
  • 个人网站做cpa网络优化是做啥的
  • 文化传播公司网站模板软件开发公司排名
  • 网站做竞价对seo有影响吗太原百度快速排名提升
  • 浙江省网站备案注销申请表搜索营销
  • wordpress文章复制粘贴图片保存网奇seo培训官网
  • 网站开发企业排名开网站怎么开
  • 做企业网站用哪个软件专业的制作网站开发公司
  • 做网站建设的名声很差吗产品网络营销
  • 院校门户网站建设方案百度allin 人工智能
  • 网站上的站点地图链接是这么做的网站关键词优化排名软件
  • 生态城门户网站 建设动态企业网络推广软件
  • 做内销的网站推荐一个企业seo网站的优化流程
  • 厦门网站建设教学亚马逊排名seo
  • wordpress文章页随机文章seo引擎优化工具
  • 系统开发是什么意思seo优化有哪些
  • 品牌设计公司排名广州设计长沙百度推广优化排名
  • 怎样做_网站做seo深圳网络推广引流
  • 网站手机版模板免费下载最新疫情消息
  • 西安网站空间百度seo排名优化公司哪家强
  • 联客易外贸网站建设推广好消息tvapp电视版
  • 企业做网站etp和源程序三亚百度推广地址
  • 做品牌网站公司上海seo优化公司
  • 网络广告的优点和缺点seo技术自学