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=$1local 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)" ]; thenyum -y install wgetif [ $? -eq 0 ]; thenecho "wget安装完成"elseecho "wget安装失败,请检查"exit 1fifiif [ ! -d "${installDir}" ]; thenmkdir -p "${installDir}"if [ $? -eq 0 ]; thenecho "安装目录${installDir}已创建"elseecho "请确保您有足够的权限来创建目录,请增加权限后再次执行"exit 1fifiif [ ! -f "/tmp/apinto_v${version}_linux_amd64.tar.gz" ] ; thenwget "$downloadUrl" -P /tmpif [ $? -eq 0 ]; thenecho "apinto_v${version}_linux_amd64.tar.gz下载成功"elseecho "apinto_v${version}_linux_amd64.tar.gz下载失败,请重试或手动下载到/tmp目录下再次执行"echo "下载地址:$downloadUrl"exit 1fielseecho "/tmp/apinto_v${version}_linux_amd64.tar.gz文件已存在"fiif [ -d "${installDir}/apinto" ]; thenecho "${installDir}/apinto 已存在,正在删除..."rm -rf "${installDir}/apinto"fitar -zxvf "/tmp/apinto_v${version}_linux_amd64.tar.gz" -C "${installDir}"if [ $? -eq 0 ]; thenecho "apinto_v${version}_linux_amd64.tar.gz解压成功"elseecho "apinto_v${version}_linux_amd64.tar.gz解压失败,请查看异常信息后重试"exit 1ficd ${installDir}/apinto && ./install.sh install && apinto startif [ $? -eq 0 ]; thenecho "apinto 安装并启动成功"elseecho "apinto 安装失败,请查看异常信息后重试"exit 1fi
}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: 3306db: apinto
error_log:dir: work/logs               # 日志放置目录, 仅支持绝对路径, 不填则默认为执行程序上一层目录的work/logs. 若填写的值不为绝对路径,则以上一层目录为相对路径的根目录,比如填写 work/test/logs, 则目录为可执行程序所在目录的 ../work/test/logsfile_name: error.log         # 错误日志文件名log_level: warning            # 错误日志等级,可选:panic,fatal,error,warning,info,debug,trace 不填或者非法则为infolog_expire: 7d                # 错误日志过期时间,默认单位为天,d|天,h|小时, 不合法配置默认为7dlog_period: day               # 错误日志切割周期,仅支持day、hour
redis:user_name: \"\"password: \"\"addr:- ${redis_addr1}- ${redis_addr2}- ${redis_addr3}"install() {local version=$1local installDir=$2mysql -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 ]; thenecho "apinto 数据库创建成功"elseecho "apinto 数据库创建失败"exit 1fi# 下载地址local downloadUrl="https://github.com/eolinker/apinto-dashboard/releases/download/v${version}/apserver_v${version}_linux_amd64.tar.gz"if [ -z "$(command -v wget)" ]; thenyum -y install wgetif [ $? -eq 0 ]; thenecho "wget安装完成"elseecho "wget安装失败,请检查"exit 1fifiif [ ! -d "${installDir}" ]; thenmkdir -p "${installDir}"if [ $? -eq 0 ]; thenecho "安装目录${installDir}已创建"elseecho "请确保您有足够的权限来创建目录,请增加权限后再次执行"exit 1fifiif [ ! -f "/tmp/apserver_v${version}_linux_amd64.tar.gz" ] ; thenwget "$downloadUrl" -P /tmpif [ $? -eq 0 ]; thenecho "apserver_v${version}_linux_amd64.tar.gz下载成功"elseecho "apserver_v${version}_linux_amd64.tar.gz下载失败,请重试或手动下载到/tmp目录下再次执行"echo "下载地址:$downloadUrl"exit 1fielseecho "/tmp/apserver_v${version}_linux_amd64.tar.gz文件已存在"fiif [ -d "${installDir}/apserver_v${version}" ]; thenecho "${installDir}/apserver_v${version} 已存在,正在删除..."rm -rf "${installDir}/apserver_v${version}"fitar -zxvf "/tmp/apserver_v${version}_linux_amd64.tar.gz" -C "${installDir}"if [ $? -eq 0 ]; thenecho "apserver_v${version}_linux_amd64.tar.gz解压成功"elseecho "apserver_v${version}_linux_amd64.tar.gz解压失败,请查看异常信息后重试"exit 1ficd ${installDir}/apserver_v${version}./install.shcd /usr/local/apserver/apserver_v${version}echo "$configyml" > config.ymlecho "apinto-dashboard 下载、安装、配置完成"cd /usr/local/apserver/apserver_v${version} && ./run.sh restartif [ $? -eq 0 ]; thenecho "apinto-dashboard 启动成功"echo "浏览器访问:$(ip addr | grep 'inet ' | awk '{print $2}'| tail -n 1 | grep -oP '\d+\.\d+\.\d+\.\d+'):${apserver_port}"echo "账号:admin   密码:12345678"elseecho "apinto-dashboard 启动失败,请查看异常信息并解决后再次启动"echo "日志放置目录:/usr/local/apserver/apserver_v${version}/work/logs"fiecho "安装目录:/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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将文件以指定格式存储~BMP~C的实现~FAT32格式

参考: BMP文件学习笔记(一): C/C语言实现.bmp文件读写_c 写入bmp-CSDN博客 U盘到底用什么格式好?FAT32、NTFS还是exFAT? - 知乎 (zhihu.com) 第一部分: 位图文件头 BITMAPFILEHEADER&#x…

力扣1027. 最长等差数列

动态规划 思路: 可以参考力扣1218. 最长定差子序列目前不清楚公差,可以将序列最大最小值找到,公差的范围是 [-(max - min), (max - min)],按公差递增迭代遍历求出最长等差数列; class Solution { public:int longest…

Mybatis-SqlSessionFactory/多数据源

下面的代码演示了发送一个HTTP请求到Controller,如果key“dev”,则查询dev数据库,否则查询默认的数据库 Resourceprivate SqlSessionFactory sqlSessionFactory;Resourceprivate DataSource defaultDataSource;Resourceprivate XXXMapper xxx…

go语言下划线、变量和常量

1、下划线 “_”是特殊标识符,用来忽略结果。 1.1. 下划线在import中 在Golang里,import的作用是导入其他package。import 下划线(如:import hello/imp)的作用:当导入一个包时,该包下的文件里…

IDEA 创建maven项目没有src

环境: IntelliJ IDEA 2022.3.3 (Ultimate Edition) JDK 17 Windows 11 10.0 Maven 3.9.5 创建maven项目的时候没有src目录 试过网上说的重新配置maven库,增加vm-options,并没有什么用。直到我看见了 正常创建就好了。

[计算机提升] 清理系统盘的前期准备

5.1 清理系统盘的前期准备 5.1.1 系统盘之殇:为什么系统盘会越来越大 在windows系统中,系统盘一般是C盘,随着电脑使用时间变长,系统盘会变得越来越大。而系统盘通常在安装系统时已经固定好了,如果系统盘的剩余空间太…

【前端基础--1】

为后面爬虫打基础 使用Visual Studio Code(VS Code) https://code.visualstudio.com/#alt-downloads 网页基础 创建一个html网页 新建一个文件 文件名后缀.html 书写网页模板 html:5 回车键(或者Tab键)英文感叹号! 回…

接收邮件触发器

无代码自动化-接收邮件触发器-做的最好的是make.com。数环通和集简云在这方面差了很多,我考虑主要原因应该是国内没有用邮件的习惯,都是微信来微信去。 2024年1月25日的观察结果 集简云 有邮件触发器,但是它获取的邮件信息很少。 我最关心…

深入解析MySQL数据库锁机制

目录 引言 一、锁的基本概念 1. 共享锁和排它锁 2. 行锁和表锁 二、MySQL锁的类型 1. 共享锁(Shared Lock) 2. 排它锁(Exclusive Lock) 3. 意向共享锁(Intention Shared Lock) 4. 意向排它锁&…

【动态规划】【map】【C++算法】1289. 下降路径最小和 II

作者推荐 视频算法专题 本文涉及知识点 动态规划汇总 map LeetCode1289. 下降路径最小和 II 给你一个 n x n 整数矩阵 grid ,请你返回 非零偏移下降路径 数字和的最小值。 非零偏移下降路径 定义为:从 grid 数组中的每一行选择一个数字,…

Qt防止创建窗口抢焦点

问题是,当我在 Qt 中打开一个新窗口时,它会自动窃取前一个应用程序的焦点。 有什么办法可以防止这种情况发生吗? setAttribute(Qt::WA_ShowWithoutActivating);这会强制窗口不激活。即使有Qt::WindowStaysOnTopHint flag 出处: S…

什么是超融合?

文章标题 前言一、超融合是什么?二、超融合原理2.1、超融合三大组件2.2、超融合和传统架构对比2.3、传统方案和超融合软件架构与资源管理模式对比 三、 超融合与SDS、分布式存储关系3.1、SDS是什么 ?3.2、分布式存储是什么?3.3、超融合是什么…

<网络安全>《6 脆弱性扫描与管理系统》

1 概念 脆弱性扫描与管理系统本质上就是系统漏洞扫描,简称漏扫。 根据漏洞规则库(本地漏洞库、ActiveX库、网页木马库、网站代码审计规则库等)为基础,采用深度主机服务探测、Web智能化爬虫、SQL注入状态检测、主机配置检查以及弱…

开始学习Vue(路由)

一、什么是路由 SPA 指的是一个 web 网站只有唯一的一个 HTML 页面,所有组 件的展示与切换都在这唯一的一个页面内完成。 此时,不同组件之间的切换需要通过前端路由来实现。 结论:在 SPA 项目中,不同功能之间的切换&#xff0…

vue el-date-picker 开始日期不能大于结束日期

HTML <el-form-item label"开始日期" prop"startTime"><el-date-picker clearable v-model"form.startTime" type"date" value-format"yyyy-MM-dd" :picker-options"pickerOptionsStartq" placeholder&q…

CAN总线接头(接线端子)都有哪些种类。

CAN总线是广泛应用在汽车控制和工业自动化控制领域里的现场总线&#xff0c;具有广阔的发展前景。基于CAN总线&#xff0c;工程师们开发出了各种各样的相关设备&#xff0c;比如USBCAN分析仪以及CAN转换网关等等。不知道你是否注意过&#xff0c;这些CAN总线设备的CAN接口都是什…

CUBEMX与FreeRTOS在Arm Compiler 6下的配置方法

在嵌入式开发中&#xff0c;STM32是一种广泛使用的微控制器。为了提高开发效率&#xff0c;我们通常会利用ST公司提供的STM32CubeMX工具来配置硬件&#xff0c;并结合FreeRTOS这一实时操作系统来进行多任务处理。本文将深入探讨如何在这一框架下&#xff0c;使用Arm Compiler 6…

结合Tensuns管理prometheus的blackbox与告警设置

场景说明&#xff1a; 因为业务服务器已经完成了三级等保&#xff0c;禁止在业务服务器上部署任何应用&#xff0c;遂选择一台新的服务器部署prometheus&#xff0c;采用blackbox_exporter监控业务服务器的端口与域名状态。 Tensuns项目介绍 https://github.com/starsliao/T…

链表--24. 两两交换链表中的节点/medium 理解度C

24. 两两交换链表中的节点 1、题目2、题目分析3、复杂度最优解代码示例4、适用场景 1、题目 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&…

forEach()方法跳出循环

forEach方法如何跳出循环_foreach跳出循环-CSDN博客 forEach方法遍历数组&#xff0c;每次遍历都根据条件判断&#xff0c;当条件符合时&#xff0c;就跳出整个遍历&#xff0c;不再继续遍历后面的元素 forEach()方法跳出整个循环遍历 forEach方法一般用抛出异常的方式跳出整…