如果要考虑 Nginx 负载均衡的高可用功能,建议首选 Keepalived 软件,理由是安装、配置简单、使用方便,安全稳定,和 Keepalived 服务类似的高可用软件还有 Heartbeat(使用比较复杂,不建议初学者使用),nginx 目前支持http、tcp、udp还支持邮件代理;
如果是大型企业互联网公司,负载均衡产品可以使用 LVS+Keepalived 在前端做四层转发(一般是主备或主主,如果需要扩展可以使用 DNS 或前端使用 OSPF(交换机路由协议)),后端使用 Ngix 或者 Haproxy 做 7 层转发(可以扩展到百台),再后面是应用服务器,如果是数据库和存储的负载均衡和高可用 ,建议选择 LVS+Heartbeat, LVS 支持 tcp 转发且 dr 模式效率很高,Heartbeat 可以配合 drbd,不但可以进行 VIP 的切换,还可以支持块设备级别的数据同步(drbd),以及资源服务的管理。
1、高性能
我们大家都知道淘宝的双11,双11的零点,用户并发量相当恐怖,以全世界现有的技术,即使是大型机,其计算能力也是有限的,很难单独处理完双11零点的用户并发,还可能因为,并发量太大,造成计算机宕机,因此对于这类复杂的计算业务,便需要使用计算机集群技术。集中成千上万台计算机进行处理。
2、价格有效性
达到同样的性能需求的条件下,计算机集群架构比采用同等运算能力的大型计算机具有更高的性价比
举例:早期的淘宝、支付宝数据库等核心系统就是使用上百万元的小型机服务器,后面因为维护成本太高,扩展设备费用成几何级数翻倍,就采用了PC服务器集群替换,把数据库从小机和oracle结合迁移到了MySQL开源数据库与PC服务器结合上来。成本下降了,扩展和维护也容易许多。
3、可伸缩性
当服务负载、压力增长时,针对集群系统进行较简单的扩展即可满足需求,且不会降低服务质量。
4、高可用性
单一的计算机系统总会面临设备损毁的问题,而在集群系统中,尽管部分硬件和软件也还是会发生故障,但整个系统的服务还是可以实现7*24可用的。
5、透明性
多个独立计算机组成的松耦合集群系统构成一个虚拟的服务器,客户端访问集群系统时,就像访问一台高性能、高可用的服务器一样,集群中一部分服务器的上线和下线不会中断整个系统服务,这对用户也是透明的。
6、可管理性
整个系统可能再物理上很大,但其实管理很容易
7、可编程性
容易开发及修改各类应用程序