我正在使用haproxy和循环法,但现在我遇到了一个问题:我的一个后端服务器已加载。
答案 0 :(得分:1)
如果服务器比其他服务器负载更多,那么机械地它将看到更多并发连接以获得相同的请求速率。这就是切换到minimalconn算法变得有用的地方,这将确保所有服务器始终以相同数量的并发连接运行。例如,如果您的某些请求比其他请求长得多(例如:数据库中的复杂请求),那么这很有用。
对于第二点,我会很简短,因为一切都在文档中,但是最小化关注于并发连接的数量,而循环则关注累积的连接数。使用循环法,每个服务器都会收到请求 反过来,因此在同一服务器上的请求是最佳间隔的。对于静态服务器或具有粘性的应用程序,这通常更好,用户在连接到服务器后会发出大量请求,因为这可确保您在同一服务器上拥有相同数量的用户。全局maxconn是单个haproxy进程将支持的并发连接总量。达到限制时,它将停止接受传入连接。默认的maxconn仅适用于前端,当达到前端的maxconn时,此前端仅停止接受新连接。服务器maxconn确保haproxy永远不会向服务器发送太多连接。达到限制时,尽可能选择其他服务器(无cookie等),或者请求排队,直到服务器释放连接以选择它。如果您的服务器过载,您应检查连接数并将服务器maxconn应用于略低于此值的位置以保护它们。