[集群聊天服务器]----(十)Nginx的tcp负载均衡配置--附带截图

接着上文,我们剖析了服务端和客户端的代码,但是单台服务器的并发量是有限的,面对并发量的要求,我们就需要引入Nginx来实现并发量的要求,将用户请求分发到不同的服务器上分担压力,这就是负载均衡。
在这里插入图片描述

选择负载均衡模块要完成的任务:

  1. 把client的请求按照轮询的负载算法分发到具体的业务服务器ChatServer上;
  2. 需要和ChantServer保持心跳机制,及时检测ChatServer故障,避免分发到故障机上;
  3. 需要及时发现新添加的ChatServer设备,方便扩展服务器数量,不需要停止服务端

在Linux系统下安装配置nginx—附带每一步截图,在Linux系统下安装配置nginx—附带每一步截图中我们讲解了下载Nginx的详细步骤,这里我们来看如何对Nginx的tcp负载均衡配置。

配置步骤

  • 首先,一定要在nginx编译加入--with-stream参数激活tcp负载均衡模块,即./configure --with-stream
  • 可执行文件在sbin目录中,配置文件在conf
    在这里插入图片描述
  • 打开配置文件 vim nginx.conf
  • 在events和http之间插入以下信息(http是外部服务器的负载均衡)
#nginx tcp loadbalance config
stream{upstream MyServer{server 127.0.0.1:6000 weight=1 max_fails=3 fail_timeout=30s;server 127.0.0.1:6002 weight=1 max_fails=3 fail_timeout=30s;}server{proxy_connect_timeout 1s;#proxy_timeout 3s;listen 8000;  #nginx监听的端口号proxy_pass MyServer;tcp_nodelay on;}
}
  1. upstream MyServer为负载均衡模块,里面存放包含的机器,如果要添加新的服务器,只需要在里面添加即可
  2. 127.0.0.1:6000 ip和端口号
  3. weght权重,都为1表示轮询,可以把不同配置的服务器放在集群中,改变他的权重,充分利用它。
  4. max_fails=3 fail_timeout=30s;心跳检测
  • ./nginx -s reload 平滑重启
  • 查看netstat -tnap
    在这里插入图片描述
    注意:如果要停止nginx,不要使用kill杀死进程,因为nginx有进程容错机制,会自动重启。需要使用nginx -s stop

使用

  • 在使用的时候,服务器端 使用MyServer配置的两个端口登录
    在这里插入图片描述
    在这里插入图片描述
  • 客户端直接连 l 8000; 即nginx监听的端口号
    在这里插入图片描述
    在这里插入图片描述
  • 会平均分配给两个服务器(轮询算法)
    在这里插入图片描述
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/17305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汽车制造业安全有效的设计图纸文件外发系统是什么样的?

在汽车制造的世界里,那些设计图不仅仅是公司智慧的闪光点,更是它们竞争的秘密武器。但问题来了,当公司需要和供应商、合作伙伴频繁交换数据时,怎样安全又高效地发送这些设计图,就成了一个头疼的问题。这篇文章会深挖一…

python常用镜像

#1. 阿里云镜像:https://mirrors.aliyun.com/pypi/simple/ #2. 清华大学镜像:https://pypi.tuna.tsinghua.edu.cn/simple #3. 豆瓣镜像:https://pypi.doubanio.com/simple/ #4. 中科大镜像:https://pypi.mirrors.ustc.edu.cn/simp…

计算机网络——在地址栏输入网址(URL)之后都发生了什么

网址,也叫域名,域名就像一个 IP 地址的可读版本,比如,百度的域名 www.baidu.com,他的 ip 是 110.242.68.3,输入 IP 一样可以跳转到百度搜索的页面,我想没有一个人没去记百度的 IP 吧。其实我们真…

部署Prometheus + Grafana实现监控数据指标

1.1 Prometheus安装部署 Prometheus监控服务 主机名IP地址系统配置作用Prometheus192.168.110.27/24CentOS 7.94颗CPU 8G内存 100G硬盘Prometheus服务器grafana192.168.110.28/24CentOS 7.94颗CPU 8G内存 100G硬盘grafana服务器 监控机器 主机名IP地址系统配置k8s-master-0…

符合车规级漏电流检测的磁通门传感器KTD1100

电动车充电桩 在政策出台后,充电桩类产品按要求需装配B端漏电流检测装置。它可以有效防止充电桩等设备中的漏电流对用户造成危害,保障用户的用电安全。其次,它可以促进充电桩等产品的质量提升,提高市场的公平竞争,让消…

无线领夹麦克风哪个品牌好?本期文章揭秘无线麦克风哪个品牌好用

​在当下这个全民皆为媒体的时代大潮中,视频分享已然成为了引领风尚的指向标。在自媒体领域竞争愈发激烈的态势下,若要在这片广阔海洋中扬帆远航,优秀的作品毫无疑问是吸引观众的关键所在。而想要塑造出这样的卓越之作,除了需要创…

npm 版本号指定标识符

关于依赖的版本 我们可以先来了解依赖的版本 {"dependencies": {"nestjs/common": "^10.0.0","nestjs/core": "^10.0.0",} } 比如我们常见的依赖版本一般长这样,它一般由三部分组成:major.minor.p…

代谢组数据分析六:基于报告分数的功能分析

代谢组数据分析六:基于报告分数的功能分析 受经典“RSA”方法的启发,我们开发了改进的“基于广义报告者得分的分析(GRSA)”方法,并将其实现在R包“ReporterScore”中,同时配套了全面的可视化方法和通路数据库。“GRSA”是一种无需阈值的方法,适用于所有类型的生物医学特…

unity生命值有时候不会减少,即使明显被击中

碰撞检测不一致: 确保所有敌人对象都有正确设置的标签(Tag),并且这个标签是在 OnCollisionEnter 中检查的 "Enemy"。此外,检查敌人和直升机的碰撞器(Collider)设置是否正确&#xff0…

K8s 小白入门|从电影配乐谈起,聊聊容器编排和 K8s

来听听音乐 电影,是我们生活中的重要调味剂。 配乐,是电影中不可或缺的一部分。 有的时候,配乐可以跟剧情共振,让你按捺不住自己的情绪,或眼含热泪、或慷慨激昂、或人仰马翻、或怅然若失; 有的时候&…

偏微分方程算法之抛物型方程差分格式编程示例一

目录 一、研究问题 二、C++代码 三、结果分析 一、研究问题 从本节开始将对具体的抛物型偏微分问题算例进行C++编程,以加深对抛物型偏微分方程差分格式构造的理解和应用。 采用向前欧拉格式计算抛物型方程初边值问题:

WebGL技术在教育培训中的应用

WebGL技术在教育培训中的应用非常广泛,通过其强大的三维图形处理能力,能够为教育培训提供更加生动、互动和沉浸式的学习体验。以下是WebGL在教育培训中的几个主要应用及其具体实现。北京木奇移动技术有限公司,专业的软件外包开发公司&#xf…

想用Python做OCR?看看这篇文章

OCR是Optical Character Recognition的缩写,中文名为光学字符识别。它是一种通过计算机技术对图像或扫描文档中的文字进行识别和理解的过程。OCR技术可以将图像中的文字转换为可编辑、可搜索的文本,使得计算机能够理解和处理这些文字信息。 OCR技术通常…

解锁数据的力量:Navicat 17 新特性和亮点

解锁数据的力量:Navicat 17 新特性和亮点 大家好,我是猫头虎。今天我要为大家介绍 Navicat 17 的新特性和亮点。Navicat 是一款专业的数据库管理工具,支持多种数据库类型,包括 MySQL、Oracle、SQL Server、PostgreSQL、MariaDB、…

C++流行编译器的基础认识

有哪些主流的C编译器? C有许多流行的编译器,每个编译器都有其独特的特点和用途。以下是一些流行的C编译器: GNU Compiler Collection (GCC): GCC是一个开源的编译器套件,支持多种编程语言,包括C和C。它是一个功能强大…

【量算分析工具-概述】GeoServer改造Springboot番外系列三

【量算分析工具-概述】GeoServer改造Springboot番外系列三-CSDN博客 【量算分析工具-水平距离】GeoServer改造Springboot番外系列四-CSDN博客 【量算分析工具-水平面积】GeoServer改造Springboot番外系列五-CSDN博客 【量算分析工具-方位角】GeoServer改造Springboot番外系列…

php正则中的i,m,s,x,e分别表示什么

正则表达式模式修饰符(也称为标志或模式修饰符)用于改变正则表达式的行为。这些修饰符可以附加在正则表达式的定界符之后,通常为正斜杠(/)或井号(#),以改变搜索或替换的方式。 1、i…

Python函数式编程入门窥探

文章目录 函数式编程把函数当作对象高阶函数map的替代品reduce的替代品filter的替代品 匿名函数可以向函数一样可调用的对象自定义的调用类型函数内省传递给函数的参数:从定位参数到仅限关键字参数获取关于函数参数的信息--inspect模块获取函数签名的signature方法i…

【智能家居入门1】环境信息监测(STM32、ONENET云平台、微信小程序、HTTP协议)

作为入门本篇只实现微信小程序接收下位机上传的数据,之后会持续发布如下项目:①可以实现微信小程序控制下位机动作,真正意义上的智能家居;②将网络通讯协议换成MQTT协议再实现上述功能,此时的服务器也不再是ONENET&…

解决Springboot服务启动报错:“Reason: Failed to determine suitable jdbc url”

1、错误详情 *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: url attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine sui…