首页 > 其他分享 >5分钟部署 Apinto 开源网关

5分钟部署 Apinto 开源网关

时间:2023-06-05 17:32:24浏览次数:73  
标签:网关 apinto 0.1 mysql redis cluster 开源 Apinto MYSQL

 Apinto 的开源网关符合我的需求,下面我将演示如何部署这样一个开源网关。


Apinto功能架构图

5分钟部署 Apinto 开源网关_redis

开始部署

部署资源

设备推荐配置

设备数量

部署对象

4核8G,250G磁盘空间,2.5GHz

1

控制台程序、Mysql数据库、Redis数据库

4核8G,250G磁盘空间,2.5GHz

2

网关节点

部署架构

5分钟部署 Apinto 开源网关_开源网关_02

控制台程序、mysql数据库、redis数据库建议安装在一台服务器,Apinto节点原则上一台服务器部署一个节点,多个Apinto节点组成一个Apinto集群。

控制台一键部署

此处使用docker-compose进行一键化部署,因此在部署前,服务器应该已经安装好docker 1.13 及其以上版本,并且安装了docker-compose。

  • Docker安装教程:https://www.runoob.com/docker/ubuntu-docker-install.html
  • Docker-Compose安装教程:https://www.runoob.com/docker/docker-compose.html

1、编辑一键部署文件

(1)编辑docker-compose.yml文件

vi docker-compose.yml

(2)修改文件配置

version: '3'
services:
  mysql:
    image: mysql:5.7.21
    privileged: true
    restart: always
    container_name: apinto_mysql
    hostname: apinto_mysql
    ports:
      - "33306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD={MYSQL_PWD}
      - MYSQL_DATABASE=apinto
    volumes:
      - /var/lib/apinto/mysql:/var/lib/mysql
    networks:
      - apinto
  apinto-dashboard:
    image: eolinker/apinto-dashboard
    container_name: apinto-dashboard
    privileged: true
    restart: always
    networks:
      - apinto
    ports:
      - "18080:8080"
    depends_on:
      - mysql
      - redis_cluster
    environment:
      - MYSQL_USER_NAME=root
      - MYSQL_PWD={MYSQL_PWD}
      - MYSQL_IP=apinto_mysql
      - MYSQL_PORT=3306                 #mysql端口
      - MYSQL_DB="apinto"
      - ERROR_DIR=/apinto-dashboard/work/logs  # 日志放置目录
      - ERROR_FILE_NAME=error.log          # 错误日志文件名
      - ERROR_LOG_LEVEL=info               # 错误日志等级,可选:panic,fatal,error,warning,info,debug,trace 不填或者非法则为info
      - ERROR_EXPIRE=7d                    # 错误日志过期时间,默认单位为天,d|天,h|小时, 不合法配置默认为7d
      - ERROR_PERIOD=day                  # 错误日志切割周期,仅支持day、hour
      - REDIS_ADDR=172.100.0.1:7201,172.100.0.1:7202,172.100.0.1:7203,172.100.0.1:7204,172.100.0.1:7205,172.100.0.1:7206 #Redis集群地址 多个用,隔开
      - REDIS_PWD={REDIS_PWD}                         # Redis密码
    volumes:
      - /var/log/apinto/apinto-dashboard/work:/apinto-dashboard/work   #挂载log到主机目录
  redis_cluster:
    container_name: redis_cluster
    image: eolinker/cluster-redis:6.2.7
    hostname: redis_cluster
    privileged: true
    restart: always
    environment:
      - REDIS_PWD={REDIS_PWD}
      - PORT=7201
      - HOST={HOST}
    volumes: 
      - /var/lib/apinto/redis-cluster/data:/usr/local/cluster_redis/data
    network_mode: host
networks:
  apinto:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.100.0.0/24

上述配置中,使用 "{}" 包裹的均为变量,相关变量说明如下:

  • MYSQL_PWD:mysql数据库root用户初始化密码
  • REDIS_PWD:redis密码
  • HOST:Redis广播IP,可设置宿主机的局域网IP/外网IP,建议此处设置宿主机的局域网IP。

查看宿主机IP方法如下:

ip route

执行后得到下列IP列表,从下表可以看到,宿主机默认局域网ip172.18.31.253

5分钟部署 Apinto 开源网关_docker_03

替换后配置示例如下:

version: '3'
services:
  mysql:
    image: mysql:5.7.21
    privileged: true
    restart: always
    container_name: apinto_mysql
    hostname: apinto_mysql
    ports:
      - "33306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=apinto
    volumes:
      - /var/lib/apinto/mysql:/var/lib/mysql
    networks:
      - apinto
  apinto-dashboard:
    image: eolinker/apinto-dashboard
    container_name: apinto-dashboard
    privileged: true
    restart: always
    networks:
      - apinto
    ports:
      - "18080:8080"
    depends_on:
      - mysql
      - redis_cluster
    environment:
      - MYSQL_USER_NAME=root
      - MYSQL_PWD=123456
      - MYSQL_IP=apinto_mysql
      - MYSQL_PORT=3306                 #mysql端口
      - MYSQL_DB="apinto"
      - ERROR_DIR=/apinto-dashboard/work/logs  # 日志放置目录
      - ERROR_FILE_NAME=error.log          # 错误日志文件名
      - ERROR_LOG_LEVEL=info               # 错误日志等级,可选:panic,fatal,error,warning,info,debug,trace 不填或者非法则为info
      - ERROR_EXPIRE=7d                    # 错误日志过期时间,默认单位为天,d|天,h|小时, 不合法配置默认为7d
      - ERROR_PERIOD=day                  # 错误日志切割周期,仅支持day、hour
      - REDIS_ADDR=172.100.0.1:7201,172.100.0.1:7202,172.100.0.1:7203,172.100.0.1:7204,172.100.0.1:7205,172.100.0.1:7206 #Redis集群地址 多个用,隔开
      - REDIS_PWD=123456                         # Redis密码
    volumes:
      - /var/log/apinto/apinto-dashboard/work:/apinto-dashboard/work   #挂载log到主机目录
  redis_cluster:
    container_name: redis_cluster
    image: eolinker/cluster-redis:6.2.7
    hostname: redis_cluster
    privileged: true
    restart: always
    environment:
      - REDIS_PWD=123456
      - PORT=7201
      - HOST=172.18.31.253
    volumes: 
      - /var/lib/apinto/redis-cluster/data:/usr/local/cluster_redis/data
    network_mode: host
networks:
  apinto:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.100.0.0/24

2、部署控制台

docker-compose.yml文件所在目录下执行下列命令,即可一键完成部署。

docker-compose up -d

部署完成结果如下图

5分钟部署 Apinto 开源网关_mysql_04

部署节点

节点提供Docker部署和安装包部署两种部署方式,这两种部署方式都能快速让Apinto节点在您的服务器上运行起来。

安装包部署

Apinto安装包可从https://github.com/eolinker/apinto/releases/中获取,Apinto支持在arm64、amd64架构上运行。

  1. 下载安装包并解压(此处以v0.12.4版本的安装包示例)
wget https://github.com/eolinker/apinto/releases/download/v0.12.4/apinto_v0.12.4_linux_amd64.tar.gz && tar -zxvf apinto_v0.12.4_linux_amd64.tar.gz && cd apinto

请根据需要下载对应架构及系统的安装包,安装包下载请点击跳转


  1. 安装网关:
./install.sh install

执行该步骤将会生成配置文件/etc/apinto/apinto.yml/etc/apinto/config.yml,可根据需要修改。


  1. 启动网关:
apinto start

Docker部署

容器有两个可挂载目录和一个可挂载配置文件:

  • /var/lib/apinto: 数据目录
#目录结构如下
cluster  member
/extends  #存放扩展
  • /var/log/apinto: 系统日志目录
#目录结构如下
error.log #日志文件
  • 注意:系统日志文件默认日志过期时间为7天,每天生成新的日志文件,错误日志等级为error。
  • 若要修改系统日志配置,可以通过修改/apinto/apinto.yml实现。apinto.yml相关文档点此进行跳转。
  • /etc/apinto/config.yml: 程序运行配置文件
version: 2
#certificate: # 证书存放根目录
#  dir: /etc/apinto/cert
client:
  #advertise_urls: # open api 服务的广播地址
  #- http://127.0.0.1:9400
  listen_urls: # open api 服务的监听地址
    - http://0.0.0.0:9400
  #certificate:  # 证书配置,允许使用ip的自签证书
  #  - cert: server.pem
  #    key: server.key
gateway:
  #advertise_urls: # 转发服务的广播地址
  #- http://127.0.0.1:9400
  listen_urls: # 转发服务的监听地址
    - https://0.0.0.0:8099
    - http://0.0.0.0:8099
peer: # 集群间节点通信配置信息
  listen_urls: # 节点监听地址
    - http://0.0.0.0:9401
  #advertise_urls: # 节点通信广播地址
  # - http://127.0.0.1:9400
  #certificate:  # 证书配置,允许使用ip的自签证书
  #  - cert: server.pem
  #    key: server.key

该文件用于配置网关的路由监听端口、openAPI监听端口等信息。

默认路由监听端口为8099,openAPI监听端口为9400。

备注:config.yml文件内容参考点此跳转

容器运行示例

docker run -td  -p 8099:8099 -p 9400:9400 \
-v /data/apinto/data-dir:/var/lib/apinto \
-v /data/apinto/log-dir:/var/log/apinto \
-v /data/apinto/config-dir/config.yml:/etc/apinto/config.yml \
--name=apinto_node  eolinker/apinto-gateway:latest


关于 Apinto 

Apinto是一款高性能、可扩展、易维护的API网关。


Apinto网关基于GO语言模块化开发,5分钟极速部署,配置简单、易于维护,支持集群与动态扩容,企业级开箱即用。Apinto除了提供丰富的网关插件外,还将提供监控告警、用户角色等企业插件,同时支持自定义网关插件和可扩展企业插件,满足我们企业的定制化需求。


Apinto支持代理外部流量,转发给内部服务,也支持内部服务之间的通信代理。


标签:网关,apinto,0.1,mysql,redis,cluster,开源,Apinto,MYSQL
From: https://blog.51cto.com/u_15953328/6418137

相关文章

  • 可观测性革命 - 揭秘OpenObserve开源高性能云原生平台
    简介OpenObserve是一个开源的云原生可观测性平台,与Elasticsearch相比,存储成本降低了约140倍(实际结果可能因测试数据而有所不同),测试用例包括真实的日志数据,其显著降低运营成本,并提高了易用性。它可以扩展到PB级别的数据量,具有很高的性能,您晚上可以睡得更好。如果您正在寻找......
  • 常用的开源自定义表单有哪几大优势特点?
    当前,办公已经进入流程化和自动化的阶段,要想跟随着社会发展,引用开源自定义表单工具可以使办公协作效率得到快速提升,它的灵活、便捷、易操作等特点,使得该表单工具深受当今职场的喜爱,是做好数据管理,提升办公表单制作效率和质量的得力助手。今天这篇文章就与大家一起分享常用的开源自......
  • 通用陪玩约玩交友系统APP开发分享 开源
    陪玩简介陪玩系统适用:语音社交聊天,美女、大神约玩、聊天约玩、游戏陪玩、一对一语音连麦聊天交友、多人语音连麦聊天、婚恋相亲交友、同城交友、约会恋爱、利奥塔社交app、自动打招呼等...具体详情点击此处###【功能详情】首页├─轮播广告|├─后台设置图片及图片链接......
  • linux网关和dns配置配置
    要更改Linux的默认网关,可以使用route命令或ip命令来完成。下面是使用这两种方法的步骤:使用route命令:打开终端窗口。输入以下命令查看当前的路由表:route-n。根据输出,找到默认网关的目标是"0.0.0.0"的行。记下当前默认网关的IP地址和网络接口名称(通常是eth0或enp0sX等)。输入......
  • day08-SpringCloud Gateway-服务网关
    SpringCloudGateway-服务网关1.Gateway介绍1.1引出问题没有使用网关服务时:使用网关服务后:1.2Gateway网络拓扑图1.3Gateway是什么官网:SpringCloudGatewayGateway是Spring生态系统之上构建的API网关服务,基于Spring、SpringBoot和ProjectReactor等技术Gateway旨在......
  • 商城系统比较(三款不错的java开源商城系统推荐)和其他推荐
    今天给大家分享三套github上优质的商城开源项目,排名不分先后。1、newbee-mall(新蜂商城)仓库地址:https://github.com/newbee-ltd/newbee-mall特点:springboot开发,主要针对pc端,代码设计非常简洁,没有过多的分层,非常适合初学者学习。 2、macrozheng/mall(没有中文名,不太好记)仓库地......
  • 如何快速测试一个开源应用
    有的时候想分享一个开源应用给朋友分享,虽然自己云服务器,但是上面一些有一些生产应用,不方便再安装其他应用。这时,可以考虑选用三丰的云服务器 ,虽然刚开始免费云服务器的免费时间只有24小时,但是作为开源应用的测试分享基本足够了。 上面快速安装一个php8测试一下,默认没有端口限......
  • 推荐 7 款类似Google Analytics 的开源程序
    GoogleAnalytics我想大家应该都不会太陌生,它是Google提供的一个优秀Web分析数据服务,是最广泛使用的网站统计服务,能生成网站流量和来源详细统计数据。但GoogleAnalytics的最大缺点是它被Google控制,对很多人来说,这一点让他们非常不自在。而且GoogleAnalytics不是一个开源的......
  • 【iOS】GitHub上最受欢迎的iOS开源项目(二)
    “每一次的改变总意味着新的开始。”这句话用在iOS上可谓是再合适不过的了。GitHub上的iOS开源项目数不胜数,iOS每一次的改变,总会引发iOS开源项目的演变,从iOS1.x到如今的iOS7,有的项目已经被弃用,即使曾经的它很受开发者喜爱,有的项目则继续发扬光大,新项目更是层出不穷。在本文中,我们......
  • Knowledgeroot 开源知识管理系统简要介绍
    [url]http://blog.sina.com.cn/s/blog_701dfa430101hsyt.html[/url][color=red][b]Knowledgeroot[/b][/color]开源知识管理系统(KMS)官方网站:Knowledgeroot.org-当前版本:version:1.0.3Knowledgeroot可用于文档管理,知识库管理。1.基于php开发,支持lin......