# 环境准备

  1. java 1.8、maven 3.3.3 及以上、redis 2.8 及以上

  2. clone https://github.com/fizzgate/fizz-gateway-node.git 到本地,导入 ide 中,如 idea:

  • fizz-common 含通用配置、工具类等

  • fizz-core 是网关核心,含路由、聚合等逻辑

  • fizz-plugin 遗留的插件模块,fizz 插件开发规范参 http://www.fizzgate.com/guide/plugin

  • fizz-spring-boot-starter 模块是一个 spring boot starter,方便第三方集成 fizz 网关

  • fizz-bootstrap 是独立项目,与 fizz-gateway-node 非父子模块关系;主要展示第三方如何集成 fizz;在 fizz-gateway-node 上的开发,亦可在 fizz-bootstrap 中验证

  1. 管理后台搭建
  • 从github的releases(https://github.com/fizzgate/fizz-gateway-node/releases) 下载与 fizz-gateway-node 版本一致的 fizz-manager-professional 安装包

  • 解压fizz-manager-professional-{version}.zip安装包

  • 首次安装执行fizz-manager-professional-{version}-mysql.sql数据库脚本,从低版本升级至高版本选择执行update目录下对应升级脚本

  • 修改application-prod.yml文件,将相关配置修改成部署环境的配置

    修改

    为你的 redis

    修改

    为你的 MySQL

  • Linux启动 执行 chmod +x boot.sh 命令给boot.sh增加执行权限;执行 ./boot.sh start 命令启动服务,支持 start/stop/restart/status命令

  • Windows启动 执行.\boot.cmd start 命令启动服务,支持 start/stop/restart/status命令

  • 服务启动后访问 http://{部署机器IP地址}:8000/#/login,使用超级管理员账户admin密码Aa123!登录

# 插件开发

  1. 比如开发一个插件,拦截请求后,在标准错误中输出 "this is my plugin",代码如下:

(此处为方便演示,把插件代码放于 fizz-plugin 模块下,插件开发规范请参 http://www.fizzgate.com/guide/plugin)

  1. 本地 maven install fizz-gateway-node

  2. 在 fizz-bootstrap 中测试

fizz-bootstrap 通过 fizz-spring-boot-starter 引入 fizz-gateway-node 的模块,可 reload fizz-bootstrap,确保依赖到 2 中的更新

修改

为管理后台的 redis

​ 假设有后端接口:

​ GET http://127.0.0.1:9094/@ypath,接口由 fizz-bootstrap 反向代理,对应的前端服务名为 xservice,前端路径为 /ypath,即通过 /proxy/xservice/ypath 路径访问,同时应用上面的 myPlugin

​ 为接口配置路由*(编程式,不依赖网关管理后台,仅用于开发测试)*

​ 启动 FizzBootstrapApplication.java,访问 GET http://127.0.0.1:8600/proxy/xservice/ypath 进行测试

  1. 通过管理后台配置前述路由
  • 新增插件

插件名称需与 MyPlugin.java 中的 id 一致,当定义了多个插件时,可通过 “默认执行顺序” 预设本插件的执行次序

  • 新增路由

​ 去掉网关的 MyApiConfig.java,重启 FizzBootstrapApplication.java,访问 GET http://127.0.0.1:8600/proxy/xservice/ypath 进行测试