指标
- 简略模仿一下 soul 网关的集群部署(采纳 webscoket 同步形式)
IDEA 启动多个我的项目
- 批改我的项目
application.yml
中的端口配置server.port=''
- 批改 idea 启动配置,勾选
Allow parallel run
,容许并行启动
用以上形式批改 soul-admin
端口配置,启动两个soul-admin
在 soul-bootstrap
的application.yml
配置方才启动的 soul-admin
的 url
soul:
sync:
websocket :
urls: ws://localhost:9095/websocket,ws://localhost:9096/websocket
别离启动两个soul-bootstrap
、soul-examples-http
测试启动的两个 soul
网关,均拜访胜利
至此,soul
网关启动完结。
Nginx 装置部署
本地环境是 Windows,解压即可
批改装置目录下 conf 目录下的配置文件 nginx.conf
,简略配置一下,批改两处:
- 新增集群配置
- 新增代理门路
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {worker_connections 1024;}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local]"$request" '
# '$status $body_bytes_sent"$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#---------------1. 新增集群配置 -------------------------------
upstream soul {
# 能够通过批改 weight=10 的值来设置权重
server 127.0.0.1:9195 weight=10;
server 127.0.0.1:9196 weight=10;
}
server {
listen 80; #Nginx 的监听端口,默认为 80
server_name localhost; #Nginx 的监听的主机名
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#---------------2. 新增代理门路 -------------------------------
#代理门路和集群名称 (upstream soul{}) 须要保持一致
proxy_pass http://soul;
proxy_redirect default;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {root html;}
省略...
}
}
在 Nginx
装置的目录下,启动Nginx
1、启动:start nginx
或
nginx.exe
注:倡议应用第一种,第二种会使你的 cmd 窗口始终处于执行中,不能进行其余命令操作。2、进行:nginx.exe -s stop
或
nginx.exe -s quit
注:stop 是疾速进行 nginx,可能并不保留相干信息;quit 是残缺有序的进行 nginx,并保留相干信息。3、从新载入 Nginx:nginx.exe -s reload
当配置信息批改,须要从新载入这些配置时应用此命令。
拜访Nginx
:
至此,Nginx
配置玩成。
测试负载平衡
soul-admin
批改 divide
插件的selector
,负载平衡拜访配置为随机拜访:
拜访五次:http://localhost/http/order/f…
后盾输入:
9195:拜访三次,9196:拜访两次,网关的随机拜访是通过 Nginx
负载平衡实现的。
8188:拜访两次,8189:拜访三次,soul-examples-http
的随机拜访是通过咱们方才在 soul-admin
批改 divide
插件的 selector
实现的。
接下来测试一下把网关的所有申请都散发到 8199 端口
再拜访五次:http://localhost/http/order/f…
网关的随机拜访没有扭转,还是通过 Nginx
负载平衡拜访的。然而,通过网关拜访 soul-examples-http
的申请全副散发到了 8199 端口,阐明咱们在 soul-admin
批改的数据曾经同步到了缓存。
至此,模仿 soul 网关的集群部署实现。