溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SIA-GateWay之API網(wǎng)關(guān)安裝部署指南

發(fā)布時間:2020-06-24 19:27:07 來源:網(wǎng)絡(luò) 閱讀:5268 作者:宜信技術(shù) 欄目:軟件技術(shù)

SIA-GATEWAY是基于SpringCloud微服務(wù)生態(tài)體系下開發(fā)的一個分布式微服務(wù)網(wǎng)關(guān)系統(tǒng)。具備簡單易用、可視化、高可擴(kuò)展、高可用性等特征,提供云原生、完整及成熟的接入服務(wù)解決方案。本文介紹API網(wǎng)關(guān)的安裝部署。

微服務(wù)與網(wǎng)關(guān)技術(shù)(SIA-GateWay)

一、環(huán)境

1.1 編譯環(huán)境

  • Maven3+
  • nodejs
  • Jdk1.8+

1.2 運行時第三方依賴

  • Mysql5.6+
  • elasticsearch 5.5.2
  • kibana-5.5.2
  • kafka 2.12-2.0.0
  • redis 3.2.11
  • eureka-server

1.3 運行環(huán)境

  • 64bit OS,Linux/Mac/Windows/docker
  • JDK1.8+

二、源代碼下載

git clone https://github.com/siaorg/sia-gateway.git

2.1 源碼結(jié)構(gòu)如下:

.
├── sia-gateway-admin-buildcomponent  網(wǎng)關(guān)admin組件集合
│?? ├── sia-gateway-admin             網(wǎng)關(guān)admin監(jiān)控系統(tǒng)組件
│?? ├── sia-gateway-synchspeed        網(wǎng)關(guān)對下游服務(wù)實時感知組件
│?? ├── sia-gateway-stream            網(wǎng)關(guān)日志組件
│?? ├── sia-gateway-service           網(wǎng)關(guān)系統(tǒng)輔助組件
│?? ├── sia-gateway-monitor           網(wǎng)關(guān)監(jiān)控、日志組件
│   │ ?? ├── sia-gateway-reactive    
│   │??  ├── sia-gateway-messaging    基礎(chǔ)依賴 
│   │ ? ?├── sia-gateway-sink
│   │ ?? ├── sia-gateway-esclient
│   │ ?  ├── sia-gateway-base
├── sia-gateway-admin-display         網(wǎng)關(guān)系統(tǒng)前端代碼
├── sia-gateway-buildcomponent        網(wǎng)關(guān)core-buildcomponent
│?? ├── sia-gateway-core              網(wǎng)關(guān)Core節(jié)點
│   │?? ├── sia-gateway-base
│   │?? ├── sia-gateway-messaging     基礎(chǔ)依賴
│   │?? ├── sia-gateway-reactive
│   │?? ├── sia-gateway-template

三、初始化“API網(wǎng)關(guān)數(shù)據(jù)庫”

1)MySQL的安裝和配置詳見MySQL官方文檔

2)請下載項目源碼并解壓,獲取 "API網(wǎng)關(guān)數(shù)據(jù)庫初始化SQL腳本" 并執(zhí)行即可。

"API網(wǎng)關(guān)數(shù)據(jù)庫初始化SQL腳本" 位置為:

/sia-gateway/sia-gateway-admin/src/main/resources/db/gateway_admin.sql

四、配置“網(wǎng)關(guān)系統(tǒng)”

4.1 網(wǎng)關(guān)配置文件地址

# 網(wǎng)關(guān)admin中心conf
/sia-gateway/sia-gateway-admin-buildcomponent/config/gateway_admin_test.yml

# 網(wǎng)關(guān)監(jiān)控服務(wù)conf
/sia-gateway/sia-gateway-admin-buildcomponent/config/gateway_monitor_test.yml

# 網(wǎng)關(guān)輔助節(jié)點conf
/sia-gateway/sia-gateway-admin-buildcomponent/config/gateway_service_test.yml

# 網(wǎng)關(guān)日志服務(wù)conf
/sia-gateway/sia-gateway-admin-buildcomponent/config/gateway_stream_test.yml

# 網(wǎng)關(guān)實時感知服務(wù)conf
/sia-gateway/sia-gateway-admin-buildcomponent/config/gateway_synchspeed_test.yml

# 網(wǎng)關(guān)核心節(jié)點conf
/sia-gateway/sia-gateway-buildcomponent/config/gateway_test.yml

1)gateway_admin_test.yml

SIA-GateWay之API網(wǎng)關(guān)安裝部署指南

SIA-GateWay之API網(wǎng)關(guān)安裝部署指南

2)gateway_service_test.yml

SIA-GateWay之API網(wǎng)關(guān)安裝部署指南

3)gateway_stream_test.yml
SIA-GateWay之API網(wǎng)關(guān)安裝部署指南

4)gateway_synchspeed_test.yml

SIA-GateWay之API網(wǎng)關(guān)安裝部署指南

5)gateway_monitor_test.yml

SIA-GateWay之API網(wǎng)關(guān)安裝部署指南

6)gateway_test.yml

SIA-GateWay之API網(wǎng)關(guān)安裝部署指南

SIA-GateWay之API網(wǎng)關(guān)安裝部署指南

SIA-GateWay之API網(wǎng)關(guān)安裝部署指南

說明:spring.application.name為網(wǎng)關(guān)組名稱,開發(fā)者可以修改此屬性,搭建新的網(wǎng)關(guān)組

4.2 maven 倉庫地址配置

  <mirrors>
       <mirror>
              <id>alimaven</id>
              <name>aliyun maven</name>
              <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
              <mirrorOf>central</mirrorOf>        
      </mirror>
  </mirrors>
  <profiles>
        <profile>
            <id>jdk-1.8</id>
            <activation>
                <activeByDefault>true</activeByDefault>
                <jdk>1.8</jdk>
            </activation>
            <properties>
                <maven.compiler.source>1.8</maven.compiler.source>
                <maven.compiler.target>1.8</maven.compiler.target>
                <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
            </properties>
        </profile>

        <profile>
            <id>downloadSources</id>
            <properties>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
            </properties>
        </profile>
        <profile>  
            <id>spring plugins</id>  
            <activation>  
              <jdk>spring plugins</jdk>  
            </activation>  
            <pluginRepositories>  
              <pluginRepository>  
                <id>spring plugins</id>  
                <name>Spring plugins</name>  
                <url>https://maven.aliyun.com/repository/spring-plugin</url>  
                <layout>default</layout>  
                <snapshotPolicy>always</snapshotPolicy>  
              </pluginRepository>  
            </pluginRepositories>  
        </profile>  
    </profiles>

    <activeProfiles>
        <activeProfile>downloadSources</activeProfile>
    </activeProfiles>

五、構(gòu)建部署項目

5.1 編譯項目

1)如果已經(jīng)正確進(jìn)行上述配置,可將項目編譯打包部署。

2)操作步驟:

    cd sia-gateway

    chmod +x *.sh

    sh build.sh

3)打包成功后,會出現(xiàn)以下標(biāo)注文件。

  • /sia-gateway/sia-gateway-admin-buildcomponent/target/gateway_admin_1.0.zip

SIA-GateWay之API網(wǎng)關(guān)安裝部署指南

  • /sia-gateway/sia-gateway-buildcomponent/target/gateway_1.0.zip

SIA-GateWay之API網(wǎng)關(guān)安裝部署指南

  • /sia-gateway/sia-gateway-admin-display/dist/

SIA-GateWay之API網(wǎng)關(guān)安裝部署指南

注:前端打包需要用到nodeJs,如未安裝,可請參考 nodejs安裝文檔。

5.2 部署項目

  • API網(wǎng)關(guān)系統(tǒng)的部署方式為分布式部署集中式管理模式,即網(wǎng)關(guān)Core節(jié)點可以按業(yè)務(wù)線劃分為不同的網(wǎng)關(guān)組,網(wǎng)關(guān)管理端作為網(wǎng)關(guān)的管理中心,供統(tǒng)一的管理界面,用戶可在此進(jìn)行 API、組件、系統(tǒng)基礎(chǔ)信息的設(shè)置和維護(hù),收集監(jiān)控日志、生成各種運維管理報表、自動告警等。
  • sia-gateway-admin-buildcomponent是網(wǎng)關(guān)管理端組件集,包括:admin、stream、service、synchspeed、monitor;管理端部署單個節(jié)點即可(目前不支持集群)。
  • sia-gateway-buildcomponent為網(wǎng)關(guān)Core組件,可以按業(yè)務(wù)線分組,組內(nèi)以單節(jié)點或集群方式部署。

5.3 Vmware方式部署

1)后端部署

unzip gateway_admin_1.0.zip

cd /gatewayadmin/bin

chmod +x *.sh 

#啟動網(wǎng)關(guān)管理服務(wù),包括:admin、stream、service、synchspeed、monitor。
sh onekey_start.sh

---------------------------------------------------
unzip gateway_1.0.zip

cd /gateway/bin

chmod +x *.sh 

#啟動網(wǎng)關(guān)Core服務(wù)
sh start_gateway_test.sh

2)前端部署

  • 修改前端site-map.js

SIA-GateWay之API網(wǎng)關(guān)安裝部署指南

  • nginx的代理配置,進(jìn)入nginx的目錄下nginx.conf,添加如下配置:

        upstream apigateway.open.location1 { 
           #### sia-gateway-admin服務(wù)IP
          server *******:8090 ; 
        }
        server {
             # nginx 監(jiān)聽端口
            listen       18086;
            server_name  localhost;
            access_log  logs/host.access.log  main;
            #access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G"  main;
            location / {
                #root   html;
                #index  index.html index.htm;
                root  /app/jar/ROOT/dist;
                index  index.html index.htm;
            }
            # 后端服務(wù)location 
            location ^~ /vv1/  {
                    proxy_pass http://apigateway.open.location1/;  
                    proxy_set_header   Host  $host; 
                    proxy_set_header   X-Real-IP $http_x_forwarded_for; 
                    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for; 
                    proxy_http_version 1.1;
            }
            error_page   500 502 503 504  /50xcn.html;
            location = /50xcn.html {
                root   html/error_page;
                index 50xcn.html;
            }
            location /check_status {
                vhost_traffic_status_display;
                vhost_traffic_status_display_format json;
            }
        }
  • 重啟nginx

    #校驗配置是否正確
    ./nginx -t
    
    # 重新啟動
    ./nginx -s reload
    

5.4 Docker 鏡像方式部署

說明:如果docker環(huán)境和編譯環(huán)境是在同一個操作系統(tǒng)上,可直接執(zhí)行以下步驟;反之,需要先將以下文件按原目錄結(jié)構(gòu)上傳docker環(huán)境所在服務(wù)器

  • /sia-gateway/sia-gateway-admin-buildcomponent/target/gateway_admin_1.0.zip
  • /sia-gateway/sia-gateway-buildcomponent/target/gateway_1.0.zip
  • /sia-gateway/sia-gateway-admin-display/dist/
  • /sia-gateway/third-libary
  • /sia-gateway/build.sh
  • /sia-gateway/docker-start.sh
  • /sia-gateway/docker-run.sh
  • /sia-gateway/Dockerfile

步驟:

1)配置:修改site-map.js,位置:/dist/static/site-map.js

        /**
         * vmware部署: 127.0.0.1 ----> nginx的ip地址
         * docker鏡像部署: 127.0.0.1 ----> docker容器的宿主機(jī)ip
         */
        'CESHI_API_HOST': '127.0.0.1:18086/vv1',

        /**
         * 127.0.0.1 ----> kibana的ip地址
         */
        'CESHI_API_HOST_LOG': '127.0.0.1:5601'

2)下載centos基礎(chǔ)鏡像,如果已經(jīng)下載,此步忽略。

3)修改Dockerfile,FROM <font color='red'>鏡像名 : 版本號</font>

SIA-GateWay之API網(wǎng)關(guān)安裝部署指南

4)配置yum源,如果部署機(jī)器能夠使用阿里yum源,此步忽略。

將yum源文件名稱修改成 CentOS-Base.repo,并替換到/sia-gateway/third-libary/下

5)構(gòu)建鏡像,并啟動容器和服務(wù)

    # 構(gòu)建鏡像
    cd /sia-gateway/ 

    # 授權(quán)
    chmod +x *.sh

    # 構(gòu)建鏡像
    sh docker-build.sh

    # 啟動容器和服務(wù)
    sh docker-run.sh

    # 查看容器是否啟動成功
    docker ps 

    # 進(jìn)入容器查看服務(wù)運行情況
    docker exec -it gateway-test:v1 bash

訪問地址: http://宿主機(jī)IP:18086/

SIA-GateWay之API網(wǎng)關(guān)安裝部署指南

SIA-GateWay之API網(wǎng)關(guān)安裝部署指南

說明:

  • Docker鏡像部署方式是我們?yōu)榉奖汩_發(fā)者簡單、快速地基于docker環(huán)境搭建網(wǎng)關(guān)系統(tǒng)而提供的一種ALL-IN-ONE形式的網(wǎng)關(guān)部署Demo,即網(wǎng)關(guān)監(jiān)控服務(wù)、預(yù)警、網(wǎng)關(guān)核心節(jié)點等都構(gòu)建在一個docker鏡像中;開發(fā)者可以根據(jù)開發(fā)環(huán)境條件來靈活選擇部署方案,推薦使用vmware+docker鏡像部署方式,即將網(wǎng)關(guān)管理端服務(wù)部署在vmware上,網(wǎng)關(guān)核心節(jié)點部署在docker環(huán)境中。

SIA相關(guān)開源產(chǎn)品鏈接

  • 微服務(wù)任務(wù)調(diào)度框架:sia-task:https://github.com/siaorg/sia-task
  • 微服務(wù)路由網(wǎng)關(guān):sia-gateway
    :https://github.com/siaorg/sia-gateway
  • Rabbitmq隊列服務(wù)PLUS:sia-rabbitmq-plus:https://github.com/siaorg/sia-rabbitmq-plus

來源:宜信技術(shù)學(xué)院

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI