微服务最强开源API网关Fizz Gateway

Fizz Gateway 1.1.1版本发布!支持更多方便的后台管理功能特性:(Java 语言中最好的API网关)

1、禁止default网关分组的编辑删除;
2、修改插件配置时同时向网关推送数据;
3、限制插件名称唯一,网关分组、插件名称、增加appID字段长度限制;
4、修复插件管理校验bug,插件表单定义可为空;
5、增加路由管理详情字段必填标记;
6、修复管理后台路由配置的app为空时, 授权插件无法获取此路由配置的问题;
7、默认关闭服务白名单;

安装使用

安装依赖

安装以下依赖软件:

  • Redis 2.8或以上版本
  • MySQL 5.7或以上版本
  • Apollo配置中心 (可选)
  • Eureka服务注册中心

安装MySQL

  • 操作系统 CentOS 6.5
  • MySQL 5.7.30
  1. 下载MySQL
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-1.el6.x86_64.rpm-bundle.tar
  1. 解压
tar -xvf mysql-5.7.30-1.el6.x86_64.rpm-bundle.tar
  1. 安装
sudo yum install mysql-community-{server,client,common,libs}-*
  1. 启动
sudo service mysqld start

启动成功会显示以下信息:

[root@localhost ~]# sudo service mysqld start
Initializing MySQL database:                               [  OK  ]
Starting mysqld:                                           [  OK  ]
  1. 初始密码
sudo grep 'temporary password' /var/log/mysqld.log
  1. 使用初始密码登录
mysql -uroot -p
  1. 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
  1. 退出登录
quit

安装Redis 6.0.8

  1. 下载解压并编译
$ wget http://download.redis.io/releases/redis-6.0.8.tar.gz
$ tar xzf redis-6.0.8.tar.gz
$ cd redis-6.0.8
$ make
  1. 启动redis

运行编译后的文件:

$ src/redis-server
  1. 客户端连接
$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

安装Apollo配置中心

说明: apollo是可选组件,如果不使用apollo可使用本地配置文件(application.yml), 如果不使用apollo可跳过此步骤。

安装步骤详见apollo官方文档:

安装Eureka服务注册中心

环境要求:

  • JDK 1.8 或以上版本
  • Tomcat 6.0.10 或以上版本 (如使用spring cloud已内置)
  1. 安装JDK 1.8

1)下载JDK,如: jdk-8u192-linux-x64.tar.gz

tar -zxvf jdk-8u192-linux-x64.tar.gz
mv jdk1.8.0_192 /usr/local/

2)设置JDK环境变量,将下面内容追回到/etc/profile文件后面

JAVA_HOME=/usr/local/jdk/jdk1.8.0_192
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/dt.jar
export JAVA_HOME JRE_HOME PATH CLASSPATH

3)执行以下命令全环境变量生效:

source /etc/profile

4)查看是否安装成功

java -version
  1. 安装eureka

1)使用IDE创建一个spring boot项目,如:sc-eureka-server

pom.xml:


    org.springframework.cloud
    spring-cloud-starter-netflix-eureka-server

在启动类上添加@EnableEurekaServer注解来启用Euerka注册中心功能:

@SpringBootApplication
@EnableEurekaServer
public class ScEurekaServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ScEurekaServerApplication.class, args);
    }

}

application.properties配置文件:

spring.application.name=sc-eureka-server

server.port=8761
eureka.instance.hostname=localhost
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false
eureka.server.enableSelfPreservation=false

2) maven构建并运行sc-eureka-server应用, 启动后访问地址http://localhost:8761/可以看到Eureka注册中心的界面

3)把target/sc-eureka-server-1.0.0.jar传到linux服务器上运行. (仅以单机部署为例)

nohub java -jar sc-eureka-server-1.0.0.jar & 

4)eureka客户端的注册地址为:http://localhost:8761/eureka/ (替换localhost为服务器的IP)

eureka.client.serviceUrl.defaultZone = http://localhost:8761/eureka/

安装Fizz

管理后台

从github的releases(https://github.com/wehotel/fizz-gateway-community/releases)下载 fizz-manager-professional 和 fizz-admin-professional 的安装包

  • 管理后台服务端(fizz-manager-professional)
  1. 首次安装执行fizz-manager-professional-1.0.0-mysql.sql数据库脚本
  2. application-prod.ymlboot.shfizz-manager-professional-1.0.0.jar拷贝到/data/webapps/fizz-manager-professional目录下
  3. 修改application-prod.yml文件,将相关配置修改成部署环境的配置
  4. 修改boot.sh文件,将RUN_CMD变量值修改成部署环境的JAVA实际路径
  5. 执行 chmod +x boot.sh 命令给boot.sh增加执行权限
  6. 执行 ./boot.sh start 命令启动服务,支持 start/stop/restart/status命令
  7. 服务启动后访问 http://IP:8000/fizz-manager (将IP替换成服务部署机器IP地址),使用超级管理员账户admin密码Aa123!登录
  • 管理后台前端(fizz-admin-professional)

zip资源包解压后,取文件夹【fizzAdmin】放置于服务器静态数据存放目录 如:/home/data/

nginx配置

server {
  listen 9000;
  server_name localhost:9000;
  location / {
    root /home/data/fizzAdmin;
  }
  location ^~ /api {
    rewrite ^/api/(.*) /$1 break;
    proxy_pass http://127.0.0.1:8000;
  }
}

# 注:root中地址需与资源包存放目录路径一致
# 注:http://127.0.0.1:8000 为管理后台(fizz-manager-professional)的访问地址

访问地址

【资源部署服务器IP + 端口号】如:http://127.0.0.1:9000/

(端口号与nginx配置端口号一致)

fizz-gateway-community社区版

说明:如果使用apollo配置中心,可把application.yml文件内容迁到配置中心(apollo上应用名为:fizz-gateway);使用不使用apollo可去掉下面启动命令里的apollo参数。

脚本启动:

  1. 下载fizz-gateway-community的最新代码,修改application.yml配置文件里eureka、redis的配置,使用maven构建好并把构建好的fizz-gateway-community-1.0.0.jar和boot.sh放同一目录
  2. 修改boot.sh脚本的apollo连接,JVM内存配置,
  3. 执行 ./boot.sh start 命令启动服务,支持 start/stop/restart/status命令

IDE启动:

  1. 本地clone仓库上的最新代码
  2. 将项目fizz-gateway导入IDE
  3. 导入完成后设置项目启动配置及修改application.yml配置文件里eureka、redis的配置,在VM选项中加入-Denv=dev -Dapollo.meta=http://localhost:66(Apollo配置中心地址)

jar启动:

  1. 本地clone仓库上的最新代码,修改application.yml配置文件里eureka、redis的配置
  2. 在项目根目录fizz-gateway-community下执行Maven命令mvn clean package -DskipTests=true打包
  3. 进入target目录,使用命令java -jar -Denv=DEV -Dapollo.meta=http://localhost:66 fizz-gateway-community-1.0.0.jar启动服务

网关访问地址格式:

http://127.0.0.1:8600/proxy/[服务名]/[API Path]

你可能感兴趣的:(微服务最强开源API网关Fizz Gateway)