Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该在web节点上运行haproxy for db和redis sentinel吗?_Redis_Haproxy_High Availability_Failover_Sentinel - Fatal编程技术网

我应该在web节点上运行haproxy for db和redis sentinel吗?

我应该在web节点上运行haproxy for db和redis sentinel吗?,redis,haproxy,high-availability,failover,sentinel,Redis,Haproxy,High Availability,Failover,Sentinel,我正在使用vagrant建立一个服务器集群,并使用Redis sentinel和HAProxy进行Postgresql数据库连接(使用pgpool)。我很好奇将haproxy和redis sentinel放在我的每个web服务器节点上并让它们直接连接到这些节点是否有意义。其思想是,它可以创建到DB和redis的分布式连接,并将单点故障减少到它们连接到的单个haproxy,然后拆分到不同的DB节点。我还可以将数据库连接(通过haproxy)和redis(通过sentinel)封装到本地主机。这有意

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

只有当你试图节省资源/成本时,这才有意义

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

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

通过将它们混合在一起,通常会导致应用程序相互阻碍,并在负载增加时从彼此那里窃取CPU。您还面临着将应用程序/脚本/流设计为位置感知(即假设外部资源始终是本地的)的风险,这也不是一个真正的好做法