SIA-GateWay之API网关安装部署指南
SIA-GATEWAY是基于SpringCloud微服务生态体系下开发的一个分布式微服务网关系统。具备简单易用、可视化、高可扩展、高可用性等特征,提供云原生、完整及成熟的接入服务解决方案。本文介绍API网关的安装部署。
一、环境
1.1 编译环境
- 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 运行环境
- 64bit OS,Linux/Mac/Windows/docker
- JDK1.8+
二、源码下载
git clone https://github.com/siaorg/sia-gateway.git
2.1 源码结构如下:
.
├── 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
三、初始化“API网关数据库”
1)MySQL的安装和配置详见MySQL官方文档
2)请下载项目源码并解压,获取 "API网关数据库初始化SQL脚本" 并执行即可。
"API网关数据库初始化SQL脚本" 位置为:
/sia-gateway/sia-gateway-admin/src/main/resources/db/gateway_admin.sql
四、配置“网关系统”
4.1 网关配置文件地址
# 网关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
1)gateway_admin_test.yml


2)gateway_service_test.yml

3)gateway_stream_test.yml 
4)gateway_synchspeed_test.yml

5)gateway_monitor_test.yml

6)gateway_test.yml



说明:spring.application.name为网关组名称,开发者可以修改此属性,搭建新的网关组
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>
五、构建部署项目
5.1 编译项目
1)如果已经正确进行上述配置,可将项目编译打包部署。
2)操作步骤:
   cd sia-gateway
    chmod +x *.sh
    sh build.sh
3)打包成功后,会出现以下标注文件。
- /sia-gateway/sia-gateway-admin-buildcomponent/target/gatewayadmin1.0.zip

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

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

注:前端打包需要用到nodeJs,如未安装,可请参考 nodejs安装文档。
5.2 部署项目
- API网关系统的部署方式为分布式部署集中式管理模式,即网关Core节点可以按业务线划分为不同的网关组,网关管理端作为网关的管理中心,供统一的管理界面,用户可在此进行 API、组件、系统基础信息的设置和维护,收集监控日志、生成各种运维管理报表、自动告警等。
- sia-gateway-admin-buildcomponent是网关管理端组件集,包括:admin、stream、service、synchspeed、monitor;管理端部署单个节点即可(目前不支持集群)。
- sia-gateway-buildcomponent为网关Core组件,可以按业务线分组,组内以单节点或集群方式部署。
5.3 Vmware方式部署
1)后端部署
unzip gateway_admin_1..zip cd /gatewayadmin/bin chmod +x *.sh #启动网关管理服务,包括:admin、stream、service、synchspeed、monitor。
sh onekey_start.sh ---------------------------------------------------
unzip gateway_1..zip cd /gateway/bin chmod +x *.sh #启动网关Core服务
sh start_gateway_test.sh
2)前端部署
- 修改前端site-map.js

- nginx的代理配置,进入nginx的目录下nginx.conf,添加如下配置: - upstream apigateway.open.location1 {
 #### sia-gateway-admin服务IP
 server *******: ;
 }
 server {
 # nginx 监听端口
 listen ;
 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 /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环境和编译环境是在同一个操作系统上,可直接执行以下步骤;反之,需要先将以下文件按原目录结构上传docker环境所在服务器。
- /sia-gateway/sia-gateway-admin-buildcomponent/target/gatewayadmin1.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 镜像名 : 版本号

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/


说明:
- Docker镜像部署方式是我们为方便开发者简单、快速地基于docker环境搭建网关系统而提供的一种ALL-IN-ONE形式的网关部署Demo,即网关监控服务、预警、网关核心节点等都构建在一个docker镜像中;开发者可以根据开发环境条件来灵活选择部署方案,推荐使用vmware+docker镜像部署方式,即将网关管理端服务部署在vmware上,网关核心节点部署在docker环境中。
SIA相关开源产品链接
- 微服务任务调度框架:sia-task:https://github.com/siaorg/sia-task
- 微服务路由网关:sia-gateway:https://github.com/siaorg/sia-gateway
- Rabbitmq队列服务PLUS:sia-rabbitmq-plus:https://github.com/siaorg/sia-rabbitmq-plus
来源:宜信技术学院
SIA-GateWay之API网关安装部署指南的更多相关文章
- .net core Ocelot实现API网关并部署在docker中
		基于Ocelot(http://ocelot.readthedocs.io)搭建的API网关demo 软件以及系统版本: Asp.Net Core 2.2 Ocelot 13.5.0 CentOS ... 
- SpringCloud实战 | 第四篇:SpringCloud整合Gateway实现API网关
		一. 前言 微服务实战系列是基于开源微服务项目 有来商城youlai-mall 版本升级为背景来开展的,本篇则是讲述API网关使用Gateway替代Zuul,有兴趣的朋友可以进去给个star,非常感谢 ... 
- 最新版大数据平台安装部署指南,HDP-2.6.5.0,ambari-2.6.2.0
		一.服务器环境配置 1 系统要求 名称 地址 操作系统 root密码 Master1 10.1.0.30 Centos 7.7 Root@bidsum1 Master2 10.1.0.105 Cent ... 
- ELK+KAFKA安装部署指南
		一.ELK 背景 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如: ... 
- API网关Kong部署和使用文档
		KONG安装使用说明 系统版本:ubuntu14 1.下载安装包 $ wget https://github.com/Mashape/kong/releases/download/0.8.3/kong ... 
- Solr版本安装部署指南
		一.依赖包 1. JDK 1.6以上 2. solr-4.3.0.tgz 3. Tomcat或者jetty(注意,solr包中本身就含有jetty的启动相关内容):apache-tomcat-7 ... 
- HYAppFrame(WinForm框架源代码)安装部署指南
		HYAppFrame是一款基于Win form的应用程序框架,包括serverWeb Service.主程序框架.组织架构.权限控制.菜单导航.基础数据.系统參数.日志管理.定时任务等. 项目地址:h ... 
- 阿里云API网关(7)开发指南-API参考
		网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ... 
- 斗鱼 API 网关演进之路
		2019 年 5 月 11 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙武汉站,斗鱼资深工程师张壮壮在活动上做了< 斗鱼 API 网关演 ... 
随机推荐
- table 表格 细边框 最简单样式
			table 表格细边框的效果实现方法虽然不难,但网上简单有效的方法却很少,在此记录一下 css 样式 /** table 细边框 **/ table{border-collapse: collapse ... 
- java学习-NIO(四)Selector
			这一节我们将探索选择器(selectors).选择器提供选择执行已经就绪的任务的能力,这使得多元 I/O 成为可能.就像在第一章中描述的那样,就绪选择和多元执行使得单线程能够有效率地同时管理多个 I/ ... 
- rtags——node.js+redis实现的标签管理模块
			引言在我们游览网页时,随处可见标签的身影: 进入个人微博主页,可以看到自己/他人的标签,微博系统会推送与你有相同标签的人 游览博文,大多数博文有标签标记,以说明文章主旨,方便搜索和查阅 网上购物,我们 ... 
- 关于 IntelliJ 的 IDEA PyCharm 等更新 2019.2  后中文乱码 的解决方案
			关于IntelliJ 的2019.2 更新后的中文乱码解决方案 设置 备用字体 file -> Setting -> Editor ->Font 由于编程常用英文首选字体font默认 ... 
- Linux常用命令之压缩解压
			压缩是一种通过特定的算法来减小计算机文件大小的机制.这种机制对网络用户是非常有用和高效的,因为它可以减小文件的字节总数,使文件能够通过互联网实现更快传输,此外还可以减少文件的磁盘占用空间.下面简介下z ... 
- 【Vue的路由,SPA概念】
			前言 本章是为了以后实现前端页面的搭建而写的, 重点在于如何实现 单页Web应用 因为相对于以前的传统多页面web,有很大的缺陷. 那么就必须了解一下Vue的路由设置. SPA的概念 总的而言,我们知 ... 
- ABAP:如何等待小数秒数
			WAIT UP TO x SECONDS. 和CALL FUNCTION 'ENQUE_SLEEP'都只能支持整数的秒数(如果是非整数,则四舍五入),如果要WAIT非整数的描述,可以如下写法: 
- if else 深度优化
			一. if else表达式过于复杂 if ((condition1 && condition2 ) || ((condition2 || condition3) && ... 
- oracle  正则表达的使用
			最近遇到有个项目,需要根据文件存储的根目录地址来判断是在云端获取,还是本地获取, 先看下具体有几个不同的根目录: , , 'i') from pmc.designmaterial d 去重关键字:di ... 
- Vue-Router中History模式
			目录 history路由 官方示例 Express中间件 客户端兜底404 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址:<大史住在 ... 
