zoukankan      html  css  js  c++  java
  • 解决socket负载均衡集群方案和代码实现

    有一段时间,在考虑下socket 之间集群 可以在Nginx 下可以 但是不同服务器之间怎么通讯呢 后来自己也想可不可以用什么东西或者中间件来通讯 ,后来在百度之下 发现果然就是按照我所想的 ,在网上看了一个方案,架构如下:

    说一下这个方案他们之间的作用

    redis : 存取用户和服务器的关系,如果A想发一条数据,是发给B ,这时A发起一个mq订阅模式推送的数据 ,然后B收到数据处理好 ,在推送给用户就ok 

    mq : 是了桥接A和B 的之间的通讯

    这样A和B之间通讯就没有问题了

    以下是搭建过程

    首先配置好nginx ,可以百度下载和安装 ,我的路径是如下 打开配置nginx.conf   vim nginx.conf 配置如下

     map $http_upgrade $connection_upgrade {

          default upgrade;

          '' close;

        }

        upstream ws_name {

          server 127.0.0.1:12345 weight=1; ## weight 权重越大越大获取链接机会就越大

          server 127.0.0.1:12346 weight=1;

        }

        server {

            listen       9999;

            server_name  localhost;

            location / {

                proxy_pass   http://ws_name/;

                proxy_http_version 1.1;

                proxy_set_header Upgrade $http_upgrade;

                proxy_set_header Connection "Upgrade";

               ### 以下配置是为了解决在nginx 下 socket 短时间的断开 ,即使你配置长链接也没用 必须有如下的配置

                proxy_connect_timeout 4s;

                proxy_read_timeout 600s; #这个配置连接保持多长时间 这配置十分钟 ,然后可以自己心跳来保证长链接

                proxy_send_timeout 12s;

            }

            error_page   500 502 503 504  /50x.html;

            location = /50x.html {

                root   html;

            }

    以上是nginx的配置 然后启动就ok 启动 命令 :./nginx 

    查看是否启动 命令  ps -ef |grep nginx

     然后 mq 我的mq是 activemq  这个可以百度看看怎么安装 ,因为这个安装比较简单所以就不说太多了 

    接下来是代码的实现了 。

  • 相关阅读:
    vsftp搭建
    进程管理相关命令(15 个)
    系统管理与性能监视命令 (9 个)
    系统权限及用户授权相关命令(4 个)
    用户管理命令(10个命令)
    深入网络操作命令(9条命令)
    查看系统用户登陆信息的命令(7 个)
    查看文件及内容处理命令(21个命令)
    有关磁盘与文件系统的命令(16个命令)
    linux kernel bisops.h
  • 原文地址:https://www.cnblogs.com/panchanggui/p/9841913.html
Copyright © 2011-2022 走看看