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 //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>//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.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/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://github.com/siaorg/sia-task 微服务路由网关:sia-gateway ://github.com/siaorg/sia-gateway Rabbitmq队列服务PLUS:sia-rabbitmq-plus://github.com/siaorg/sia-rabbitmq-plus 来源:宜信技术学院
转载自://www.cnblogs.com/yixinjishu/p/11506295.html