已建立的连接已由主机中的软件中止

问题描述 投票:0回答:2

我正在使用MassTransit对抗RabbitMQ。在大多数情况下它运作良好,但一段时间后,消费者开始抛出S-FAULT警告:

MassTransit.Messages Warning: 0 : S-FAULT rabbitmq://<redacted>/iemr_ExistingRowCheck 62560000-56b4-0050-b40b-08d69864ff75 ieMR.BulkCopy.MissingRowImport.Queues.ExistingRowCheck 
An established connection was aborted by the software in your host machine, System.IO.IOException: Unable to write data to the transport connection: An established connection was aborted by the
software in your host machine. ---> System.Net.Sockets.SocketException: An established connection was aborted by the software in your host machine
   at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   --- End of inner exception stack trace ---
   at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   at RabbitMQ.Client.Impl.SocketFrameHandler.Write(Byte[] buffer)
   at RabbitMQ.Client.Impl.Command.TransmitAsFrameSet(Int32 channelNumber, Connection connection)
   at RabbitMQ.Client.Impl.SessionBase.Transmit(Command cmd)
   at RabbitMQ.Client.Impl.ModelBase.BasicPublish(String exchange, String routingKey, Boolean mandatory, IBasicProperties basicProperties, Byte[] body)
   at MassTransit.RabbitMqTransport.Contexts.RabbitMqModelContext.PublishAsync(String exchange, String routingKey, Boolean mandatory, IBasicProperties basicProperties, Byte[] body)
   at MassTransit.RabbitMqTransport.Contexts.RabbitMqModelContext.<>c__DisplayClass12_0.<MassTransit.RabbitMqTransport.ModelContext.BasicPublishAsync>b__1()
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at MassTransit.RabbitMqTransport.Contexts.RabbitMqModelContext.<MassTransit-RabbitMqTransport-ModelContext-BasicPublishAsync>d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at MassTransit.Internals.Extensions.TaskExtensions.<WithCancellation>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at MassTransit.RabbitMqTransport.Transport.RabbitMqSendTransport.<>c__DisplayClass7_0`1.<<MassTransit-Transports-ISendTransport-Send>b__1>d.MoveNext()

我可以忽略这些警告吗?

我正在使用MassTransit 5.3.1.0与Erlang 20.3上的RabbitMq 3.7.5匹配MassTransit.RabbitMqTransport。

.net rabbitmq masstransit
2个回答
1
投票

感谢您查看RabbitMQ日志的建议。

日志中包含如下行:

2019-02-23 11:01:35.254 [info] <0.280.0> vm_memory_high_watermark set. Memory used:1724121088 allowed:1717798502
2019-02-23 11:01:35.254 [warning] <0.278.0> memory resource limit alarm set on node 'rabbit@THHS-D-RABTMQ01'.

**********************************************************
*** Publishers will be blocked until this alarm clears ***
**********************************************************
2019-02-23 11:02:22.596 [info] <0.280.0> vm_memory_high_watermark clear. Memory used:1714683904 allowed:1717798502

rabbitmq.conf中增加内存高水位似乎已经成功了:

vm_memory_high_watermark.relative = 0.8

我将要求服务器团队在周一增加这台机器的内存。


0
投票

我经常将服务器上的网络错误扔进bitbucket。

这意味着要么状态防火墙取出(死)连接,要么另一端的IP地址以主机操作系统可以快速检测到的方式无法访问。

© www.soinside.com 2019 - 2024. All rights reserved.