当前位置: 首页 > 知识库问答 >
问题:

Spring Cloud: Zuuljava.net.SocketException:破裂的管道

吴松
2023-03-14

我正在对一个由zuul代理服务支持的简单Spring云应用程序进行一些压力测试。由于Zuul和服务之间的旧连接,我们偶尔会出现管道异常。我使用不同的配置选项配置Zuul,但没有成功:

hystrix:
  command:
    default:
      execution:
        isolation:
          strategy: THREAD
          thread:
            timeoutInMilliseconds: 61000


ribbon:
  ReadTimeout: 60000
  ConnectTimeout: 6000

zuul:
  host:
    socket-timeout-millis: 60000
    connect-timeout-millis: 60000

例外情况如下:

通用域名格式。netflix。祖尔。例外ZuulException:组织转发错误。springframework。云netflix。祖尔。过滤器。路线RibbonRoutingFilter。转发(RibbonRoutingFilter.java:151)~[router.jar!/:0.0.1]到org。springframework。云netflix。祖尔。过滤器。路线RibbonRoutingFilter。在com上运行(RibbonRoutingFilter.java:114)~[router.jar!/:0.0.1]。netflix。祖尔。祖尔菲尔特。runFilter(ZuulFilter.java:112)~[zuul-core-1.0.28.jar!/:na]

com.netflix.hystrix.exception.在com.netflix.hystrix.AbstractCommand$20.call(AbstractCommand.java:816)~[hystrix-core-1.4.0-RC6.jar!/: na]在com.netflix.hystrix.AbstractCommand$20.call(AbstractCommand.java:798)~[hystrix-core-1.4.0-RC6.jar!/: na]在rx.internal.operators.操作员OnErrorResumeNextViaFunction$1.onError(操作员OnErrorResumeNextViaFunction.java:77)~[rxjava-1.0.4.jar!/: 1.0.4]在rx.internal.operators.操作员DoOn每个$1.on错误(操作员ach.java:70)~[rxjava-1.0.4.jar!/: 1.0.4]

原因:java。网SocketException:java的管道破裂。网SocketOutputStream。java上的socketWrite0(本机方法)~[na:1.8.045]。网SocketOutputStream。socketWrite(SocketOutputStream.java:109)~[na:1.8.0_45]在java。网SocketOutputStream。在org上编写(SocketOutputStream.java:153)~(na:1.8.0_45)。阿帕奇。http。impl。io。AbstractSessionOutputBuffer。flushBuffer(AbstractSessionOutputBuffer.java:159)~[httpcore-4.3.3.jar!/:4.3.3]。。。在接收端。内部的操作员。操作员映射1美元。onNext(OperatorMap.java:55)~[rxjava-1.0.4.jar!/:1.0.4]位于com。netflix。负载平衡器。反应性。LoadBalancerCommand$1。在com上调用(LoadBalancerCommand.java:185)~[bribbon-loadbalancer-2.0-RC13.jar!/:na]。netflix。负载平衡器。反应性。LoadBalancerCommand$1。调用(LoadBalancerCommand.java:180

共有1个答案

姬昀
2023-03-14

我遇到了同样的问题:我通过向应用程序添加zuul执行超时来解决它。zuul服务器的yml:

# Increase the Hystrix timeout to 60s (globally)
hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 60000

请参考这个关于网飞问题的帖子:https://github.com/spring-cloud/spring-cloud-netflix/issues/321

 类似资料:
  • 我有一个非常奇怪的问题,我希望你的眼睛能帮助解决它。 我定义了一个函数,它通过BASH连接到Oracle SQL数据库。连接后,我使用一个herdeoc传入一个简单的select语句,该语句查找最大订阅id并递增它,具体取决于函数被调用的次数。代码如下: 在命令行调用函数时,上述代码非常有效: 但是,当函数通过管道传输到AWK语句时,函数不再抖动,这毫无意义!请参阅下面的输出: 我不明白。哈哈,我

  • 我们将我们的集群迁移到Cassandra 1.2(从1.1.7),并尝试在迁移后运行修复(我们按照建议定期运行它们)。 由于SSTable版本不同,修复失败,因此我们使用和并重试。 但是,修复失败了,但有这个例外: 我们还注意到,在死亡之前,< code>nodetool netstats显示了奇怪的统计数据(表传输为756845%...). 编辑 这似乎是压缩SSTables传输的问题,我将尝试

  • 我正在实现与Android应用程序通信的服务器端应用程序。Android应用程序在最初与C服务器通信之前就已经实现了。现在我想用java代码替换C服务器。Android应用程序与服务器进行通信,通过读卡器中的卡对此人进行身份验证。 身份验证协议包含应用程序和服务器之间要成功完成的几个通信步骤。 应用程序和服务器之间的消息格式如下: 首先,应用程序发送一个类型1的请求来建立与读卡器中sim卡的连接。

  • 我正在处理一个巨大的xml文档(包含大约一百万个条目),然后使用rabbitmq将一个格式化版本导入数据库。每次发布大约200000个条目后,我都会收到一个断管错误,rabbitmq无法从中恢复。 通知错误:f写():发送2651字节失败,errno=11资源暂时不可用在[/var/www/ribbon/app/控制台/命令/lib/php_amqplib/amqp.inc,第439行] 注意错误

  • 我使用ApacheCommons http客户端调用url,使用post方法发布参数,它很少抛出以下错误。 有人能建议是什么导致了这个异常以及如何调试它吗?

  • 问题内容: 目前,我正在使用内置于python的应用程序。当我在个人计算机上运行它时,它不会出现问题。 但是,当我将其移至生产服务器时。它不断向我显示以下错误: 我进行了一些研究,得出的原因是,当服务器仍在忙于发送数据时,最终用户浏览器会停止连接。 我想知道为什么会发生这种情况,以及根本原因是什么导致它无法在生产服务器上正常运行,而我的计算机却可以正常运行。任何建议表示赞赏 问题答案: 您的服务器