【问题标题】:Getting connect timeout on 9009 port of clickhouse在 clickhouse 的 9009 端口上获取连接超时
【发布时间】:2021-01-15 10:03:24
【问题描述】:

我有 3 个节点集群,2 个 clickhouse 实例在 2 个主机上运行,​​具有复制的合并树引擎。我经常在端口 9009 上收到连接超时错误。我假设这是与服务器间通信端口相关的超时?

我确实将“connect_timeout_with_failover_ms”更新到了将近 5000,但什么也没发生。可能是什么原因。这是每隔几分钟来一次??我可以更新任何超时吗?

PS:我几乎每批写 100000 行通常每 2-3 秒。

<Error> DB_1.school: DB::StorageReplic
atedMergeTree::queueTask()::<lambda(DB::StorageReplicatedMergeTree::LogEntryPtr&
)>: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Timeout: connec
t timed out: 172.*.*.*:9009, Stack trace (when copying this message, always inc
lude the lines below):

0. Poco::TimeoutException::TimeoutException(std::__1::basic_string<char, std::__
1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string
<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0
x12409d8f in /usr/bin/clickhouse
1. ? @ 0x1231e545 in /usr/bin/clickhouse
2. Poco::Net::HTTPSession::connect(Poco::Net::SocketAddress const&) @ 0x122e8385
 in /usr/bin/clickhouse
3. Poco::Net::HTTPClientSession::reconnect() @ 0x122d5278 in /usr/bin/clickhouse
4. Poco::Net::HTTPClientSession::sendRequest(Poco::Net::HTTPRequest&) @ 0x122d65
d8 in /usr/bin/clickhouse
5. DB::detail::ReadWriteBufferFromHTTPBase<std::__1::shared_ptr<DB::UpdatablePoo
ledSession> >::call(Poco::URI, Poco::Net::HTTPResponse&) @ 0xf8611db in /usr/bin
/clickhouse
6. DB::detail::ReadWriteBufferFromHTTPBase<std::__1:   ared_pt264,1:Updatable7%o
ledSession> >::ReadWriteBufferFromHTTPBase(std::__1::shared_ptr<DB::UpdatablePoo

【问题讨论】:

  • “3 node cluster with 2 clickhouse instances” - 有点令人困惑的句子,你使用的是循环集群拓扑(一个节点托管两个副本)吗?
  • 已编辑:三台主机设置并在 2 台主机上拥有 2 个 clickhouse 实例,并使用循环配置复制 2 台。
  • 你能提供你的集群定义(xml)和复制表sql脚本吗?
  • 集群定义xml如config.xml??我在哪里可以找到这个“复制表 sql 脚本”,这是用于创建模式的 .sql 文件吗??

标签: clickhouse


【解决方案1】:

9009 由另一个超时参数http_connection_timeout控制

cat /etc/clickhouse-server/conf.d/user_substitutes.xml
<?xml version="1.0"?>
<yandex>
    <profiles>
        <default>
         <connect_timeout_with_failover_ms>1000</connect_timeout_with_failover_ms>
            <http_connection_timeout>15</http_connection_timeout>
        </default>
....

它与坏网络有关。

这没什么大不了的。基本上它只是一个烦人的消息。

副本尝试连接到另一个副本并在 1 秒后连接超时。然后replica建立了另一个连接。就是这样。

【讨论】:

  • 谢谢丹尼,我会试试这个。
  • 确实,将超时时间增加到 15、30 和 45,仍然经常出现错误。我应该忽略这些错误吗?或者还有其他一些我可以调整的设置吗??
  • 我会检查网络错误。从 ping 开始。连接到第一个副本并执行ping -s 1500 anotherreplica
  • 是的,几乎 8-10 错误,丢包率为 20%。将忽略这一点,因为这不会影响任何事情。
猜你喜欢
  • 2023-01-31
  • 1970-01-01
  • 2021-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多