这是一个可能对您有用的社区
一对一沟通/面试手册/简历优化/求职问题,欢迎加入“知识星球”。 以下是提供的部分信息:
这是一个开源项目,可能对您有用
国内Star是一个10万+的开源项目。 前端包括管理后端+微信小程序,后端支持单体和微服务架构。
功能涵盖RBAC权限、SaaS多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号、CRM等功能:
【国内首批】支持JDK 21+ 3.2.0、JDK 8 + Boot 2.7.18双版本
今天总结一下LVS和Nginx在负载均衡方面的区别。 几篇博文一开始就说LVS是单向的,Nginx是双向的。 我个人认为这是不准确的。 LVS 的三种模式中,虽然 DR 模式和 TUN NAT 模式下,只有请求报文通过,但在 NAT 模式下,真实回复报文也会进行地址重写:
首先要明确的是LVS是一个四层负载均衡器。 虽然是四层,但是没有TCP握手和分手的情况。 它只是偷看IP等信息,而Nginx是七层负载均衡器,所以效率必然比四层LVS低很多,但其可操作性却比LVS高。 后面所有的讨论都是基于这个差异。
为什么四卷比七卷更有效率?
第四层是TCP层,采用IP+端口四重方式。 只需修改IP地址并转发到后端服务器即可。 TCP三路握手直连后端。 只不过你在后端机器上看到的是代理机器的IP。 LVS 中没有握手。
第7层代理必须先与代理握手3次,才能获取第7层(HTT层)的具体内容,然后再进行转发。 这意味着代理机器必须与后端机器建立连接。 显然性能不好,但优点在于七层,手动可操作性高,可以写更多的转发规则。
Nginx 是专门为性能优化而开发的。 性能是它最重要的要求,它非常重视效率。 据悉,Nginx最多可支持5万个并发连接。
另外,Nginx系列面试题及答案也已经整理出来。 微信搜索Java技术栈,发送:后台采访,可以在线阅读。
正向代理:局域网内的计算机用户直接访问服务器是不可行的。 服务器可能无法承载服务器,只能通过代理服务器访问。 这种代理服务称为转发代理。 特点是客户端知道你访问的是代理服务器。
反向代理:客户端无法感知代理,因为客户端不需要配置即可访问网络。 它只需要将请求发送给反向代理服务器,反向代理服务器选择目标服务器来获取数据,然后返回给客户端。
此时,反向代理服务器和目标服务器对外是一台服务器。 暴露的是代理服务器地址,隐藏真实服务器IP地址。
客户端向服务器发送多个请求,服务器处理这些请求,其中一些请求可能需要与数据库进行交互。 服务器处理完成后,将结果返回给客户端。
普通的请求和响应流程如下:
然而,随着信息量、访问量和数据量的增加,单机成为系统的瓶颈。 这种架构无法满足不断增长的需求。 这时候要么提高单机性能,要么增加服务器数量。
关于提高性能,这里不再赘述。 我会提到如何增加服务器数量,搭建集群,将请求分发到各个服务器,将原来请求集中在一台服务器上的情况改为将请求分发到多台服务器上。 这就是我们所说的负载均衡。
图形化负载均衡:
关于如何将服务器拆分成集群,这里主要讲负载均衡,也就是图中的Proxy,可以是LVS,也可以是Nginx。 假设向代理服务器发送了 15 个请求。 根据服务器数量,如果代理服务器均匀分布,则每台服务器处理5个请求。 这个过程称为负载平衡。
为了加快网站的解析速度,可以将动态页面和静态页面交给不同的服务器进行解析,这样既加快了解析速度,又减轻了单台服务器的压力。
动静分离前的状态
动静分离后
光看这两张图,可能有些人不明白这是什么意思。 当我们进行数据请求时,以淘宝购物为例。 商品详情页有很多东西是动态的,随着登录用户的不同而变化,比如用户ID、用户头像,但也有一些内容是静态的,比如商品详情页,那么我们可以将静态资源部署在服务器中关闭通过CDN(全局负载均衡和CDN内容分发)到用户,用户数据信息的安全性必须较高,可以集中在某处。 与将所有数据放在一起相比,可以分担主服务器的压力,加快商品详情页面等内容的传输速度。
基于Boot+Plus+Vue实现的后台管理系统+用户小程序,支持RBAC动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能
Nginx是应用层程序,因此用户可操作的空间要大得多。 可作为静态网页服务器,支持重写规则; 支持GZIP压缩,节省带宽; 它可以被缓存; 并且可以对http应用本身实现分流策略。 、静态分离,针对域名、目录结构等。相比之下,LVS没有这样的功能,所以nginx可以单独使用这个的情况远比LVS多; 但是nginx的这些有用的功能使得它的可调性比LVS高,所以需要经常接触,人为问题的几率很高。
nginx对网络的依赖较小。 理论上只要ping成功,网页访问正常,nginx就可以连接。 nginx还可以区分内网和外网。 如果是同时有内外网的节点,就相当于在单机上有一个备份。 线; LVS比较依赖网络环境。 目前如果服务器在同一网段,采用LVS分割方式使用,效果更有保证。 另请注意,LVS需要向托管提供商至少申请一个IP作为IP
nginx的安装和配置都比较简单,测试起来也很方便,因为基本上可以在日志中打印出错误。 LVS的安装、配置、测试需要比较长的时间,因为如上所述,LVS对网络的依赖程度较高。 很多情况下,未能配置成功是由于网络问题而不是配置问题。 如果出现问题,就必须相应地解决。 会麻烦很多
nginx也能承受高负载且稳定,但负载和稳定性较差。 LVS有几个级别:nginx处理所有流量,因此受到机器IO和配置的限制; 它本身的bug仍然是不可避免的; nginx 还没有准备好双机热备方案,所以在单机上运行还是比较有风险的,单机就不好说了。
nginx可以检测服务器内部故障(健康检查),例如处理网页的服务器返回的状态码、超时等,并将返回错误的请求重新提交到另一个节点。 目前LVS也可以支持监控服务器内部情况,但是LVS的原理不允许它重新发送请求。 例如,如果用户正在上传文件,而处理上传的节点在上传过程中恰好发生故障,nginx会将上传切换到另一台服务器重新处理,LVS将直接断开连接。
基于Cloud++Nacos++Vue实现的后台管理系统+用户小程序&支持RBAC动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能
因为LVS工作的逻辑很简单,而且工作在网络的第4层,只用于请求分发,没有流量,所以基本上不需要过多考虑效率。 LVS 一般很少出现故障。 即使确实如此,通常也是由于其他地方(例如内存、CPU 等)的问题导致 LVS 出现问题。
这通常是一个主要缺点,但也是一个主要优点,因为没有太多可配置选项,因此除了添加或删除服务器之外,您不需要经常接触它,这大大减少了人为错误的机会。
因为其抗负载能力强,所以稳定性高也就顺理成章了。 另外,各种LVS都有完整的双机热备份解决方案,因此您不必担心平衡器本身出现任何问题。 如果某个节点出现故障, LVS 会自动判断,所以整体系统非常稳定。
LVS只是分发请求,但是流量不会从自身出去,所以可以用它来做一些线路引流。没有流量,保护均衡器的IO性能不受大流量的影响。
LVS基本上可以支持所有的应用。 由于LVS工作在第4层,因此它可以对几乎所有应用程序进行负载均衡,包括http、数据库、聊天室等。
欢迎加入我的知识星球,全面提升你的技术能力。
如需加入,请“长按”或“扫描”下面的二维码:
的内容包括:实际项目实践、面试招聘、源码分析、学习路线。
文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。