乐趣区

关于Soul:Soul源码阅读10模拟集群部署

指标

  • 简略模仿一下 soul 网关的集群部署(采纳 webscoket 同步形式)

IDEA 启动多个我的项目

  • 批改我的项目 application.yml 中的端口配置server.port=''
  • 批改 idea 启动配置,勾选Allow parallel run,容许并行启动

用以上形式批改 soul-admin 端口配置,启动两个soul-admin

soul-bootstrapapplication.yml配置方才启动的 soul-admin 的 url

soul:
    sync:
        websocket :
             urls: ws://localhost:9095/websocket,ws://localhost:9096/websocket

别离启动两个soul-bootstrapsoul-examples-http

测试启动的两个 soul 网关,均拜访胜利

至此,soul 网关启动完结。

Nginx 装置部署

本地环境是 Windows,解压即可

批改装置目录下 conf 目录下的配置文件 nginx.conf,简略配置一下,批改两处:

  1. 新增集群配置
  2. 新增代理门路

#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 网关的集群部署实现。

退出移动版