SIA-GATEWAY 是基于 SpringCloud 微服务生态体系下开发的一个分布式微服务网关系统。具备简单易用、可视化、高可扩展、高可用性等特征,提供云原生、完整及成熟的接入服务解决方案。
1、 环境
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 网关数据库”
MySQL 的安装和配置详见 MySQL 官方文档
请下载项目源码并解压,获取 “API 网关数据库初始化 SQL 脚本” 并执行即可。
“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
复制代码
1568180738404086144.png
1568180754775042222.png
1568180772765099838.png
1568180796668076945.png
1568180807025031991.png
1568180821285079014.png
1568180829206002677.png
1568180838416035851.png
说明:spring.application.name 为网关组名称,开发者可以修改此属性,搭建新的网关组
5 构建部署项目
5.1 编译项目
如果已经正确进行上述配置,可将项目编译打包部署。
操作步骤:
cd sia-gateway
chmod +x *.sh
sh build.sh
复制代码
1568180868946014405.png
1568180880126079314.png
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
复制代码
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
说明:
SIA 相关开源产品链接
本文转载自宜信技术学院网站。
原文链接:http://college.creditease.cn/detail/298
评论