2017-04-15 25 views
1

我正在使用vagrant设置服务器集群,并使用Redis sentinel和HAProxy for Postgresql db连接(使用pgpool)。我很好奇将haproxy和redis定位在每个Web服务器节点上并让它们直接连接到这些节点。我们的想法是,它可以创建一个分布式连接到数据库和redis,并减少单点失败,让他们连接到一个haproxy,然后分裂到不同的数据库节点。我还可以将数据库连接(通过haproxy)和redis(通过sentinel)封装到本地主机。这有意义吗?我应该在Web节点上运行haproxy for db和redis sentinel吗?

回答

1

它只有在你想节省资源/成本时才有意义。

请注意,redis sentinel必须有一个哨点实例的有限列表,这不适合每台机器放置一个的情况,因为您的机器计数可能会缩放/更改。

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

通过将它们全部混合在一起,一旦负载增加,通常会导致应用程序彼此阻碍并从对方窃取CPU。你也可能冒险设计你的应用程序/脚本/流程,使其具有位置感知能力(即假设外部资源总是本地的),这也不是一个好的做法。

相关问题