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

来源:宜信技术学院

原文地址:https://www.cnblogs.com/yixinjishu/p/11506295.html

时间: 2024-10-14 02:39:39

SIA-GateWay之API网关安装部署指南的相关文章

Kong api 网关 安装简单应用

Kong是一个可伸缩的开源API层(也称为API网关或API中间件).Kong最初是由Kong Inc.(前身为Mashape)建造的,用于为其API市场提供超过15000个微服务,每月产生数十亿个请求. 在经过实战检验的NGINX的支持下,该公司专注于高性能,在2015年成为开源平台.在积极的发展下,Kong现在已被用于从创业公司到大型企业和政府部门的数百个组织的生产,包括:<纽约时报> 支持 权限控制,安全,负载均衡,请求分发,监控,限流 等等. github : docker安装 :ht

Openstack安装部署指南翻译系列 之 说明(Pike版本官网翻译)

从部署实践来看,部署工作有两大困难,一个是架构设计,一个是排查错误.其中,当部署过程中出现错误,需要排查的时候,如果不了解基础的系统结构原理和基础的安装步骤,是很难定位和解决问题的. 现在Openstack的部署有很多可选项,主要有: 1)根据社区官网最基础的安装文档根据设计对每一个service组件进行安装,这种安装方式最基础,全手工: 2)使用Mirantis公司的Fuel工具进行部署.这种部署方式非常高效,界面友好,Fuel工具真正实现了一键部署,只要设计好网络和功能节点分布,一键部署完成

Openstack 安装部署指南翻译系列 之 Keystone服务安装(Identity)

OpenStack系统由分开安装的几个关键服务组成.这些服务可根据其他云需求一起工作,包括计算(Compute),身份(Identity),网络(Networking),镜像(Image),块存储(Block Storage),对象存储(Object Storage),计量(Telemetry),编排(Orchestration)和数据库(Database)服务.可以单独安装任何这些项目,并将其配置为独立的或连接的实体. 本节介绍如何在控制器节点上安装和配置OpenStack Identity服

Openstack 安装部署指南翻译系列 之 Glance服务安装(Image)

1.1.1.1. ance服务安装(Image) 1.1.1.1.1. 镜像服务概述 镜像服务(Glance)使用户能够发现,注册和检索虚拟机镜像.它提供了一个 REST API,可让您查询虚拟机镜像元数据并检索实际镜像.可以存储通过Image Service在各种位置(从简单的文件系统到像OpenStack Object Storage这样的对象存储系统)提供的虚拟机镜像. 重要:为了简单起见,本指南介绍如何配置Image服务以使用file后端,后端上传并存储在托管Image服务的控制器节点上

Openstack 安装部署指南翻译系列 之 环境配置

1.1.1. 环境配置 为了最大限度地减少混乱并为OpenStack提供更多资源,建议最少安装Linux发行版.此外,必须在每个节点上安装64位版本的发行版. 环境选项主要包括以下几个部分: l 安全 l 主机网络 l 网络时间协议(NTP) l OpenStack包 l SQL数据库 l 消息队列 l Memcached 1.1.1.1. 安全 OpenStack服务支持各种安全方法,包括密码,策略和加密.另外,包括数据库服务器和消息代理在内的支持服务支持密码安全性. 为了简化安装过程,本指南

Openstack 安装部署指南翻译系列 之 Manila服务安装(Share Storage)

1.1.1.1. Manila服务安装(Share Storage) 1.1.1.1.1. 服务概述 OpenStack共享文件系统服务(manila)为虚拟机提供文件存储.共享文件系统服务提供了一个管理和配置文件共享的集合.该服务还支持共享类型的管理以及支持共享快照,前提是需要驱动程序支持. 共享文件系统服务由以下组件组成: manila-api 验证请求并将其路由到共享文件系统服务的WSGI应用程序. manila-data 一个独立的服务,其目的是处理数据操作,如复制,共享迁移或备份. m

Openstack 安装部署指南翻译系列 之 Neutron服务安装(Networking)

1.1.1.1. Neutron服务安装(Networking) 本章介绍如何使用提供商网络或自助服务网络选项安装和配置网络服务(Neutron). OpenStack Networking(Neutron)允许您创建并附加由其他OpenStack服务管理的接口设备到网络.可以实现插件以适应不同的网络设备和软件,为OpenStack架构和部署提供灵活性. 1.1.1.1.1. 网络服务概述 它包括以下组件: 2 neutron-server 接受并将API请求路由到相应的OpenStack Ne

Openstack 安装部署指南翻译系列 之 Cinder服务安装(Block Storage)

1.1.1.1. Cinder服务安装(Block Storage) 块存储服务(cinder)为访客实例提供块存储设备.存储设置方法由块存储驱动程序确定,或者在多后端配置的情况下确定驱动程序.有各种可用的驱动程序:NAS / SAN,NFS,iSCSI,Ceph等. 块存储API和调度器服务通常在控制器节点上运行.根据使用的驱动程序,卷服务可以在控制器节点,计算节点或独立存储节点上运行. 本节介绍如何为块存储服务安装和配置存储节点.为了简单起见,此配置引用一个具有空的本地块存储设备的存储节点.

Openstack 安装部署指南翻译系列 之 启动一个实例

本节创建必要的虚拟网络以支持启动实例.网络选项1包括一个提供者provider(external)网络,一个实例使用它.网络选项2包括一个提供商provider网络,一个实例使用它,一个自助服务(private)网络与一个使用它的实例.本节中的说明使用控制器节点上的命令行界面(CLI)工具.但是,可以按照安装工具的任何主机上的说明进行操作.有关CLI工具的更多信息,请参阅Pike的 OpenStackClient文档.要使用仪表板(dashboard),请参阅仪表板(dashboard)用户文档