每日shell脚本之超级整合程序3.0
每日shell脚本之超级整合程序3.0
本期带来之前的升级版2.0整合脚本程序,学习工作小利器,同时模块化构建方便二次开发。
上图
上源码
#!/usr/bin/bash
# *******************************************#
# * CDDN : M乔木 #
# * qq邮箱 : 2776617348@qq.com #
# * 创建时间 : 2023-12-29 11:40:59 #
# * 解释器 : 这是一个shell脚本 #
# ******************************************##声明函数
function make_ZBA() {clearecho "开始部署Agent..."sleep 1read -p "请输入Server端服务器IP:" AG_IPrpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm &>/dev/nullyum clean all &>/dev/null && yum makecache fast &>/dev/nullyum -y install zabbix-agent &>/dev/nullsed -i '/^Server=127.0.0.1/d' /etc/zabbix/zabbix_agentd.confecho "Server=${AG_IP}" >>/etc/zabbix/zabbix_agentd.confsed -i '/^ServerActive=127.0.0.1/d' /etc/zabbix/zabbix_agentd.confecho "ServerActive=${AG_IP}" >>/etc/zabbix/zabbix_agentd.confagent_H=$(hostname)sed -i '/^Hostname=Zabbix server/d' /etc/zabbix/zabbix_agentd.confecho "Hostname=${agent_H}" >>/etc/zabbix/zabbix_agentd.confecho 'zabbix ALL=(ALL) NOPASSWD: ALL' >>/etc/sudoersecho 'EnableRemoteCommands=1' >>/etc/zabbix/zabbix_agentd.confecho 'LogRemoteCommands=1' >>/etc/zabbix/zabbix_agentd.confsystemctl restart zabbix-agent &>/dev/nullsystemctl enable zabbix-agent &>/dev/nullecho "Agent端已部署完成!Server端为:${AG_IP}"
}
function make_ZBS() {#环境检测clearecho "--------------------------------------------------------"echo "[1]开始检测防火墙Selinux..."f_w=$(systemctl status firewalld | awk '/Active:/{print $2}')s_l=$(getenforce)#判断是否关闭 没关闭就结束运行if [ ${f_w} = "inactive" -a ${s_l} = "Disabled" ]; thenecho "[2]防火墙SeLinux已关闭..."sleep 1echo "[3]正在飞速安装zabbix中..."sleep 1elseecho "[2]防火墙SeLinux未关闭..."systemctl disable firewalld &>/dev/nullsed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinuxsed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/configsleep 1echo "[3]正在关闭..."sleep 1echo "[4]防火墙SeLinux已关闭 请重启机器生效..."echo "--------------------------------------------------------"exit 0fi#安装zabbix源rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm &>/dev/null#安装数据库并清理缓存echo '[4]准备安装数据库,全程20秒左右,请耐心等待...'sleep 1echo '[5]开始清理环境...'yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y &>/dev/nulluserdel -r mysql &>/dev/nullrm -rf /etc/my* &>/dev/nullrm -rf /var/lib/mysql &>/dev/nullrm -rf /usr/bin/mysql &>/dev/nullyum -y erase $(rpm -qa | egrep "mysql|mariadb") &>/dev/nullecho '[6]正在下载mysqlyum源...'yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm &>/dev/nullecho '[7]正在安装mysql...'yum install -y mysql-community-server --enablerepo mysql57-community --disablerepo mysql80-community &>/dev/nullyum -y groupinstall "Development Tools" &>/dev/nullecho '[8]正在配置mysql...'yum -y install yum-utils &>/dev/nullyum-config-manager --disable mysql80-community &>/dev/nullyum-config-manager --enable mysql57-community &>/dev/nullecho '[9]正在启动mysql...'systemctl start mysqld &>/dev/nullecho '[10]正在设置密码,请稍后...'num_az=$(awk '/temporary password/{p=$NF}END{print p}' /var/log/mysqld.log)echo 'validate-password=OFF' >>/etc/my.cnfsystemctl restart mysqld &>/dev/nullread -p '请输入新密码:' passwdxmysqladmin -uroot -p"$num_az" password "$passwdx" &>/dev/nullecho "[11]安装完成,密码已设置完成为:$passwdx"echo "[12]密码已保存到/mysql_passwd.txt目录下"echo $passwdx >/mysql_passwd.txtyum clean all &>/dev/null && yum makecache fast &>/dev/null#安装zabbix模块echo "[13]开始安装zabbix..."yum -y install zabbix-server-mysql zabbix-agent zabbix-get zabbix-sender centos-release-scl &>/dev/nullyum -y install yum-utils &>/dev/nullrpm -qa | grep yum-utils &>/dev/nullif [ $? -eq 1 ]; thensleep 1yum -y install yum-utils &>/dev/nullfiyum-config-manager --enable zabbix-frontend &>/dev/nullyum -y install zabbix-web-mysql-scl zabbix-nginx-conf-scl centos-release-scl &>/dev/null#建立运行数据库echo "[14]正在建立运行数据库..."mysql -p"${passwdx}" -e 'create database zabbix character set utf8 collate utf8_bin;' &>/dev/nullmysql -p"${passwdx}" -e "create user zabbix@localhost identified by 'admin';" &>/dev/nullmysql -p"${passwdx}" -e 'grant all privileges on zabbix.* to zabbix@localhost;' &>/dev/nullmysql -p"${passwdx}" -e 'set global log_bin_trust_function_creators = 1;' &>/dev/nullmysql -p"${passwdx}" -e 'flush privileges;' &>/dev/nullecho "[15]zabbix登录数据库密码为:admin"echo "zabbix登录数据库密码为:admin" >>/zabbix-mysql.txtzcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p"admin" zabbix 2>/dev/null#关联数据库echo "[16]正在改写相关配置文件..."mysql -p"${passwdx}" -e 'set global log_bin_trust_function_creators = 0;' &>/dev/nullecho "DBHost=localhost" >>/etc/zabbix/zabbix_server.confecho "DBPassword=admin" >>/etc/zabbix/zabbix_server.confecho "DBPort=3306" >>/etc/zabbix/zabbix_server.conf#关联phpsed -i '2s/^#//;3s/^#//' /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.confsed -i '38,118d' /etc/opt/rh/rh-nginx116/nginx/nginx.confsed -i 's/listen.acl_users = apache/listen.acl_users = apache,nginx/' /etc/opt/rh/rh-php72/php-fpm.d/zabbix.confsed -i '25d' /etc/opt/rh/rh-php72/php-fpm.d/zabbix.confecho 'php_value[date.timezone] = Asia/Shanghai' >>/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf#重启服务echo "[17]正在重启相关服务..."systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm &>/dev/nullsystemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm &>/dev/nullecho "[18]zabbix已部署 后续请登录浏览器安装..."echo "--------------------------------------------------------"
}
function Az_docker() {clear#检测防火墙selinuxecho "------------------------------------------------------------"echo "[1]开始检测防火墙SeLinux是否关闭..."sleep 1f_w=$(systemctl status firewalld | awk '/Active:/{print $2}')s_l=$(getenforce)#判断是否关闭 没关闭就结束运行if [ ${f_w} = "inactive" -a ${s_l} = "Disabled" ]; thenecho "[2]防火墙SeLinux已关闭..."sleep 1echo "[3]正在飞速安装docker中..."sleep 1elseecho "[2]防火墙SeLinux未关闭..."systemctl disable firewalld &>/dev/nullsed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinuxsed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/configsleep 1echo "[3]正在关闭..."sleep 1echo "[4]防火墙SeLinux已关闭 请重启机器生效..."echo "------------------------------------------------------------"exit 0fi#防火墙关了的话就继续开启路由转发echo "[4]正在开启路由转发虚拟网桥..."echo 'net.ipv4.ip_forward =1' >>/etc/sysctl.confecho 'net.bridge.bridge-nf-call-iptables =1' >>/etc/sysctl.confecho 'net.bridge.bridge-nf-call-ip6tables =1' >>/etc/sysctl.confsysctl -p &>/dev/nullsleep 1#防火墙关闭的话就清理docker环境echo "[5]正在清理环境中..."yum -y remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine &>/dev/nullsleep 1echo "[6]开始安装docker依赖..."yum install -y yum-utils device-mapper-persistent-data lvm2 &>/dev/nullsleep 1echo "[7]开始配置阿里docker源..."yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo &>/dev/nullyum clean all &>/dev/null && yum makecache fast &>/dev/nullsleep 1echo "[8]开始安装docker..."yum -y install docker-ce doker-ce-cli containerd.io &>/dev/nullsleep 1echo "[9]开始配置开机自启..."systemctl start docker &>/dev/nullsystemctl enable docker &>/dev/nullsystemctl restart docker &>/dev/nullsleep 1echo "[10]开始配置阿里云镜像加速器..."clearecho "[11]开始建立docker加速器放置目录..."mkdir -p /etc/dockersleep 1echo "[12]开始写入配置..."tee /etc/docker/daemon.json &>/dev/null <<-'EOF'
{"registry-mirrors": ["https://2zwkpj0m.mirror.aliyuncs.com"]
}
EOFsleep 1echo "[13]重新加载system工具..."systemctl daemon-reload &>/dev/nullsleep 1echo "[14]重新启动docker..."systemctl restart docker &>/dev/nullsleep 1echo "[15]阿里云镜像加速器配置完毕!"sleep 1echo "[16]开始拉取基础镜像centos:7..."docker pull centos:7 &>/dev/nullsleep 1echo "[17]已部署docker及第一个基础镜像centos7已配置完毕!"sleep 1echo '[18]开始使用你的一个docker命令体验激动人心的docker吧!'sleep 1echo '[19]docker images:查看已下载镜像'sleep 1echo '[20]docker info:查看docker基本信息'sleep 1echo '[21]docker run -it centos:7 /bin/bash 启动容器'echo "------------------------------------------------------------"
}
function jq_z() {jq_id=$(cat /opt/QMOSjQ/jQ${idjqw}/* | head -1)if [ -z $jq_id ]; then:elseread -p "该资产已注册 是否覆盖[y|n]" jq_numcase $jq_num iny):;;n)echo "重新加载注册界面..."sleep 1jqzh;;*)Rr_QMjqzh;;esacfi
}
function jq_d() {if [ $? -eq 0 ]; then:elseclearecho "该资产还没有注册..."sleep 1echo "请在资产注册信息以后再使用!"sleep 1jqfunfi
}
function jq_f() {jq_fQ=$(ls /opt/ | grep QMOSjQ &>/dev/null && echo 1 || echo 2)case $jq_fQ in1):;;2)clearecho "---------------------------"echo " 检测到环境不支持运行堡垒机"sleep 1echo " 前往堡垒机主界面使用[环境部署]"echo "---------------------------"sleep 1jqfun;;esac
}
function Qc_QM() {clearcat <<EOF
============="已退出程序!"
=============
EOFexit 0
}
function Rr_QM() {clearcat <<EOF
============================="序列号输入错误 稍后将重新运行!"
=============================
EOFsleep 1
}
function w_djs() {cleara=0echo "-------------------------------"read -p "休息一会吧!身体最重要[单位s/秒]:" w_numwhile [ $a -lt $w_num ]; dolet a++echo "[${a}]已休息:${a}秒"sleep 1doneecho "-------------------------------"echo "本次共休息:${a}秒"
}
function make_redis() {#自动化部署Redisclearecho "----------------------------------------------------------------------------"DATA=$(ls / | grep data)if [ -z $DATA ]; thenecho "[1]检查是否下载wget..."yum -y install wget &>/dev/nullecho "[2]创建放置redis目录..."mkdir -p /data/appecho "[3]进入工作目录..."cd /data/appecho "[4]下载redis..."wget http://download.redis.io/releases/redis-5.0.10.tar.gz &>/dev/nullecho '[5]解压redis...'tar xzf redis-5.0.10.tar.gz &>/dev/nullecho '[6]重命名redis...'mv redis-5.0.10/ redisecho '[7]下载编译工具...'cd redis/ && yum install -y gcc make &>/dev/nullecho "[8]安装redis..."make &>/dev/nullcd /data/app/redisecho "[9]备份redis配置文件..."cp redis.conf redis.conf.backupecho "[10]开始修改配置文件..."sed -i 's/bind 127.0.0.1/bind 0.0.0.0/' redis.confsed -i '/^dir/d' redis.confecho 'dir /data/app/redis/data' >>redis.confsed -i '/^logfile/d' redis.confecho 'logfile /var/log/redis.log' >>redis.confsed -i '/^daemonize/d' redis.confecho 'daemonize yes' >>redis.confmkdir /data/app/redis/datatouch /var/log/redis.logecho "[11]开始配置全局启用reids..."echo 'export PATH=/data/app/redis/src:$PATH' >>/etc/profilesource /etc/profile &>/dev/nullecho "[12]开始配置system工具管理redis..."cd /lib/systemd/system/cat >redis.service <<EOF
[Unit]
Description=Redis
After=network.target[Service]
ExecStart=/data/app/redis/src/redis-server /data/app/redis/redis.conf --daemonize no
ExecStop=/data/app/redis/src/redis-cli -h 127.0.0.1 -p 6379 shutdown[Install]
WantedBy=multi-user.target
EOFcd - &>/dev/nullsystemctl daemon-reloadsystemctl start redis.servicecd /data/app/redisecho "[13]安装完毕!"sleep 1echo "请使用./data/app/redis/src/redis-cli -h localhost -p 6379 命令登录使用redis!"echo "如果环境变量不生效,请手动执行命令:sourece /etc/profile"echo "----------------------------------------------------------------------------"sleep 2elseecho "[1]安装失败..."sleep 1echo "[2]原因根目录下存在冲突目录..."sleep 1echo "[3]请在删除/data目录或重命名后重新运行本程序...!"echo "----------------------------------------------------------------------------"exit 2fi
}
function make_MGR() {
相关文章:

每日shell脚本之超级整合程序3.0
每日shell脚本之超级整合程序3.0 本期带来之前的升级版2.0整合脚本程序,学习工作小利器,同时模块化构建方便二次开发。 上图 上源码 #!/usr/bin/bash # *******************************************# # * CDDN : M乔木 # # * qq邮箱 …...
Docker介绍与使用
Docker介绍与使用 目录: 一、Docker介绍 1、Docker概述与安装 2、Docker三要素 二、Docker常用命令的使用 1、镜像相关命令 2、容器相关命令 三、Docker实战之下载mysql、redis、zimg 一、Docker介绍 Docker是一个开源的应用容器引擎,让开发者可以打包…...
Gin框架: 使用go-ini配置参数与不同环境下的配置部署
关于 INI 配置文件与go-ini 1 )概述 在INI配置文件中可以处理各种数据的配置INI文件是一种简单的文本格式,常用于配置软件的各种参数go-ini 是地表 最强大、最方便 和 最流行 的 Go 语言 INI 文件操作库 Github 地址:https://github.com/go-…...

探究网络工具nc(netcat)的使用方法及安装步骤
目录 🐶1. 什么是nc(netcat)? 🐶2. nc(netcat)的基本使用方法 2.1 🥙使用 nc 进行端口监听 2.2 🥙使用 nc 进行端口扫描 2.3 🥙使用 Netcat 进行文件传输…...

深入浅出JVM(四)之类文件结构
深入浅出JVM(四)之类文件结构 Java文件编译成字节码文件后,通过类加载机制到Java虚拟机中,Java虚拟机能够执行所有符合要求的字节码,因此无论什么语言,只要能够编译成符合要求的字节码文件就能够被Java虚拟…...
Anaconda下的pkgs占用空间13G,如何安全的清理(已解决)
方法一:让Anaconda自行决定清理 执行命令 conda clean -p 我的Anaconda安装在D盘,具体位置如下。你的应该也能找到对应的位置 D:\*****\**\Anaconda3\pkgs (base) C:\Users\Liu_J>conda clean -p WARNING: C:\Users\***\.conda\pkgs does not ex…...

压缩感知常用的重建算法
重建算法的基本概念 在压缩感知(Compressed Sensing, CS)框架中,重建算法是指将从原始信号中以低于奈奎斯特率采集得到的压缩测量值恢复成完整信号的数学和计算过程。由于信号在采集过程中被压缩,因此重建算法的目标是找到最符合…...

c语言经典测试题2
1.题1 我们来思考一下它的结果是什么? 我们来分析一下:\\是转义为字符\,\123表示的是一个八进制,算一个字符,\t算一个字符,加上\0,应该有13个,但是strlen只计算\0前的字符个数。所以…...

⭐北邮复试刷题105. 从前序与中序遍历序列构造二叉树__递归分治 (力扣每日一题)
105. 从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,…...

机房预约系统(个人学习笔记黑马学习)
1、机房预约系统需求 1.1系统简介 学校现有几个规格不同的机房,由于使用时经常出现“撞车“现象,现开发一套机房预约系统,解决这一问题。 1.2身份简介 分别有三种身份使用该程序 学生代表:申请使用机房教师:审核学生的预约申请管理员:给学生、教师创建账…...
7、内网安全-横向移动PTH哈希PTT票据PTK密匙Kerberos密码喷射
用途:个人学习笔记,有所借鉴,欢迎指正 目录 一、域横向移动-PTH-Mimikatz&NTLM 1、Mimikatz 2、impacket-at&ps&wmi&smb 二、域横向移动-PTK-Mimikatz&AES256 三、域横向移动-PTT-漏洞&Kekeo&Ticket 1、漏…...

【前端】夯实基础 css/html/js 50个练手项目(持续更新)
文章目录 前言Day 1 expanding-cardsDay 2 progress-steps 前言 发现一个没有用前端框架的练手项目,很适合我这种纯后端开发夯实基础,内含50个mini project,学习一下,做做笔记。 项目地址:https://github.com/bradtr…...

ELK入门(四)-logstash
Logstash Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的存储库中。 Logstash 能够动态地采集、转换和传输数据,不受格式或复杂度的影响。利用 Grok 从非结构化数据中…...
laravel-admin的3个开发细节调整
在使用laravel-admin开发的过程中,根据官方开发文档Laravel admin | laravel-admin基本都能实现想要的效果,这里补充3个文档上没有描述的细节 Laravel8命令行创建控制器调整 在laravel-admin中可以使用php artisan admin:make UserController --modelAp…...

Redis--原理篇-数据结构(底层)
Redis数据结构 动态字符串SDS IntSet 统一大小并且内存地址连续 为了方便寻址 Dict 基本结构 扩容 收缩 Ziplist(P150 后半部分再看) Quicklist skiplist(满足中间查询 RedisObject...

OpenAI发布Sora模型,可根据文字生成逼真AI视频
早在2022年11月30日,OpenAI第一次发布人工智能聊天机器人ChatGPT,随后在全世界掀起了人工智能狂潮,颠覆了一个又一个行业。在过去的一年多的时间里,chatGPT的强大功能改变了越来越多人的工作和生活方式,成为了世界上用…...

视频生成模型:构建虚拟世界的模拟器 [译]
原文:Video generation models as world simulators 我们致力于在视频数据上开展生成模型的大规模训练。具体来说,我们针对不同时长、分辨率和宽高比的视频及图像,联合训练了基于文本条件的扩散模型。我们采用了一种 Transformer 架构&#…...

MySQL数据库基础(十二):子查询(三步走)
文章目录 子查询(三步走) 一、子查询(嵌套查询)的介绍 二、子查询的使用 三、总结 子查询(三步走) 一、子查询(嵌套查询)的介绍 在一个 select 语句中,嵌入了另外一个 select …...

2-21算法习题总结
由于蓝桥杯的题,我不知道从怎么复制,就只能粘贴图片了 翻硬币 代码 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);String start sc.next();char[] starts start.toCharArray();String end sc…...

常见的排序算法整理
1.冒泡排序 1.1 冒泡排序普通版 每次冒泡过程都是从数列的第一个元素开始,然后依次和剩余的元素进行比较,若小于相邻元素,则交换两者位置,同时将较大元素作为下一个比较的基准元素,继续将该元素与其相邻的元素进行比…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...