当前位置: 首页 > news >正文

负载均衡器、消息队列、前后端服务器的思考总结

负载均衡

nginx就能实现负载均衡
1、负载均衡:Load Balance将工作任务分摊到多个处理单元,从而提高并发处理能力。
2、功能:负载均衡建立在现有网络结构之上,使用它可以实现扩展网络设备的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性、可用性;
3、公司里面一个应用一个负载均衡器(Nginx,逻辑上一个,可备用),所有前端用户请求经过域名解析到负载均衡上(同一个ip+port),然后负载均衡会进行转发(根据配置机制)web服务器上(多台web服务器对应不同ip+port)。举例:如300个用户请求,3台web服务器。设置机制均衡转发,那么每个webserver能收到100个请求,如果web服务器03出现异常挂掉的话,那么他的请求会均分到服务器01和服务器02上;
备注:如果没有负载均衡这个功能,那么用户请求只能随机转发(或者也设置轮询)到不同的web服务器(不同的ip),那么这个服务器挂掉后,用户怎么办?有了负载均衡所有用户请求统一管理,而且对于用户来说多有的请求都在同一个ip上,不需要管理电脑后台如何操作。

4、为什么 Nginx 算“前端”,Tomcat 算“后端”:不是根据前后端代码定义,将nginx定义为前端服务器是因为nginx离前端近,且他负责路由转发、静态资源(图片/css/js)缓存加载、限流、安全过滤等功能–对应前端代码负责静态资源、样式、渲染等页面相似;将tomcat定义为后端服务器(应用服务器),是他隐藏在nginx后面,离前端远,且他负责跑真正的 Java 业务代码(比如 Spring Boot 服务),连接数据库、执行复杂的逻辑运算–对应的代码后端负责业务逻辑相似。
5、所以他是这样的:用户浏览器(真正的客户端) → Nginx(服务器端的前端代理) → Tomcat(服务器端的后端业务)。

消息队列

1、消息队列(Message Queue)MQ:是在消息传输过程中保存消息的容器。
消息队列中间件是分布式系统中重要的组件,主要解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性架构;
2、消息队列流程:
后台服务如果一次产生1万条记录每秒,而服务器每秒最多只能处理5000条,那么从消息queue中取5000条记录,剩下的依然放着,因为日志实时性不高,处理完5000条后接着继续处理。

消息队列和负载均衡的思考

3、思考:

  • 从这块看来消息队列也是统一管理消息,避免服务器过载,原理和负载均衡一样,负载均衡统一管理请求,避免服务器过载异常等;
  • 负载均衡(Nginx):是“空间换时间”。怕一个入口扛不住,我就把请求横向分散给多台机器,避免web服务器异常挂掉;
  • 消息队列(MQ):是“时间换空间”。现在瞬间流量太大,我不强求服务器立刻处理完,而是把请求纵向(时间轴) 拉长,让服务器慢慢消化,避免数据库或业务系统被冲垮。
  • 此外他们的处理模式:负载均衡是同时,消息队列是异步(延时)
http://www.cnnetsun.cn/news/4323901.html

相关文章:

  • DBeaver 数据比较结果过滤:3 步只看你关心的差异
  • Headscale 配置迁移指南:Tailscale 控制服务器 8 个弃用参数一次改对
  • SiYuan 闪卡教程:3 步把笔记卡片同步到 Anki 复习
  • Apache Airflow 3:用代码搭建数据工作流调度的完整指南,5分钟跑通第一个DAG
  • 从零到生产:LibreChat 自托管部署避坑指南
  • MATLAB连杆机构运动学仿真:从曲柄滑块到多杆机构GIF动画
  • 基于MATLAB的手写数字识别系统:BP神经网络与GUI界面实现全解析
  • 用Claude Code打造AI员工:语音控制、屏幕接管与自动构建实战
  • 用LLM为Emacs的EWW浏览器装上AI阅读助手
  • 4台Mac跑671B大模型:exo 分布式AI集群本地推理指南
  • obsidian-skills 实战:5 个 Agent 技能让 AI 正确读写和检索 Obsidian 笔记
  • DBeaver 插件优化完整教程:3 步解决启动缓慢与卡顿,内存占用降低一半
  • 途虎养车数据分析岗笔试题解析:从SQL到业务案例的考察逻辑
  • 用友2018秋招Java笔试题复盘:基础、集合、JVM与多线程要点解析
  • C语言零基础入门:掌握printf和scanf的四个关键点
  • 双星不同轨卫星目标探测Matlab仿真源码详解
  • agentmemory远程部署安全加固指南:HMAC密钥、Bearer令牌与HTTPS强制三件套
  • 不确定性引导的潜在扩散模型:实现忠实图像超分辨率
  • Linux重定向与追加重定向详解:文件描述符、2>1与日志收集实战
  • AI Agent概念验证实战:从Demo到工程落地的关键路径
  • Python爬虫实战:从抓包到反爬的完整数据采集方案
  • HyperMesh新手的三大卡点:网格质量、材料单位与节点显示
  • 手写MiniPin:从自引用到async彻底理解Rust Pin
  • iOS校招笔试高频考点拆解:从内存管理到GCD底层原理
  • 后台开发校招笔试备考全攻略:从乐信真题看考点与策略
  • STM32N6链接报错undefined reference?一文教你排查MX_USART1_UART_Init缺失问题
  • 快手2020秋招算法岗B卷:KMP、动态规划与机器学习考点全解析
  • DeepSeek接入Codex:配置Skill与插件打造Agent编程工作流
  • Spring 声明式事务在同类中失效的原因与解决方案汇总
  • RV1126准备-----RockX的使用