gpt4 book ai didi

python - 带有 Protocol Buffer 的 Riak Python 客户端的超时问题

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:24 25 4
gpt4 key购买 nike

当使用 Protocol Buffer 连接到我的 riak AWS 集群时,我从 Python Riak 客户端看到了一个奇怪但一致的行为。这个简短的 python 片段产生了错误:

import time
import riak

client = riak.RiakClient(
host='address_to_my_cluster_goes_here',
http_port=8098,
pb_port=8087,
protocol='pbc'
)

result = client.ping()

# Do something else for a while, > 60 seconds
time.sleep(61)

result = client.ping()

最后一次 ping 总是抛出异常,回溯如下:

Traceback (most recent call last):
File "main_causing_exception.py", line 16, in <module>
result = client.ping()
File "C:\temp\venv\lib\site-packages\riak\client\transport.py", line 127, in wrapper
return self._with_retries(pool, thunk)
File "C:\temp\venv\lib\site-packages\riak\client\transport.py", line 69, in _with_retries
return fn(transport)
File "C:\temp\venv\lib\site-packages\riak\client\transport.py", line 125, in thunk
return fn(self, transport, *args, **kwargs)
File "C:\temp\venv\lib\site-packages\riak\client\operations.py", line 92, in ping
return transport.ping()
File "C:\temp\venv\lib\site-packages\riak\transports\pbc\transport.py", line 95, in ping
msg_code, msg = self._request(MSG_CODE_PING_REQ)
File "C:\temp\venv\lib\site-packages\riak\transports\pbc\connection.py", line 43, in _request
return self._recv_msg(expect)
File "C:\temp\venv\lib\site-packages\riak\transports\pbc\connection.py", line 50, in _recv_msg
self._recv_pkt()
File "C:\temp\venv\lib\site-packages\riak\transports\pbc\connection.py", line 71, in _recv_pkt
% len(nmsglen))
riak.RiakError: 'Socket returned short packet length 0 - expected 4'

如果我每 30 秒左右执行一次 client.ping(),错误就不会发生,这表明我看到的是某种套接字保活问题,但这对于生产环境来说,这似乎不是一个足够强大的解决方案。

该错误仅在使用 pbc 协议(protocol)设置时发生,而在使用 http 配置的 Riak Python 客户端时我从未见过。

我在 Win7-64 平台上使用 Python 2.7.5(虽然错误也发生在我们的 Ubuntu 开发服务器上)在具有以下包和版本的虚拟环境中:

  • Protocol Buffer (2.4.1)
  • Riak (2.0.1)
  • riak-pb (1.4.1.1)

关于发生了什么以及如何解决它有什么想法吗?我是否以错误的方式使用了 Python Riak 客户端?

最佳答案

您应该使用更新版本的 Riak 库。

send 出错PBC 传输中的功能,已在此处解决:https://github.com/basho/riak-python-client/issues/381

关于python - 带有 Protocol Buffer 的 Riak Python 客户端的超时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19742667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com