时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

SIA-GateWay 之 API 网关安装部署指南

  • 2020-02-07
  • 本文字数:3668 字

    阅读完需:约 12 分钟

SIA-GateWay之API网关安装部署指南

SIA-GATEWAY 是基于 SpringCloud 微服务生态体系下开发的一个分布式微服务网关系统。具备简单易用、可视化、高可扩展、高可用性等特征,提供云原生、完整及成熟的接入服务解决方案。

1、 环境

  • 编译环境

  • Maven3+

  • nodejs

  • Jdk1.8+

  • 运行时第三方依赖

  • Mysql5.6+

  • elasticsearch 5.5.2

  • kibana-5.5.2

  • kafka 2.12-2.0.0

  • redis 3.2.11

  • eureka-server

  • 运行环境

  • 64bit OS,Linux/Mac/Windows/docker

  • JDK1.8+

2、源码下载

git clone https://github.com/siaorg/sia-gateway.git  
复制代码


  • 源码结构如下:


.  ├── sia-gateway-admin-buildcomponent  网关admin组件集合  │   ├── sia-gateway-admin             网关admin监控系统组件  │   ├── sia-gateway-synchspeed        网关对下游服务实时感知组件  │   ├── sia-gateway-stream            网关日志组件  │   ├── sia-gateway-service           网关系统辅助组件  │   ├── sia-gateway-monitor           网关监控、日志组件  │   │    ├── sia-gateway-reactive      │   │    ├── sia-gateway-messaging    基础依赖   │   │    ├── sia-gateway-sink  │   │    ├── sia-gateway-esclient  │   │    ├── sia-gateway-base  ├── sia-gateway-admin-display         网关系统前端代码  ├── sia-gateway-buildcomponent        网关core-buildcomponent  │   ├── sia-gateway-core              网关Core节点  │   │   ├── sia-gateway-base  │   │   ├── sia-gateway-messaging     基础依赖  │   │   ├── sia-gateway-reactive  │   │   ├── sia-gateway-template  
复制代码

3、 初始化“API 网关数据库”

  1. MySQL 的安装和配置详见 MySQL 官方文档

  2. 请下载项目源码并解压,获取 “API 网关数据库初始化 SQL 脚本” 并执行即可。

  3. “API 网关数据库初始化 SQL 脚本” 位置为:


/sia-gateway/sia-gateway-admin/src/main/resources/db/gateway_admin.sql  
复制代码

4、 配置“网关系统”

网关配置文件地址:


\# 网关admin中心conf  /sia-gateway/sia-gateway-admin-buildcomponent/config/gateway_admin_test.yml  
\# 网关监控服务conf /sia-gateway/sia-gateway-admin-buildcomponent/config/gateway_monitor_test.yml
\# 网关辅助节点conf /sia-gateway/sia-gateway-admin-buildcomponent/config/gateway_service_test.yml
\# 网关日志服务conf /sia-gateway/sia-gateway-admin-buildcomponent/config/gateway_stream_test.yml
\# 网关实时感知服务conf /sia-gateway/sia-gateway-admin-buildcomponent/config/gateway_synchspeed_test.yml
\# 网关核心节点conf /sia-gateway/sia-gateway-buildcomponent/config/gateway_test.yml
复制代码


  • gateway_admin_test.yml




1568180738404086144.png


1568180754775042222.png


  • gateway_service_test.yml



1568180772765099838.png


  • gateway_stream_test.yml


  • 1568180787676003914.png

  • gateway_synchspeed_test.yml



1568180796668076945.png


  • gateway_monitor_test.yml



1568180807025031991.png


  • gateway_test.yml





1568180821285079014.png


1568180829206002677.png


1568180838416035851.png


说明:spring.application.name 为网关组名称,开发者可以修改此属性,搭建新的网关组


  • maven 仓库地址配置







复制代码

5 构建部署项目

5.1 编译项目

  • 如果已经正确进行上述配置,可将项目编译打包部署。

  • 操作步骤:


    cd sia-gateway  
chmod +x *.sh
sh build.sh
复制代码


  • 打包成功后,会出现以下标注文件。

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



1568180868946014405.png


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



1568180880126079314.png


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



1568180886926034962.png


注:前端打包需要用到 nodeJs,如未安装,可请参考 nodejs安装文档

5.2 部署项目

  • API 网关系统的部署方式为分布式部署集中式管理模式,即网关 Core 节点可以按业务线划分为不同的网关组,网关管理端作为网关的管理中心,供统一的管理界面,用户可在此进行 API、组件、系统基础信息的设置和维护,收集监控日志、生成各种运维管理报表、自动告警等。

  • sia-gateway-admin-buildcomponent 是网关管理端组件集,包括:admin、stream、service、synchspeed、monitor;管理端部署单个节点即可(目前不支持集群)。

  • sia-gateway-buildcomponent 为网关 Core 组件,可以按业务线分组,组内以单节点或集群方式部署。

Vmware 方式部署

  • 后端部署


unzip gateway_admin_1.0.zip  
cd /gatewayadmin/bin
chmod +x *.sh
\#启动网关管理服务,包括:admin、stream、service、synchspeed、monitor。 sh onekey_start.sh
--------------------------------------------------- unzip gateway_1.0.zip
cd /gateway/bin
chmod +x *.sh
\#启动网关Core服务 sh start_gateway_test.sh
复制代码


  • 前端部署

  • 修改前端 site-map.js



1568180902927084606.png


+ nginx的代理配置,进入nginx的目录下nginx.conf,添加如下配置:  
```conf upstream apigateway.open.location1 { \#### sia-gateway-admin服务IP server *******:8090 ; } server { \# nginx 监听端口 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; } \# 后端服务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
```sh \#校验配置是否正确 ./nginx -t
\# 重新启动 ./nginx -s reload
```
复制代码

****

Docker 镜像方式部署

  • 说明:如果 docker 环境和编译环境是在同一个操作系统上,可直接执行以下步骤;反之,需要先将以下文件按原目录结构上传 docker 环境所在服务器。

  • /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容器的宿主机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 基础镜像,如果已经下载,此步忽略。


3)修改 Dockerfile,FROM 镜像名 : 版本号



1568181692583000329.png


4)配置 yum 源,如果部署机器能够使用阿里 yum 源,此步忽略。


将 yum 源文件名称修改成 CentOS-Base.repo,并替换到/sia-gateway/third-libary/下


5)构建镜像,并启动容器和服务


    \# 构建镜像      cd /sia-gateway/   
\# 授权 chmod +x *.sh
\# 构建镜像 sh docker-build.sh
\# 启动容器和服务 sh docker-run.sh
\# 查看容器是否启动成功 docker ps
\# 进入容器查看服务运行情况 docker exec -it gateway-test:v1 bash
复制代码


访问地址: ****http://宿主机IP:18086/


1568181646004081222.png

1568181684715043436.png

说明:

  • Docker 镜像部署方式是我们为方便开发者简单、快速地基于 docker 环境搭建网关系统而提供的一种 ALL-IN-ONE 形式的网关部署 Demo,即网关监控服务、预警、网关核心节点等都构建在一个 docker 镜像中;开发者可以根据开发环境条件来灵活选择部署方案,推荐使用 vmware+docker 镜像部署方式,即将网关管理端服务部署在 vmware 上,网关核心节点部署在 docker 环境中。




SIA 相关开源产品链接



本文转载自宜信技术学院网站。


原文链接:http://college.creditease.cn/detail/298


2020-02-07 20:43977

评论

发布
暂无评论
发现更多内容

财经大课:通货膨胀的逻辑

石云升

学习笔记 财经思维 11月日更

区块链是什么

Rayjun

区块链

工作三原则

ok绷

和12岁小同志搞创客开发:手撕代码,做一款亮度可调节灯

不脱发的程序猿

少儿编程 DIY 智能硬件 创客开发 Arduino

模块五作业

沐风

使用 Java connector 消费 ABAP 系统的函数

汪子熙

Java SAP abap 11月日更

在线等差数列求和计算器

入门小站

工具

CentOS环境下Redis的安装和配置

Empty

redis

DDD是软件设计思维方式的转变

Bruce Talk

领域驱动设计 DDD

20 k8s之持久性存储卷

穿过生命散发芬芳

k8s 11月日更

SAP OData 编程指南

汪子熙

API SAP OData 11月日更

[Pulsar] 使用Partitioned Topic提高吞吐

Zike Yang

Apache Pulsar 11月日更

区块链,不是元宇宙的全部

CECBC

架构训练营 - 模块 4 作业

焦龙

架构实战营

JavaScript 数组方法 slice() 的 5 个示例

devpoint

slice JavaScrip 11月日更

模块五作业

bob

「架构实战营」

区块链新闻编辑部成立,看区块链如何助力新闻传播?

CECBC

Vue进阶(贰零壹):JS合并两个数组方法详解

No Silver Bullet

Vue 数组 11月日更

.NET6新东西--struct优化

喵叔

11月日更

模块四作业

覃飞

linux远程复制文件命令小总结

入门小站

Linux

千万级学生管理系统的考试试卷存储方案设计

波波

「架构实战营」

kafka常用命令

williamcai

kafka

【解析】通证经济的分类及用途

CECBC

Apache Pulsar 与 Kafka 性能比较:延迟性(测试方法)

Apache Pulsar

大数据 kafka 分布式 云原生 Apache Pulsar

如何用JavaScript实现add(1)(2)(3)

空城机

JavaScript 11月日更

30分钟学习go语言

坚果

Go 语言 11月日更

模块四作业

doublechun

「架构实战营」

世界女性科技群落(一):一面喑哑、一面高亢的非洲鼓

脑极体

一些关于原宇宙的思考

Simon

元宇宙 Metaverse

聊聊你眼中的spring的事务是怎么样的?

卢卡多多

spring事务管理 11月日更

SIA-GateWay之API网关安装部署指南_文化 & 方法_SIA_InfoQ精选文章