文档章节

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

宜信技术学院
 宜信技术学院
发布于 09/11 14:16
字数 1586
阅读 502
收藏 4

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/gateway_admin_1.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.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

2)前端部署

  • 修改前端site-map.js

  • nginx的代理配置,进入nginx的目录下nginx.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

    	#校验配置是否正确
    	./nginx -t
    
    	# 重新启动
    	./nginx -s reload
    
    

5.4 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 <font color='red'>镜像名 : 版本号</font>

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相关开源产品链接

来源:宜信技术学院

© 著作权归作者所有

宜信技术学院

宜信技术学院

粉丝 241
博文 140
码字总数 465076
作品 5
东城
私信 提问
加载中

评论(1)

yong230
yong230
部署这么复杂,为何不用springcloud-gateway ?
微服务与网关技术 - SIA-GateWay

一、背景 软件架构,总是在不断的演进中... 把时间退回到二十年之前,当时企业级领域研发主要推崇的还是 C/S 模式,PB、Delphi 这样的开发软件是企业应用开发的主流。随着时间的推移,基于浏...

宜信技术学院
09/05
865
1
Spring Cloud Alibaba迁移指南(四):零代码兼容 Api-Gateway

自 Spring Cloud 官方宣布 Spring Cloud Netflix 进入维护状态后,我们开始制作《Spring Cloud Alibaba迁移指南》系列文章,向开发者提供更多的技术选型方案,并降低迁移过程中的技术难度。 ...

中间件小哥
02/26
0
0
ZABBIX 监控 JBOSS 7.1.1

一 环境 1.1 操作系统 [root@host-xxxsoft]# lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:print......

tacg
2016/10/27
375
1
生产环境-微服务实践架构(springcloud)流程图分享

线上微服务架构图 注: 绘图工具:https://www.processon.com 其他信息: 接口文档管理:,后期转入bootstrap-swagger-ui (其支持自定义http header 等参数)。同时利用yapi来进行跨部门间的...

开源小菜鸟2333
04/11
250
0
eoLinker/Goku-API-Gateway

GoKu API Gateway CE(悟空API网关 开源版) 简介 GoKu API Gateway CE,中文名:悟空API网关(开源版),是国内首个开源go语言API网关,帮助企业进行API服务治理、API性能安全维护,为企业数...

eoLinker
2018/04/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

程序性能checklist

程序性能checklist

Moks角木
昨天
2
0
VUE 计算属性

本文转载于:专业的前端网站▶VUE 计算属性 1、示例代码 <!DOCTYPE html><html lang="zh"> <head> <meta charset="UTF-8" /> <title>vue示例</title> </hea......

前端老手
昨天
2
0
快速搭建LNMT平台和环境部署 Tomcat详解

Tomcat部署的基本概念 1. CATALINA_HOME与CATALINA_BASE分别指什么?     CATALINA_HOME指的是Tomcat的安装目录     bin:\\Tomcat一些脚本存放目录,比如启动脚本startup.bat/start...

网络小虾米
昨天
2
0
float浮动

float浮动 float浮动概念及原理: 文档流:文档流是文档中可显示对象在排列时所占用的位置。 加浮动的元素,会脱离文档流,会沿父容器靠左或靠右排列,如果之前已经有浮动的元素,会挨着浮动...

studywin
昨天
2
0
实战项目-学成在线(一)

之前看的黑马程序员实战项目之一,打算以博客的形式写出来,也让自己重新温习一下。 1、项目背景 略(就是当前这东西很火,我们重点在开发,这些就略过) 2、功能模块 门户,学习中心,教学管...

lianbang_W
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部