写点什么

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

评论

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

最近看了两本书:The Rules of Life 和 Make Big Happen

霍太稳@极客邦科技

创业 团队管理 自我管理

亚马逊云 AWS LightSail 搭建高性能 LNMP 环境并安全部署 Wordpress

SnowHide雪诺海德

nginx Wordpress 部署 SELinux 安全上下文配置 亚马逊云 AWS Lightsail 安全

一个独立开发者,他是如何做到月入 20 万的?

非著名程序员

程序员 独立开发者 副业赚钱 开发者 程序人生

聊聊:Python

谢烟客

Python 人工智能 编程

浅谈数据中台

数据社

大数据 数据中台 数据仓库

一文讲清楚 MySQL 事务隔离级别和实现原理,开发人员必备知识点

古时的风筝

MySQL 数据库 事务隔离级别 mysql事务 数据库事务

微服务架构深度解析与最佳实践-第二部分

kimmking

微服务 最佳实践 深度解析 高可用

平均响应1000ms到200ms,PHP和Go那家强?

拖地先生

php 架构 性能优化 后台开发 运维

程序员职业生涯的八点感想

池建强

程序员 职业

求稳不得

孙苏勇

职业 发展 职场

一个运营经理人的工作两周年总结

霍太稳@极客邦科技

高效工作 身心健康 项目管理 自我管理

数据分析师应该了解的数据湖

数据社

大数据 数据仓库 数据湖 数据分析

微服务架构深度解析与最佳实践 - 第七部分

kimmking

微服务 最佳实践 深度解析 高可用

微服务架构深度解析与最佳实践(全篇汇总)

kimmking

微服务 最佳实践 深度解析 高可用

归去来兮:递归

曲镇

算法

微服务架构深度解析与最佳实践-第一部分

kimmking

微服务 最佳实践 深度解析 高可用

凡事必先骑上虎背

Steve

学习 态度 方法论

微服务架构深度解析与最佳实践 - 第五部分

kimmking

微服务 最佳实践 深度解析 高可用

越是困难,越是要做有分析判断能力的人

霍太稳@极客邦科技

创业 团队管理 个人成长

小程序的当下和未来可能 | GMTC.2019深圳站演讲文稿

崔红保

小程序 uni-app

微服务架构深度解析与最佳实践 - 第三部分

kimmking

微服务 最佳实践 深度解析 高可用

微服务架构深度解析与最佳实践 - 第四部分

kimmking

微服务 最佳实践 深度解析 高可用

微服务架构深度解析与最佳实践 - 第六部分

kimmking

微服务 最佳实践 深度解析 高可用

2019 年

贾献华

2020 2019 总结 日历 计划

阿里笔记之数据模型

迹_Jason

大数据

申请鲲鹏920测试机试水+编译nginx

草宝虫

nginx 鲲鹏920 centos7 armv8

【译】Rust 开发者的2019

WasmEdge

程序员 rust

两边夹的应用

孙苏勇

算法 积水问题 两边夹

两边夹的应用二

孙苏勇

算法 两边夹 重排序 函数式接口 Lambda

你不是迷茫,只是缺乏目标

Steve

学习 身心健康 方法 自我管理

黄金思维圈,养成透过现象看本质的能力

非著名程序员

读书笔记 程序员 程序人生 提升认知

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