写点什么

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:431014

评论

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

对比测评:为什么AI编程工具需要 Rules 能力?

阿里巴巴云原生

阿里云 云原生 通义灵码

YashanDB|客户端字符集与数据库字符集不一致?小心隐性乱码和执行失败!

数据库砖家

数据库

YashanDB|执行 SQL 报 YAS-04110?可能是字段用了保留字!

数据库砖家

数据库

YashanDB|通过 DBLink 访问 Oracle 性能慢?问题分析与优化指南!

数据库砖家

数据库

鸿蒙游戏生态加速:华为小游戏焕新升级,抢滩百亿级市场新机遇

最新动态

PIRF:432 - Performance - Pressure, Precision, Payoff

Echo!!!

English

TiDB 可观测性最佳实践

观测云

TiDB

YashanDB|数据库时间与服务器时间不一致?原因与修复方法详解!

数据库砖家

数据库

被百万人追捧的【旅行救星】为何主动召回?

极客天地

不用Mockito写单元测试?你可能在浪费一半时间

Java随想录

Java 单元测试 Mockito

AI编程工具“幻觉”风险与飞算JavaAl的破局之道

飞算JavaAI开发助手

对比测评:为什么AI编程工具需要 Rules 能力?

阿里云云效

阿里云 云原生 通义灵码

YashanDB|单机升级常见问题与应急处理指南

数据库砖家

数据库

YashanDB|想查表空间使用率?一条 SQL 帮你搞定!

数据库砖家

数据库

YashanDB|YMP 迁移 Oracle 遇到授权不兼容?一招轻松解决!

数据库砖家

数据库

StarRocks 查询优化器深度解析

StarRocks

K8s 灰度发布实战:通过 Ingress 注解轻松实现流量分割与渐进式发布

电子尖叫食人鱼

Kubernetes 容器

企业有远程办公网络需求?试试Ogcloud的SD-WAN方案!

Ogcloud

远程办公 SD-WAN SD-WAN组网 异地组网 远程组网

YashanDB|多表更新遇到 YAS-04344?教你如何正确操作!

数据库砖家

数据库

JMeter、Apipost 与 Postman 的 API 测试对比:为什么 APIPost 是更聪明的选择

数据追梦人

隐私计算技术创新与应用实践|隐语开源社区 Meetup 成都站

隐语SecretFlow

隐私计算 数据隐私计算

蚂蚁数科发布可信数据空间软硬一体解决方案,联合清华大学落地双碳场景

Lily

L3商业化元年,智能驾驶"急刹车"

趣解商业

智能汽车 上海车展 深蓝汽车

YashanDB|如何配置 JDBC 驱动,让 getDatabaseProductName() 返回 Oracle?

数据库砖家

数据库

中国制造的AI穿凿,一场直抵地心的技术远征

脑极体

AI

飞算 JavaAI 助力开发者快速原型验证

飞算JavaAI开发助手

企业SD-WAN组网必看:需要准备哪些设备?

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SD-WAN厂家

IoTDB 广州行 | 4.26 端边云协同的新一代 AI 数据库技术沙龙回顾

Apache IoTDB

程序员如何用AI工具实现“快速验证原型”

飞算JavaAI开发助手

YashanDB|迁移过程中,字符串里的分号导致SQL报错?原因与解决办法来了!

数据库砖家

数据库

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