SpringCloud 网关和应用的负载均衡
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SpringCloud 网关和应用的负载均衡,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2348字,纯文字阅读大概需要4分钟。
内容图文
![SpringCloud 网关和应用的负载均衡](/upload/InfoBanner/zyjiaocheng/987/aed573a9488d47468f34b5901c6c687b.jpg)
1、应用的负载均衡,只要以不同端口号同时启动多个应用,通过SpringGateway自带的Ribbon可以自动实现负载均衡。
配置网关路由uri
的时候使用lb://
协议
例如:
cloud:
gateway:
routes:
- id: websocket_route
uri: lb:ws://wood-system
predicates:
- Path=/webSocket/**
- id: websocket_api
uri: lb:ws://wood-system
predicates:
- Path=/api/webSocket/**
注意:应用需无状态 或 状态做分布式管理。
2、网关的负载均衡
方式一:使用nginx
# 1. 前端资源:通过ngix加载前端静态资源+keepalived实现前端负载
# 2. 反向代理:前端资源指向端口不要指定网关,指向反向代理服务器,反向代理服务器指向后端网关集群,问题是不能高效实现网关的弹性。
# 3. 将前端资源+反向代理整合到一个nginx中,再利用nginx+keepalived实现前端负载+反向代理集群。
问题:关于使用websocket的问题。
WebSocket是端对端的,所以当一个代理服务器从客户端拦截一个Upgrade请求,它需要去发送它自己的Upgrade请求到后端服务器,也包括合适的头。
因为WebSocket是一个长连接,不像HTTP那样是典型的短连接,所以反向代理服务器需要允许连接保持着打开,而不是在它们看起来空闲时就将它们关闭。
其他方式:
方式二:
# 1. lvs
方式三:
# 1. dns
方式四:
# 1. F5
3、使用nginx实现网关的负载均衡,nginx配置
#user nobody;
worker_processes 1;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# websocket 协议升级
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
# 负载均衡
upstream balancer {
# ip_hash;
server localhost:9000 weight=1 max_fails=2 fail_timeout=30s;
server localhost:9001 weight=2 max_fails=2 fail_timeout=30s;
}
server {
listen 8812;
server_name localhost;
client_max_body_size 500m;
location / {
proxy_pass http://balancer;
proxy_http_version 1.1;
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 默认情况下,连接将会在无数据传输60秒后关闭,proxy_read_timeout参数可以延长这个时间。
proxy_read_timeout 300s;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
server {
listen 8888;
server_name localhost;
location / {
root html/dist_localhost8812;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
内容总结
以上是互联网集市为您收集整理的SpringCloud 网关和应用的负载均衡全部内容,希望文章能够帮你解决SpringCloud 网关和应用的负载均衡所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。