集群部署
在阅读本文档前,你需要先阅读部署先决条件文档来完成部署
shenyu
前的环境准备工作.
本文是介绍在集群环境中快速部署ShenYu
网关。
同时,在阅读本文档前,你可以先阅读二进制包部署。
环境准备
- 至少准备两台已经安装了JDK1.8+的服务器用于部署网关启动器。
- 准备一台已经安装了mysql、pgsql、h2和JDK1.8+的服务器用于部署网关管理端。
- 准备一台服务器用于部署Nginx。
启动 Apache ShenYu Admin
在你的网关管理端服务器下载并解压apache-shenyu-incubating-2.4.3-admin-bin.tar.gz 。
配置你的数据库,进入
/conf
目录,在application.yaml
文件中修改spring.profiles.active
节点为mysql
,pg
orh2
。配置你的数据同步方式,进入
/conf
目录,在application.yaml
文件中修改shenyu.sync
节点为websocket
,http
,zookeeper
,etcd
,consul
或者nacos
。添加数据库驱动包,如使用
MySQL
进行持久化,将 mysql-connector.jar 拷贝到ext-lib
目录。进入
bin
目录,启动ShenYu Admin。
> windows: start.bat
> linux: ./start.sh
启动 Apache ShenYu Boostrap
在你的网关启动器服务器下载并解压apache-shenyu-incubating-2.4.3-bootstrap-bin.tar.gz 。
配置你的数据同步方式,进入
/conf
目录,在application.yaml
文件中修改shenyu.sync
节点为websocket
,http
,zookeeper
,etcd
,consul
或者nacos
,这个配置必须与ShenyYu Admin
的配置保持相同。
注: 若设置nacos配置中心作为数据同步方式,需在ext-lib文件夹下引入shenyu-spring-boot-starter-sync-data-nacos.jar
shenyu-sync-data-nacos.jar
进入
bin
目录,启动ShenYu Bootstrap。
> windwos : start.bat
> linux : ./start.sh
在完成这些操作后,你将成功部署
ShenYu Boostrap
集群。假如你
10.1.1.1
和10.1.1.2
两台服务器在将部署ShenYu Bootstrap
,并且在10.1.1.3
部署nginx。
启动 Nginx
下载并安装nginx。
在
nginx.conf
文件中修改upstream
和server
节点的配置。
upstream shenyu_gateway_cluster {
ip_hash;
server 10.1.1.1:9195 max_fails=3 fail_timeout=10s weight=50;
server 10.1.1.2:9195 max_fails=3 fail_timeout=10s weight=50;
}
server {
location / {
proxy_pass http://shenyu_gateway_cluster;
proxy_set_header HOST $host;
proxy_read_timeout 10s;
proxy_connect_timeout 10s;
}
}
- 启动 nginx.
> windows: ./nginx.exe
> linux: /usr/local/nginx/sbin/nginx
- 验证nginx配置是否生效,在
ShenYu Bootstrap
或者Nginx
的日志文件中查看请求被分发到那台服务器上。