API网关-Apinto压缩包方式自动化安装配置教程

文章目录

  • 前言
  • 一、Apinto安装教程
    • 1. 复制脚本
    • 2. 增加执行权限
    • 3. 执行脚本
    • 4. Apinto命令
      • 4.1 启动Apinto
      • 4.2 停止Apinto
      • 4.3 重启Apinto
      • 4.4 查看Apinto版本信息
      • 4.5 加入Apinto集群
      • 4.6 离开Apinto集群
      • 4.7 查看Apinto节点信息
    • 5. 卸载Apinto
  • 二、Apserver(Apinto Dashboard V3)安装教程
    • 1. 安装条件
    • 2. 安装mysql
    • 3. 安装redis
    • 4. 复制脚本
    • 5. 增加执行权限
    • 6. 执行脚本
    • 7. 浏览器访问
    • 8. Apserver命令
      • 8.1 启动
      • 8.2 停止
      • 8.3 重启
    • 9. 卸载Apserver
  • 总结


前言

本教程将介绍如何安装和配置Apinto以及Apserver(Apinto Dashboard V3)。Apinto是一个开源的API管理工具,用于帮助团队设计、测试和发布API。而Apserver则是为了提供更便捷的可视化操作界面,方便用户管理和监控API。


一、Apinto安装教程

1. 复制脚本

首先,将以下脚本内容复制并保存为/tmp/install_apinto.sh文件。

#!/bin/bash

# 安装版本
ad_version="0.15.12"
# 安装目录
ad_installDir="/opt/bigdata/apinto"

install() {
  local version=$1
  local installDir=$2

  # 下载地址
  local downloadUrl="https://github.com/eolinker/apinto/releases/download/v${version}/apinto_v${version}_linux_amd64.tar.gz"
  if [ -z "$(command -v wget)" ]; then
    yum -y install wget
    if [ $? -eq 0 ]; then
      echo "wget安装完成"
    else
      echo "wget安装失败,请检查"
      exit 1
    fi
  fi
  if [ ! -d "${installDir}" ]; then
    mkdir -p "${installDir}"
    if [ $? -eq 0 ]; then
      echo "安装目录${installDir}已创建"
    else
      echo "请确保您有足够的权限来创建目录,请增加权限后再次执行"
      exit 1
    fi
  fi
  if [ ! -f "/tmp/apinto_v${version}_linux_amd64.tar.gz" ] ; then
    wget "$downloadUrl" -P /tmp
    if [ $? -eq 0 ]; then
      echo "apinto_v${version}_linux_amd64.tar.gz下载成功"
    else
      echo "apinto_v${version}_linux_amd64.tar.gz下载失败,请重试或手动下载到/tmp目录下再次执行"
      echo "下载地址:$downloadUrl"
      exit 1
    fi
  else
    echo "/tmp/apinto_v${version}_linux_amd64.tar.gz文件已存在"
  fi

  if [ -d "${installDir}/apinto" ]; then
    echo "${installDir}/apinto 已存在,正在删除..."
    rm -rf "${installDir}/apinto"
  fi
  tar -zxvf "/tmp/apinto_v${version}_linux_amd64.tar.gz" -C "${installDir}"
  if [ $? -eq 0 ]; then
    echo "apinto_v${version}_linux_amd64.tar.gz解压成功"
  else
    echo "apinto_v${version}_linux_amd64.tar.gz解压失败,请查看异常信息后重试"
    exit 1
  fi

  cd ${installDir}/apinto && ./install.sh install && apinto start
  if [ $? -eq 0 ]; then
    echo "apinto 安装并启动成功"
  else
    echo "apinto 安装失败,请查看异常信息后重试"
    exit 1
  fi
}

install "$ad_version" "$ad_installDir"

exit 0

2. 增加执行权限

在终端中执行以下命令,为脚本添加执行权限。

chmod a+x /tmp/install_apinto.sh

3. 执行脚本

执行以下命令,运行脚本开始下载、安装和配置Apinto。

/tmp/install_apinto.sh

请等待安装完成,如有异常会有提示。

成功如下图所示:

在这里插入图片描述

4. Apinto命令

4.1 启动Apinto

apinto start

4.2 停止Apinto

apinto stop

4.3 重启Apinto

apinto restart

4.4 查看Apinto版本信息

apinto version

4.5 加入Apinto集群

被加入的节点自动成为领导者,第一次被加入的节点始终是领导者。例如:从192.168.145.103节点执行apinto join --addr=192.168.145.105:9401,则192.168.145.105是集群的领导者。然后再从192.168.145.104执行apinto join --addr=192.168.145.103:9401192.168.145.105依旧是领导者。

apinto join --addr=192.168.145.105:9401

4.6 离开Apinto集群

apinto leave

4.7 查看Apinto节点信息

apinto info

如下图所示,三个节点,一个领导者。
在这里插入图片描述

5. 卸载Apinto

删除对应文件和目录即可。

rm -rf /run/apinto
rm -rf /etc/apinto
rm -rf /var/lib/apinto
rm -rf /var/log/apinto
rm -rf /tmp/apinto
rm -rf /usr/sbin/apinto
rm -rf /opt/bigdata/apinto

二、Apserver(Apinto Dashboard V3)安装教程

1. 安装条件

  • Mysql 5.7.x或以上版本
    • 作用:存储控制台交互配置
  • Redis 5.0-6.2.7版本,且Redis使用Cluster模式启动
    • 作用:控制台缓存数据库、服务治理节点转发缓存数据库
  • InfluxDB 2.x版本
    • 作用:监控时序数据库,监控程序依赖数据库

2. 安装mysql

  • mysql5.7.44自动化安装教程
  • mysql5.7.37自动化安装教程

3. 安装redis

  • redis6.2.7自动化安装教程

4. 复制脚本

首先,将以下脚本内容复制并保存为/tmp/install_apserver.sh文件。

#!/bin/bash

# 安装版本
ad_version="3.3.2"
# 安装目录
ad_installDir="/opt/bigdata/apinto-dashboard"
# mysql设置
mysql_ip='192.168.145.104'
mysql_user='root'
mysql_pw='root'
# Redis扩展集群地址
redis_addr1='192.168.145.105:30001'
redis_addr2='192.168.145.105:30002'
redis_addr3='192.168.145.105:30003'
apserver_port='18080'

configyml="port: ${apserver_port}
mysql:
  user_name: ${mysql_user}
  password: \"${mysql_pw}\"
  ip: ${mysql_ip}
  port: 3306
  db: apinto
error_log:
  dir: work/logs               # 日志放置目录, 仅支持绝对路径, 不填则默认为执行程序上一层目录的work/logs. 若填写的值不为绝对路径,则以上一层目录为相对路径的根目录,比如填写 work/test/logs, 则目录为可执行程序所在目录的 ../work/test/logs
  file_name: error.log         # 错误日志文件名
  log_level: warning            # 错误日志等级,可选:panic,fatal,error,warning,info,debug,trace 不填或者非法则为info
  log_expire: 7d                # 错误日志过期时间,默认单位为天,d|天,h|小时, 不合法配置默认为7d
  log_period: day               # 错误日志切割周期,仅支持day、hour
redis:
  user_name: \"\"
  password: \"\"
  addr:
   - ${redis_addr1}
   - ${redis_addr2}
   - ${redis_addr3}"

install() {
  local version=$1
  local installDir=$2

  mysql -h ${mysql_ip} -P 3306 -u${mysql_user} -p${mysql_pw} -e "CREATE DATABASE IF NOT EXISTS apinto CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
  if [ $? -eq 0 ]; then
    echo "apinto 数据库创建成功"
  else
    echo "apinto 数据库创建失败"
    exit 1
  fi
  # 下载地址
  local downloadUrl="https://github.com/eolinker/apinto-dashboard/releases/download/v${version}/apserver_v${version}_linux_amd64.tar.gz"
  if [ -z "$(command -v wget)" ]; then
    yum -y install wget
    if [ $? -eq 0 ]; then
      echo "wget安装完成"
    else
      echo "wget安装失败,请检查"
      exit 1
    fi
  fi
  if [ ! -d "${installDir}" ]; then
    mkdir -p "${installDir}"
    if [ $? -eq 0 ]; then
      echo "安装目录${installDir}已创建"
    else
      echo "请确保您有足够的权限来创建目录,请增加权限后再次执行"
      exit 1
    fi
  fi
  if [ ! -f "/tmp/apserver_v${version}_linux_amd64.tar.gz" ] ; then
    wget "$downloadUrl" -P /tmp
    if [ $? -eq 0 ]; then
      echo "apserver_v${version}_linux_amd64.tar.gz下载成功"
    else
      echo "apserver_v${version}_linux_amd64.tar.gz下载失败,请重试或手动下载到/tmp目录下再次执行"
      echo "下载地址:$downloadUrl"
      exit 1
    fi
  else
    echo "/tmp/apserver_v${version}_linux_amd64.tar.gz文件已存在"
  fi

  if [ -d "${installDir}/apserver_v${version}" ]; then
    echo "${installDir}/apserver_v${version} 已存在,正在删除..."
    rm -rf "${installDir}/apserver_v${version}"
  fi
  tar -zxvf "/tmp/apserver_v${version}_linux_amd64.tar.gz" -C "${installDir}"
  if [ $? -eq 0 ]; then
    echo "apserver_v${version}_linux_amd64.tar.gz解压成功"
  else
    echo "apserver_v${version}_linux_amd64.tar.gz解压失败,请查看异常信息后重试"
    exit 1
  fi

  cd ${installDir}/apserver_v${version}
  ./install.sh
  cd /usr/local/apserver/apserver_v${version}
  echo "$configyml" > config.yml
  echo "apinto-dashboard 下载、安装、配置完成"
  cd /usr/local/apserver/apserver_v${version} && ./run.sh restart
  if [ $? -eq 0 ]; then
    echo "apinto-dashboard 启动成功"
    echo "浏览器访问:$(ip addr | grep 'inet ' | awk '{print $2}'| tail -n 1 | grep -oP '\d+\.\d+\.\d+\.\d+'):${apserver_port}"
    echo "账号:admin   密码:12345678"
  else
    echo "apinto-dashboard 启动失败,请查看异常信息并解决后再次启动"
    echo "日志放置目录:/usr/local/apserver/apserver_v${version}/work/logs"
  fi
  echo "安装目录:/usr/local/apserver/apserver_v${version}"
  echo "启动apinto-dashboard:cd /usr/local/apserver/apserver_v${version} && ./run.sh start"
  echo "停止apinto-dashboard:cd /usr/local/apserver/apserver_v${version} && ./run.sh stop"
  echo "重启apinto-dashboard:cd /usr/local/apserver/apserver_v${version} && ./run.sh restart"

}

install "$ad_version" "$ad_installDir"

exit 0

5. 增加执行权限

在终端中执行以下命令,为脚本添加执行权限。

chmod a+x /tmp/install_apserver.sh

6. 执行脚本

执行以下命令,运行脚本开始下载、安装和配置Apserver。

echo y | /tmp/install_apserver.sh

请等待安装完成,如有异常会有提示。

成功如下图所示:

在这里插入图片描述

7. 浏览器访问

浏览器输入输出信息中提示的网址进行访问,然后输入账号密码登录,如下图所示。

在这里插入图片描述
在这里插入图片描述

8. Apserver命令

8.1 启动

cd /usr/local/apserver/apserver_v3.3.2
./run.sh start

8.2 停止

cd /usr/local/apserver/apserver_v3.3.2
./run.sh stop

8.3 重启

cd /usr/local/apserver/apserver_v3.3.2
./run.sh restart

9. 卸载Apserver

删除对应文件和目录即可。

cd /usr/local/apserver/apserver_v3.3.2
./run.sh stop
rm -rf /usr/local/apserver

总结

通过这篇教程,我们学习了如何安装和配置apinto 和 apserver。首先,在第一部分中我们详细讲解了 apinto 的安装过程,并提供了相关命令行指令来启动/停止/重启它。接着,在第二部分中我们介绍了 apserver (Dashboard) 的要求以及安装过程,并提供了相应的命令行指令来管理它。

希望本教程对您有所帮助!如有任何疑问或问题,请随时在评论区留言。感谢阅读!

参考链接:

  • https://help.apinto.com/docs/apinto/system/
  • https://help.eolink.com/tutorial/Apinto/c-1406

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/353806.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【css揭秘】

文章目录 背景与边框半透明边框多重边框box-shadowoutline 背景定位background-positionbackground-origincalc() 条纹背景水平条纹 形状圆形圆柱自适应的椭圆半椭圆四分之一椭圆 背景与边框 半透明边框 目标:给一个容器设置一层白色背景和一道半透明白色边框 写…

树莓派基础应用:智能家居监控系统

引言: 随着智能家居的普及,家居安全与监控逐渐成为人们关注的焦点。树莓派作为一种功能强大的迷你计算机,为我们提供了实现智能家居监控系统的可能。在本篇博客中,我们将通过构建一个简单的智能家居监控系统,来探索树莓…

node学习过程中的终端命令

冷的哥们手真tm冷,打字都是僵的,屮 目录 一、在学习nodejs过程中用到的终端命令总结 一、在学习nodejs过程中用到的终端命令 node -v nvm install 20.11.0 nvm list nvm list available nvm on nvm -v nvm use 20.11.0 node加要运行的js文件路径 ps&a…

docker compose实现mysql一主多从

参考了很多博客,死磕了几天,最终跑起来了,不容易,晚上喝瓶82年可乐庆祝下。 1、整体文件结构,这里忽略log、conf、data映射目录 2、docker-compose.yml文件内容如下: version: 3.3 services:mysql-master…

黑马程序员-瑞吉外卖-day5

修改实体类 package com.itheima.reggie.entity;import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode;i…

JS之隐式转换与布尔判定

大家思考一下 [ ] [ ] ? 答案是空字符串 为什么呢? 当做加法运算的时候,发现左右两端存在非原始类型,也就是引用类型对象,就会对对象做隐式类型转换 如何执行的?或者说怎么查找的? 第一步&…

中国新能源汽车持续跑出发展“加速度”,比亚迪迎来向上突破

2023年已经过去,对于汽车圈而言,2023年是中国车市的分水岭,在这一年,中国汽车工业70年以来首次进入全球序列,自主品牌强势霸榜,销量首次超过合资车。要知道,这是自大众于1984年进入中国市场成立…

Android App开发-简单控件(3)——常用布局

3.3 常用布局 本节介绍常见的几种布局用法,包括在某个方向上顺序排列的线性布局,参照其他视图的位置相对排列的相对布局,像表格那样分行分列显示的网格布局,CommonLayouts以及支持通过滑动操作拉出更多内容的滚动视图。 3.3.1 线…

Jenkins上跑自动化项目,case出现错误时,导致项目运行时间过长,该如何处理?

1、方案一:Jenkins上调整 进入配置: 构建环境: 自行选择超时时间即可~ 2、方案二:代码调整【python】 安装插件:pytest-timeout 选择一:装饰器用法:将单个测试用例标记为超时&…

Qt6入门教程 12:QAbstractButton

目录 一.状态 二.信号 三.使用 1.自定义按钮 2.多选 3.互斥 QAbstractButton类实现了一个抽象按钮,并且让它的子类来指定如何处理用户的动作,并指定如何绘制按钮。QAbstractButton类是所有按钮控件的基类。 QAbstractButton提供…

【Docker】数据持久化 挂载

Docker的镜像是只读的,但是容器是可写的,我们可以将数据写入到容器,不过一旦容器删除数据将会丢 失,那么有什么办法能将数据进行持久化存储呢? ——在宿主机上开辟一块地方,存储内容和docker容器的存储内…

TCP 三次握手 四次挥手以及滑动窗口

TCP 三次握手 简介: TCP 是一种面向连接的单播协议,在发送数据前,通信双方必须在彼此间建立一条连接。所谓的 “ 连接” ,其实是客户端和服务器的内存里保存的一份关于对方的信息,如 IP 地址、端口号等。 TCP 可以…

HCIP复习课(bgp选路实验)

1.如图连接网络,合理规格IP地址,AS200内IGP协议为OSPF 2.R1属于AS 100:R2-R3-R4小AS 234 R5-R6-R7/AS567,同时声明大AS 200,R8属于AS300 3.R2-R5 R4-R7之间为联邦EBGP邻居关系 4.R1-R8之间通信 1、ip配置: R1: R2:…

js中 == 和 === 区别(分别在什么情况使用)

文章目录 一、等于操作符二、全等操作符三、区别小结 一、等于操作符 等于操作符用两个等于号( )表示,如果操作数相等,则会返回 true 前面文章,我们提到在JavaScript中存在隐式转换。等于操作符(&#x…

嵌入式——实时时钟(RTC)

目录 一、初识RTC 1.简介 2.特性 3.后备寄存器和RTC寄存器特性 二、RTC组成 1.相关寄存器 (1)控制寄存器高位(RTC_CRH) (2)控制寄存器低位(RTC_CRL) (3&#xf…

常用DOS命令讲解

DOS命令是DOS操作的基础,下面就来介绍一些常用的DOS命令。 DOS内部命令 1、DIR 含义:显示指定路径上所有文件或目录的信息 格式:DIR [盘符:][路径][文件名] [参数] 参数: /W:宽屏显示,一排显示…

Kotlin MultiPlatform:构建跨平台应用的未来

Kotlin MultiPlatform:构建跨平台应用的未来 1 引言 1.1 Kotlin MultiPlatform简介 Kotlin MultiPlatform(简称KMP)是一种由JetBrains开发的跨平台开发解决方案,它建立在Kotlin语言之上。KMP允许开发者使用一套Kotlin代码来构建…

ELK日志解决方案

ELK日志解决方案 ELK套件日志系统应该是Elasticsearch使用最广泛的场景之一了,Elasticsearch支持海量数据的存储和查询,特别适合日志搜索场景。广泛使用的ELK套件(Elasticsearch、Logstash、Kibana)是日志系统最经典的案例,使用Logstash和Be…

力扣hot100 最小栈 变种栈

Problem: 155. 最小栈 文章目录 思路💖 Stack 自定义 Node🍻 Code 思路 👩‍🏫 甜姨 💖 Stack 自定义 Node 时间复杂度: O ( 1 ) O(1) O(1) 空间复杂度: O ( n ) O(n) O(n) 🍻 Code class MinS…

基于Matlab/Simulink直驱式风电储能制氢仿真模型

接着还是以直驱式风电为DG中的研究对象,上篇博客考虑的风电并网惯性的问题,这边博客主要讨论功率消纳的问题。 考虑到风速是随机变化的,导致风电输出功率的波动性和间歇性问题突出;随着其应用规模的不断扩大以及风电在电网中渗透率…