haproxy+keepalived(涵盖了lvs,nginx.haproxy比较)

文章转载自:

haproxy+keepalived https://cloud.tencent.com/developer/article/1026385

网络四层和七层的区别 https://juejin.im/post/59a0472f5188251240632f92

Nginx、LVS、HAProxy 是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,通常会结合Keepalive做健康检查,实现故障转移的高可用功能。

`prism-tokentokenjavascript
1)在四层(tcp)实现负载均衡的软件:
lvs——>重量级
nginx——>轻量级,带缓存功能,正则表达式较灵活
haproxy——>模拟四层转发,较灵活

2)在七层(http)实现反向代理的软件:
haproxy——>天生技能,全面支持七层代理,会话保持,标记,路径转移;
nginx——>只在http协议和mail协议上功能比较好,性能与haproxy差不多;
apache——>功能较差>

总的来说,一般是lvs做4层负载;nginx做7层负载;haproxy比较灵活,4层和7层负载均衡都能做

一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术。具体的应用需求还得具体分析:
1)如果是中小型的 Web 应用,比如日PV小于1000 万,用 Nginx 就完全可以了;
2)如果机器不少,可以用DNS轮询, LVS所耗费的机器还是比较多的;大型网站或重要的服务,且服务器比较多时, 可以考虑用LVS。

还有一种是通过硬件来进行进行,常见的硬件有比较昂贵的F5和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护、缺点就是花销太大,所以对于规模较小
的网络服务来说暂时还没有需要使用;另外一种就是类似于 Nginx/LVS/HAProxy 的基于 Linux 的开源免费的负载均衡软件,这些都是通过软件级别来实现,所以费用非常低廉。目前关于网
站架构一般比较合理流行的架构方案: Web 前端采用Nginx/HAProxy+Keepalived 作负载均衡器;后端采用 MySQL 数据库一主多从和读写分离,采用 LVS+Keepalived 的架构。 当然要根据
项目具体需求制定方案。下面说说各自的特点和适用场合。

Original: https://www.cnblogs.com/smail-bao/p/9848943.html
Author: BigBao的博客
Title: haproxy+keepalived(涵盖了lvs,nginx.haproxy比较)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/543189/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Spring(四)-声明式事务

    Spring-04 声明式事务 1、事务的定义 事务就是由 一组逻辑上紧密关联的 多个工作单元(数据库操作)而合并成一个整体,这些操作 要么都执行,要么都不执行。 2、事务的特性:…

    Java 2023年6月15日
    062
  • 部署-docker推送镜像到远程仓库

    docker推送镜像到远程仓库 如果我们想将这个镜像提供给别人使用时,我们可以将镜像推送到远程仓库,然后别人从远程仓库中下载即可, 提交更改 在镜像的运行过程中,我们对镜像进行了修…

    Java 2023年6月7日
    080
  • [学习标准库]assert.h

    打算趁留在学校的最后一段时间好好补习一下一直以来都忽略掉的C/C++标准库,大概就是以头文件为单位了。以一个最简单的头文件入手,然后逐渐展开来……第一个头文…

    Java 2023年6月5日
    059
  • Redis学习笔记之字典

    Redis 学习笔记之字典 一、字典的实现 1.1 字典内部定义 哈希表 typedef struct dictht { // 哈希表数组 dictEntry **table; /…

    Java 2023年6月5日
    066
  • 常用Linux命令 reboot halt shutdown passwd vlock exit等

    1、重新启动和关闭系统: (1)reboot命令: 选项含义如下: -d :重新启动后,系统不向/var/tmp/wtmp文件中写入记录 -f :强制系统重新启动 -w :仅做测试…

    Java 2023年6月8日
    047
  • linux 下隐藏进程的一种方法

    前言 本文所用到的工具在https://github.com/gianlucaborello/libprocesshider 可以下载 思路就是利用 LD_PRELOAD 来实现系…

    Java 2023年6月16日
    072
  • nginx server中的root和location的root的区别

    自己发现公司服务器上的nginx的配置文件里,server中有个root, location中也有root。当直接访问域名,后面什么都不加, 发现走的是location里面的roo…

    Java 2023年5月30日
    071
  • 记录一下Junit测试MongoDB,获取MongoTemplate

    只是自己记录一下,测试MongoDB帮助类时,没有配置文件的测试 public class HelperTest { MongoTemplate template; @Before…

    Java 2023年6月8日
    074
  • Python 中MATLABspline函数的替代函数

    调用 scipy模块,其中有对应的函数 UnivariateSpline。与MATLAB中 spline函数不同的是,这个函数返回值是一个插值函数,而非插值结果。 import s…

    Java 2023年6月9日
    075
  • 5-多线程

    一、创建多线程的四种方式 1.方式一:继承Thread类的方式 创建一个继承于Thread类的子类 重写Thread类的run() –> 将此线程执行的操作声明在…

    Java 2023年6月7日
    085
  • 静态代理、动态代理与Mybatis的理解

    静态代理、动态代理与Mybatis的理解 这里的 代理与设计模式中的代理模式密切相关,代理模式的主要作用是为其他对象提供一种控制对这个对象的访问方法,即在一个对象不适合或者不能直接…

    Java 2023年6月8日
    068
  • 22.线程自解锁

    代码结构比较复杂的情况下,手动加锁,解锁,可能会有所遗漏。 这种情况下,推荐使用自解锁(自解锁在构造的时候lock,在析构的时候unlock)(对象在超出作用域时会执行析构) 自解…

    Java 2023年5月29日
    063
  • spring-session 2.0 实现细节

    一、 前置知识 redis 在键实际过期之后不一定会被删除,可能会继续存留 具有过期时间的 key 有两种方式来保证过期 一是这个键在过期的时候被访问了 二是后台运行一个定时任务自…

    Java 2023年5月30日
    069
  • Spring Boot 入门系列(二十二)使用Swagger2构建 RESTful API文档

    前面介绍了如何Spring Boot 快速打造Restful API 接口,也介绍了如何优雅的实现 Api 版本控制,不清楚的可以看我之前的文章:https://www.cnblo…

    Java 2023年5月30日
    0252
  • 分页SQL语句的性能比较

    数据量暂时在10来万,排序字段是几个索引里面的一个索引的二级索引第一方案是比较传统的,第二方案用了表变量,有说数据量大的时候应该用临时表,不知道这个量要多少。感觉。。 DECLAR…

    Java 2023年6月14日
    056
  • zookeeper集群

    环境: 拥有三台服务器,假设三台服务器的Ip地址为 172.18.19.143,172.18.19.15,172.18.19.129 开放三台服务器的2287,3387端口 集群搭…

    Java 2023年6月8日
    074
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球