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]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章