Java 语言中最好的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:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

在启动类上添加@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]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容