我应该在 Web 节点上运行 haproxy for db 和 redis 哨兵吗?



我正在使用vagrant建立一个服务器集群,并使用Redis sentinel和HAProxy进行Postgresql db连接(使用pgpool(。我很好奇将haproxy和redis sentinel放在我的每个Web服务器节点上并让它们直接连接到这些节点是否有意义。这个想法是,它可以创建与数据库和 redis 的分布式连接,并将单点故障减少为拥有它们连接到的单个 haproxy 然后拆分到不同的数据库节点。我还可以将数据库连接(通过 haproxy(和 redis(通过 sentinel(封装到本地主机。这有意义吗?

只有当您

试图节省资源/成本时,它才有意义。

请注意,redis 哨兵必须有一个有限的哨兵实例列表,这不适合每台机器放置一个实例的场景,因为您的机器计数可能会缩放/变化。

否则,将不同的基础设施组件(特别是那些具有集群/HA性质的组件,如redis(放在不同的机器上总是最有意义的。

通过将它们混合在一起,您通常最终会让应用程序相互妨碍,并在负载增加后相互窃取 CPU。您还冒着将应用程序/脚本/流设计为位置感知的风险(即假设外部资源始终是本地的(,这也不是一个真正好的做法。

最新更新