根据此链接http://www.chaseventers.org/2010/09/libsoup-ignores-dns-tns-ttls.html
libsoup的代码/*要求锁定host_lock */
static SoupSessionHost *
get_host_for_uri (SoupSession *session, SoupURI *uri)
{
SoupSessionPrivate *priv = SOUP_SESSION_GET_PRIVATE (session);
SoupSessionHost *host;
host = g_hash_table_lookup (priv->hosts, uri);
if (host)
return host;
host = soup_session_host_new (session, uri);
g_hash_table_insert (priv->hosts, host->uri, host);
return host;
}
不幸的是,除非汤的对象本身消失,否则该哈希表中的条目永远不会被删除或过期。
这很糟糕的原因:
DNS TTL值被忽略。取而代之的是,DNS查询的结果将永远缓存。显然,这意味着如果记录发生了更改,则需要重新启动LibSoup客户以了解它。
dns负载平衡被libsoup打破了,无论是否包含多个IPS,它都会反复连接到同一IP地址。
因此,Libsoup在负载平衡AWS云环境中表现出令人讨厌的表现。请确认。
您可以迁移到网络加载平衡器,该平衡器提供了一个静态IP地址,而不是解决不同IP的DNS名称,因此,即使库不尊重TTL,它也会赢得''t对您来说是个问题。