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

SpringBoot开发——结合Nginx实现负载均衡

文章目录

  • 负载均衡介绍
    • 介绍
    • Nginx实现负载均衡的示例图:
    • 负载均衡策略
      • 1.Round Robin:
      • 2.Least Connections:
      • 3.IP Hash :
      • 4.Generic Hash:
      • 5.Least Time (NGINX Plus only)
      • 6.Random:
  • Nginx+SpringBoot实现负载均衡
    • 环境准备
    • Nginx 配置
    • 负载均衡测试

负载均衡介绍

介绍

在介绍Nginx的负载均衡实现之前,先简单的说下负载均衡的分类,主要分为硬件负载均衡和软件负载均衡,硬件负载均衡是使用专门的软件和硬件相结合的设备,设备商会提供完整成熟的解决方案,比如F5,在数据的稳定性以及安全性来说非常可靠,但是相比软件而言造价会更加昂贵;软件的负载均衡以Nginx这类软件为主,实现的一种消息队列分发机制。

简单来说所谓的负载均衡就是把很多请求进行分流,将他们分配到不同的服务器去处理。比如我有3个服务器,分别为A、B、C,然后使用Nginx进行负载均衡,使用轮询策略,此时如果收到了9个请求,那么会均匀的将这9个请求分发给A、B、Cf服务器,每一个服务器处理3个请求,这样的话我们可以利用多台机器集群的特性减少单个服务器的压力。

Nginx实现负载均衡的示例图:

在这里插入图片描述

负载均衡策略

NGINX开源支持四种负载平衡方法,而NGINX Plus又增加了两种方法。

1.Round Robin:

对所有的请求进行轮询发送请求,默认的分配方式。

nginx.conf 配置示例:

upstream xuwujing {server www.panchengming.com;server www.panchengming2.com;
}

注:上面的域名也可以用IP替代。

2.Least Connections:

以最少的活动连接数将请求发送到服务器,同样要考虑服务器权重。

nginx.conf 配置示例:

upstream xuwujing {least_conn;server www.panchengming.com;server www.panchengming2.com;
}

3.IP Hash :

发送请求的服务器由客户机IP地址决定。在这种情况下,使用IPv4地址的前三个字节或整个IPv6地址来计算散列值。该方法保证来自相同地址的请求到达相同的服务器,除非该服务器不可用。

upstream xuwujing {ip_hash;server www.panchengming.com;server www.panchengming2.com;
}

4.Generic Hash:

请求发送到的服务器由用户定义的键决定,该键可以是文本字符串、变量或组合。

upstream xuwujing {hash $request_uri consistent<
http://www.lryc.cn/news/493832.html

相关文章:

  • RabbitMQ在手动消费的模式下设置失败重新投递策略
  • TsingtaoAI具身智能高校实训方案通过华为昇腾技术认证
  • 【Linux】线程池设计 + 策略模式
  • 网络原理(一):应用层自定义协议的信息组织格式 HTTP 前置知识
  • Python-链表数据结构学习(1)
  • 性能优化经验:关闭 SWAP 分区
  • SpringBoot小知识(2):日志
  • java虚拟机——jvm是怎么去找垃圾对象的
  • Macos远程连接Linux桌面教程;Ubuntu配置远程桌面;Mac端远程登陆Linux桌面;可能出现的问题
  • hadoop_HA高可用
  • 【MySQL】MySQL中的函数之JSON_ARRAY_APPEND
  • torch.is_nonzero(input)
  • 文本搜索程序(Qt)
  • 使用 Python 剪辑视频的播放速度
  • 深入理解计算机系统,源码到可执行文件翻译过程:预处理、编译,汇编和链接
  • Linux开发者的CI/CD(11)jenkins变量
  • 深度学习视频编解码开源项目介绍【持续更新】
  • Canva迁移策略深度解析:应对每日5000万素材增长,从MySQL到DynamoDB的蜕变
  • nacos常见面试题(2024)
  • 68000汇编实战01-编程基础
  • 你的网站真的安全吗?如何防止网站被攻击?
  • UE5 材质编辑器CheapContrast 节点
  • 健身房小程序服务渠道开展
  • Java基础面试题08:Java中Exception和Error有什么区别?
  • 什么是axios?怎么使用axios封装Ajax?
  • Web前端学习_CSS盒子模型
  • JAVA项目-------医院挂号系统
  • [工具分享] 根据Excel数据根据Word文档模板,批量创建生成Word文档并重命名,方便快速查找打印
  • Redis的管道操作
  • IT监控 | Oracle云监控全解析