集群部署

在阅读本文档前,你需要先阅读部署先决条件文档来完成部署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 or h2

  • 配置你的数据同步方式,进入/conf目录,在application.yaml文件中修改shenyu.sync节点为websocket, http, zookeeper, etcd, consul 或者 nacos

  • 添加数据库驱动包,如使用MySQL进行持久化,将 mysql-connector.jar 拷贝到ext-lib目录。

  • 进入bin目录,启动ShenYu Admin。

  1. > windows: start.bat
  2. > 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。

  1. > windwos : start.bat
  2. > linux : ./start.sh

在完成这些操作后,你将成功部署ShenYu Boostrap集群。

假如你10.1.1.110.1.1.2两台服务器在将部署ShenYu Bootstrap,并且在10.1.1.3部署nginx。

启动 Nginx

  • 下载并安装nginx。

  • nginx.conf文件中修改upstreamserver节点的配置。

  1. upstream shenyu_gateway_cluster {
  2. ip_hash;
  3. server 10.1.1.1:9195 max_fails=3 fail_timeout=10s weight=50;
  4. server 10.1.1.2:9195 max_fails=3 fail_timeout=10s weight=50;
  5. }
  1. server {
  2. location / {
  3. proxy_pass http://shenyu_gateway_cluster;
  4. proxy_set_header HOST $host;
  5. proxy_read_timeout 10s;
  6. proxy_connect_timeout 10s;
  7. }
  8. }
  • 启动 nginx.
  1. > windows: ./nginx.exe
  2. > linux: /usr/local/nginx/sbin/nginx
  • 验证nginx配置是否生效,在ShenYu Bootstrap或者Nginx的日志文件中查看请求被分发到那台服务器上。