Java NIO框架-Netty-6 Nginx配置WebSocket(没写完)

利用Nginx反向代理WebSocket服务器集群

1、假设现在有两个java线程

线程a 监听8888端口,提供http服务

线程b 监听9999端口,提供ws服务

请求http服务:http://192.168.0.30:8888/test_http

返回:200 ok

请求ws服务:socket=new WebSocket("ws://192.168.0.30:9999/test_ws")

连接成功

2、配置ngnix如下

    server{
        listen 8777;
        server_name  localhost;
        location /do_ws {
            proxy_pass http://0.0.0.0:9999/test_ws;
        }
       	location /do_http {
            proxy_pass http://0.0.0.0:8888/test_http;
        }
    }

请求http服务:http://192.168.0.30:8777/do_http

返回:200 ok

请求ws服务:socket=new WebSocket("ws://192.168.0.30:8777/do_ws");

连接成功

关于“负载均衡高可用”

转发器:位于网站架构的最前端,专职于:接受用户请求,转发请求。

借助于转发器就可以将处理请求的负载分布到后台N个真正的服务器上去,这就是负载均衡。

负载均衡器:实现某种均衡负载算法的转发器

高可用(HA-high Availability):狭义上是指单个主机的故障率低,广义上是指整个系统不会因为某几台主机停止服而停止服务。一般的,高可用性指的是系统的高可用性。

如何实现高可用?分两部分,第一部分:负载均衡器的高可用(负载均衡主机的狭义HA);第二部分:后端集群的高可用

关于虚拟服务器VS-Visual Server

无论采用什么样的转发器(负载均衡器)和后端集群向外提供服务,从用户角度,看到的始终是一个具备完整功能的服务器,而看不到亦不关心这个服务器内部是否发生了请求转发。这时,用户看到的服务器就是虚拟服务器。

虚拟服务器的实现请求转发的方式有如下几种方式

VS/NTA

VS/TUN

这种技术被称为IP隧道技术,Nginx在实现WebSocket代理的时候用的就是这种方式。
这种技术的原理是:转发器接到IP报文之后,将IP报文进行再次封装,并将目的地址写为真正处理这个IP报文的服务器,这样这个IP报文就发送到了后端集群的特定服务器,然后这个后端服务器处理完成之后可根据IP报文的源地址(注意,转发器只是改变了目标地址,没有改变源地址),直接向请求者返回消息(而不经过转发器)。
验证如下:

VS/DR

虚拟服务器采用的调度算法(负载均衡算法)有如下几种

轮叫调度

加权调度

最少连接

加权最少连接

基于局部性的最少连接

带复制的基于局部性的最少连接

目标地址散列

源地址散列





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值