python使用pika订阅rabbitmq消息链接被重置问题

您所在的位置:网站首页 rabbitmq心跳机制 python使用pika订阅rabbitmq消息链接被重置问题

python使用pika订阅rabbitmq消息链接被重置问题

2023-07-20 21:38| 来源: 网络整理| 查看: 265

最近在做一个运维监控系统的时候,使用python的pika插件订阅rabbitmq消息,程序在运行一段时间后,总是会报链接被充值的错误,具体报错如下:

Traceback (most recent call last): File "/home/hadoop/.virtualenvs/alert-manager/lib/python3.6/site-packages/pika/adapters/utils/io_services_utils.py", line 1041, in _on_socket_readable self._consume() File "/home/hadoop/.virtualenvs/alert-manager/lib/python3.6/site-packages/pika/adapters/utils/io_services_utils.py", line 791, in _consume data = self._sigint_safe_recv(self._sock, self._MAX_RECV_BYTES) File "/home/hadoop/.virtualenvs/alert-manager/lib/python3.6/site-packages/pika/adapters/utils/io_services_utils.py", line 79, in retry_sigint_wrap return func(*args, **kwargs) File "/home/hadoop/.virtualenvs/alert-manager/lib/python3.6/site-packages/pika/adapters/utils/io_services_utils.py", line 846, in _sigint_safe_recv return sock.recv(max_bytes) ConnectionResetError: [Errno 104] Connection reset by peer Traceback (most recent call last): File "/home/hadoop/.virtualenvs/alert-manager/lib/python3.6/site-packages/pika/adapters/utils/io_services_utils.py", line 1041, in _on_socket_readable self._consume() File "/home/hadoop/.virtualenvs/alert-manager/lib/python3.6/site-packages/pika/adapters/utils/io_services_utils.py", line 791, in _consume data = self._sigint_safe_recv(self._sock, self._MAX_RECV_BYTES) File "/home/hadoop/.virtualenvs/alert-manager/lib/python3.6/site-packages/pika/adapters/utils/io_services_utils.py", line 79, in retry_sigint_wrap return func(*args, **kwargs) File "/home/hadoop/.virtualenvs/alert-manager/lib/python3.6/site-packages/pika/adapters/utils/io_services_utils.py", line 846, in _sigint_safe_recv return sock.recv(max_bytes) ConnectionResetError: [Errno 104] Connection reset by peer 2020-02-06 21:07:50,955 - INFO - _AsyncTransportBase._initate_abort(): Initiating abrupt asynchronous transport shutdown: state=1; error=ConnectionResetError(104, 'Connection reset by peer'); 2020-02-06 21:07:50,955 - INFO - Deactivating transport: state=1; 2020-02-06 21:07:50,956 - ERROR - connection_lost: StreamLostError: ("Stream connection lost: ConnectionResetError(104, 'Connection reset by peer')",) 2020-02-06 21:07:50,956 - INFO - AMQP stack terminated, failed to connect, or aborted: opened=True, error-arg=StreamLostError: ("Stream connection lost: ConnectionResetError(104, 'Connection reset by peer')",); pending-error=None 2020-02-06 21:07:50,957 - INFO - Stack terminated due to StreamLostError: ("Stream connection lost: ConnectionResetError(104, 'Connection reset by peer')",) 2020-02-06 21:07:50,957 - INFO - Closing transport socket and unlinking: state=2; 2020-02-06 21:07:50,957 - ERROR - Unexpected connection close detected: StreamLostError: ("Stream connection lost: ConnectionResetError(104, 'Connection reset by peer')",) /home/hadoop/.virtualenvs/alert-manager/lib/python3.6/site-packages/pymysql/cursors.py:170: Warning: (1265, "Data truncated for column 'alert_msg' at row 1") result = self._query(query) Traceback (most recent call last): File "alert_engine/server.py", line 66, in channel.start_consuming() File "/home/hadoop/.virtualenvs/alert-manager/lib/python3.6/site-packages/pika/adapters/blocking_connection.py", line 1866, in start_consuming self._process_data_events(time_limit=None) File "/home/hadoop/.virtualenvs/alert-manager/lib/python3.6/site-packages/pika/adapters/blocking_connection.py", line 2027, in _process_data_events self.connection.process_data_events(time_limit=time_limit) File "/home/hadoop/.virtualenvs/alert-manager/lib/python3.6/site-packages/pika/adapters/blocking_connection.py", line 825, in process_data_events self._flush_output(common_terminator) File "/home/hadoop/.virtualenvs/alert-manager/lib/python3.6/site-packages/pika/adapters/blocking_connection.py", line 522, in _flush_output raise self._closed_result.value.error pika.exceptions.StreamLostError: Stream connection lost: ConnectionResetError(104, 'Connection reset by peer')

经过排查,该问题主要原因是 pika客户端与服务端超过15分钟未进行通信,虽然pika客户端与服务端在服务器上简历了连接,但是由于服务器HTTP的策略是超过15分钟后,服务器端建立的连接会被改策略清楚掉,连接就被清除了,导致服务端与客户端断开连接,因此会报链接呗重置了 经过测试,此问题根本原因如下,发生原因是由于我关闭的pika客户端与服务端的心跳机制,这样关闭了,客户端与服务端的定时通信机制,因此,在长时间无数据时,pika客户端与服务端尝试加不通信,所以导致了问题的发生,所以在pika订阅rabbitmq消息时,不应该关闭pika客户端与rabbitmq的心跳机制



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3