【发布时间】:2019-08-23 06:24:37
【问题描述】:
我正在尝试为我的服务器架构引入更多冗余和可靠性。
目前,我有可变数量的 Web 服务器(至少两个)运行 apache 并使用 PHP 和 Memcached 进行会话,这意味着如果其中一个服务器出现故障,用户将不得不再次登录。
经过大量研究,我决定让 Redis 去存储会话,让 Redis Sentinel 管理 Redis 实例故障,并让 HAProxy 将会话传递给指定的 Redis Master。
尽管阅读了几天,但我有点不清楚所有这些东西在哪里组合在一起。假设我至少有两台前端服务器和两台 Redis 服务器,可能是这样的:
Load balanced connection
|
-------------
| |
---------- ----------
| Apache | | Apache |
|Sentinel| |Sentinel|
| HAProxy| | HAProxy|
---------- ----------
| |
|----------
? ? - Managed by HAProxy,
---------- ---------- by talking to Sentinel
| | | |
| Redis | | Redis |
| | | |
---------- ----------
然后通过添加更多 Apache/Sentinel/HAProxy 服务器来扩大规模?如果是这样,这是否适用于小型(1gb 内存)实例,或者 Sentinel/HAProxy 是否会占用大量资源?
其次,HAProxy 如何可靠地与 Sentinel 通信?关于它的工作原理,似乎有很多相互矛盾的建议。
非常感谢您提供的任何帮助!
【问题讨论】:
标签: redis haproxy redis-sentinel