问题描述
嗨,我有3个节点群集,其中2个Clickhouse实例在2个主机上运行,带有复制的合并树引擎。我经常在端口9009上收到连接超时错误。我假设这是服务器间通信端口相关的超时??
我确实将'connect_timeout_with_failover_ms'更新为将近5000,什么也没发生。可能是什么原因。每隔几分钟就要来一次??任何超时我都可以更新吗?
PS:通常每2-3秒,我几乎将每批写入100000行。
<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>,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
解决方法
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>
....
这与网络故障有关。
这没什么大不了的。基本上,这只是一条令人讨厌的消息。
Replica尝试连接到另一个副本,并且连接在1秒内超时。然后副本建立了另一个连接。就是这样。