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

CPP集群聊天服务器开发实践(五):nginx负载均衡配置

1 负载均衡器的原理与功能

单台Chatserver可以容纳大约两万台客户端同时在线聊天,为了提升并发量最直观的办法需要水平扩展服务器的数量,三台服务器可以容纳六万左右的客户端。

负载均衡器的作用:

  1. 把client的请求按照负载均衡算法分发到具体业务服务器chatserver上面:保证server与client的长连接,依据轮询算法/权重算法等将不同client连接到不同server上面,提升client的容量
  2. 能够和chatserver保持心跳机制,监测chatserver故障:nginx能够实时监测server是否由于网络故障无法为client提供服务,可以引入心跳计数器进行判断
  3. 能够发现新添加的chatserver设备,方便扩展服务器数量:能够在不关闭原有服务器的基础上平滑添加新的server供nginx调度分配

2 nginx的tcp负载均衡配置和功能验证

选择nginx的tcp负载均衡模块需要解决的问题:

  1. 如何进行nginx源码编译,包括tcp负载均衡模块
  2. nginx.conf配置文件中如何配置负载均衡
  3. nginx的平滑加载配置文件启动

配置参考:Nginx负载均衡实践-CSDN博客

安装好nginx之后位于usr/local/nginx之下:

配置文件位于conf文件夹下的nginx.conf,可执行文件位于sbin下。

nginx提供了应用层(http web)和传输层(tcp)的负载均衡,在nginx.conf中修改即可。

#nginx tcp loadbalance config
stream{
    upstream MyServer{
        /*
        weight:设置服务器权重,加权轮询算法中权重大的优先分配客户端
        max_fails:与server的心跳机制,超过3次未响应则认为故障
        fail_timeout:每次心跳监测的时长为30s
        添加新的服务器无需停止nginx服务,只需要修改此配置文件即可
        */
        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;
        //客户端统一连接nginx的8000端口,由nginx进行负载均衡
        listen 8000;
        //反向代理对象为MyServer
        proxy_pass MyServer;
        tcp_nodelay on;
    }
}

./nginx -s reload:平滑重启配置文件

./nginx -s stop:停止nginx服务

结果测试:

(1)启动nginx

(2)测试连接

两台客户端访问8000端口的nginx分别被分配到了两台服务器。

相关文章:

  • Field ‘id‘ doesn‘t have a default value
  • Redis 事物
  • React 第二十六节 <Profiler></Profiler> 的用途使用方法
  • 【零基础学Mysql】常用函数讲解,提升数据操作效率的利器
  • 2025年 Java 面试八股文
  • 鸿蒙Harmony-UIAbility内状态-LocalStorage详细介绍
  • 【数据结构】 栈和队列
  • Unity DeepSeek API 聊天接入教程(0基础教学)
  • 聊一聊vue如何实现角色权限的控制的
  • JavaBean
  • 【Elasticsearch入门到落地】8、RestClient操作索引库-基础介绍及导入demo
  • 【OpenCV】入门教学
  • Spring 和 Spring MVC 的关系是什么?
  • python知识和项目经验
  • 案例-06.部门管理-根据ID查询
  • Python基于Flask的豆瓣电影数据分析可视化系统(附源码,文档说明)
  • 国产编辑器EverEdit - “切换文件类型”的使用场景
  • 力扣 470. 用 Rand7() 实现 Rand10() 拒绝采样 等概率随机数生成
  • 2.【BUUCTF】[极客大挑战 2020]Roamphp1-Welcome
  • 网易雷火游戏测试开发1面面经(带脑图)
  • 文化润疆|让新疆青少年成为“小小博物家”
  • 民航局:中方航空公司一季度运输国际旅客同比大增34%
  • 持续更新丨伊朗内政部长:港口爆炸已致8人死亡750人受伤
  • 魔都眼·上海车展⑤|被主播包围的新车
  • 期待会师!神二十与空间站完成对接
  • 陕西省烹饪餐饮行业领军人物黄建军逝世,终年53岁