微服务、APISIX 部署、对象存储与 ELK (二十) 微服务微服务拆分单体为多个独立服务独立部署扩容引入分布式难题。ZooKeeper分布式协调工具实现注册中心、配置管理、分布式锁、集群选主。Kafka高吞吐消息队列完成异步解耦、削峰填谷、日志传输。Nacos一站式组件兼具服务注册发现 动态配置中心。Sentinel流量防护框架实现限流、熔断、降级防止服务雪崩。Seata分布式事务框架保障跨微服务的数据一致性。Spring Cloud GatewaySpringCloud 官方微服务网关统一入口负责路由、鉴权、流量管控。apisix的部署Apache APISIX 集成 Nacos 实现服务发现项目10.0.0.100ETCD、Apache APISIX、APISIX Dashboard、Nacos10.0.0.101Provider 服务端口 8001注册服务名provider-service10.0.0.102Consumer 服务端口 8002 实验目标APISIX 通过 Nacos 动态发现 Provider客户端访问 APISIX自动转发到 Provider无需在网关写死后端 IP。10.0.0.100 执行安装 Dockersudo apt update sudo apt install docker.io -y sudo systemctl enable --now docker sudo usermod -aG docker $USER10.0.0.100 依次部署组件创建容器网络docker network create apisix-net部署 Nacos注册中心docker run -d \ --name nacos \ --network apisix-net \ -p 8848:8848 -p 9848:9848 \ -e MODEstandalone \ nacos/nacos-server:v2.3.2访问地址http://10.0.0.100:8848/nacos 账号nacos密码nacos部署 ETCDAPISIX 配置仓库docker run -d \ --name etcd \ --network apisix-net \ -p 2379:2379 \ -e ETCD_LISTEN_CLIENT_URLShttp://0.0.0.0:2379 \ apache/apisix-etcd:3.8.0部署 Apache APISIX开启 Nacos 服务发现mkdir -p /data/apisix/conf写入配置文件cat /data/apisix/conf/config.yaml EOF apisix: admin_key: - name: admin key: edd1c9f034335f136f87ad84b625c8f1 role: admin discovery: nacos: host: - 10.0.0.100 port: 8848 namespace_id: public group_name: DEFAULT_GROUP EOF启动 APISIXdocker run -d \ --name apisix \ --network apisix-net \ -p 9080:9080 \ -p 9180:9180 \ -v /data/apisix/conf:/usr/local/apisix/conf \ -e APISIX_ETCD_HOSThttp://etcd:2379 \ apache/apisix:3.8.09080业务流量入口9180管理 API 端口部署 APISIX Dashboard可视化面板docker run -d \ --name apisix-dashboard \ --network apisix-net \ -p 9000:9000 \ -e APISIX_ADMIN_API_URLhttp://apisix:9180 \ apache/apisix-dashboard:3.0.0面板地址http://10.0.0.100:9000账号admin密码admin业务服务配置10.0.0.101 Provider 应用配置SpringBootapplication.ymlspring: application: name: provider-service cloud: nacos: discovery: server-addr: 10.0.0.100:8848 server: port: 8001启动项目登录 Nacos 后台确认服务列表出现 provider-service。10.0.0.102 Consumer 应用spring: application: name: provider-service cloud: nacos: discovery: server-addr: 10.0.0.100:8848 server: port: 8001启动项目登录 Nacos 后台确认服务列表出现provider-service10.0.0.102 Consumer 应用Consumer 可调用 ProviderAPISIX 创建路由启用 Nacos 服务发现在 10.0.0.100 终端执行curl http://127.0.0.1:9180/apisix/admin/routes/10 \ -H X-API-KEY: edd1c9f034335f136f87ad84b625c8f1 \ -X PUT -d { uri: /provider/*, upstream: { service_name: provider-service, discovery_type: nacos, type: roundrobin } }discovery_type: nacos开启服务发现不再填写静态 IPservice_name和 Nacos 内注册服务名称保持一致。防火墙放行10.0.0.100sudo ufw allow 8848,2379,9080,9180,9000/tcp验证实验访问网关curl http://10.0.0.100:9080/provider/hello对象存储对象存储Object Storage是一种非结构化数据存储架构数据以「对象」形式存放。 对象 文件数据 元数据 唯一标识Object Key。Bucket桶顶层容器相当于根目录全局名称唯一Object对象桶内存放的文件图片、文档、视频等Key对象名称用来定位桶内文件Endpoint对象存储服务访问地址。对比文件存储文件存储依赖目录层级对象存储扁平化结构适合海量图片、日志、附件存储支持 RESTful API 访问弹性扩容。主流开源实现MinIO课程最常用商用阿里云 OSS、腾讯云 COS。MinIO 是兼容 S3 协议的开源对象存储。核心概念Bucket桶、Object对象。MinIO 二进制部署Ubuntu24.04 10.0.0.100创建工作目录mkdir -p /opt/minio/{bin,data,conf,logs} cd /opt/minio/bin下载 MinIO 二进制文件wget https://dl.min.io/server/minio/release/linux-amd64/minio添加执行权限chmod x minio配置环境变量账号密码cat /opt/minio/conf/minio.env EOF MINIO_ROOT_USERadmin MINIO_ROOT_PASSWORD12345678 EOF创建 systemd 系统服务后台常驻开机自启cat /etc/systemd/system/minio.service EOF [Unit] DescriptionMinIO Object Storage Afternetwork.target [Service] EnvironmentFile/opt/minio/conf/minio.env ExecStart/opt/minio/bin/minio server /opt/minio/data --address 0.0.0.0:9000 --console-address 0.0.0.0:9001 Restartalways RestartSec5 [Install] WantedBymulti-user.target EOF加载服务、启动 MinIOsystemctl daemon-reload systemctl start minio systemctl enable minio查看运行状态systemctl status minio防火墙放行端口sudo ufw allow 9000,9001/tcp浏览器http://10.0.0.100:9001账号admin 密码12345678端口说明9000S3 API 服务端口程序对接9001Web 管理控制台登录控制台新建桶demo-bucket上传文件、预览、生成分享链接、删除对象安装 mc 客户端远程管理wget https://dl.min.io/client/mc/release/linux-amd64/mc chmod x mc mv mc /usr/local/bin # 连接minio mc alias set myminio http://10.0.0.100:9000 admin 12345678 mc ls myminioELKELK Elasticsearch Logstash KibanaElasticsearch(ES)分布式搜索引擎存储、检索日志Logstash日志采集、过滤、清洗、转发Kibana可视化 Web 面板查询、绘图、监控日志。 拓展Filebeat轻量采集器替代 Logstash 做客户端采集减少资源占用实验10.0.0.100Elasticsearch、Logstash、Kibana10.0.0.101Provider 服务部署 Filebeat 采集日志10.0.0.102Consumer 服务部署 Filebeat 采集日志10.0.0.100 执行安装 JDK17ELK8.x 必备sudo apt update sudo apt install openjdk-17-jdk -y java -version关闭内存交换sudo swapoff -a # 永久注释fstab关闭swap sudo sed -i /swap/s/^/#/ /etc/fstab调整系统最大文件句柄cat /etc/security/limits.conf EOF elasticsearch soft nofile 65535 elasticsearch hard nofile 65535 EOF下载安装 ELK 8.11.0二进制包安装统一存放目录/opt/elkmkdir -p /opt/elk cd /opt/elkElasticsearch 部署# 下载 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.0-linux-x86_64.tar.gz tar -zxvf elasticsearch-8.11.0-linux-x86_64.tar.gz mv elasticsearch-8.11.0 elasticsearch # ES禁止root运行创建用户 sudo useradd elasticsearch sudo chown -R elasticsearch:elasticsearch /opt/elk/elasticsearch修改配置 /opt/elk/elasticsearch/config/elasticsearch.ymlnetwork.host: 0.0.0.0 http.port: 9200 discovery.type: single-node xpack.security.enabled: false xpack.security.enrollment.enabled: false xpack.security.http.ssl.enabled: false xpack.security.transport.ssl.enabled: false创建 systemd 服务cat /etc/systemd/system/elasticsearch.service EOF [Unit] DescriptionElasticsearch Afternetwork.target [Service] Userelasticsearch Groupelasticsearch ExecStart/opt/elk/elasticsearch/bin/elasticsearch Restarton-failure [Install] WantedBymulti-user.target EOFsystemctl daemon-reload systemctl start elasticsearch systemctl enable elasticsearch # 验证 curl http://10.0.0.100:9200Logstash 部署wget https://artifacts.elastic.co/downloads/logstash/logstash-8.11.0-linux-x86_64.tar.gz tar -zxvf logstash-8.11.0-linux-x86_64.tar.gz mv logstash-8.11.0 logstash新建采集配置 /opt/elk/logstash/config/logstash-sample.confinput { beats { port 5044 } } filter { } output { elasticsearch { hosts [http://10.0.0.100:9200] index service-log-%{YYYY.MM.dd} } }logstash systemd 服务cat /etc/systemd/system/logstash.service EOF [Unit] DescriptionLogstash Afternetwork.target elasticsearch.service [Service] ExecStart/opt/elk/logstash/bin/logstash -f /opt/elk/logstash/config/logstash-sample.conf Restarton-failure [Install] WantedBymulti-user.target EOFsystemctl daemon-reload systemctl start logstash systemctl enable logstashKibana 部署wget https://artifacts.elastic.co/downloads/kibana/kibana-8.11.0-linux-x86_64.tar.gz tar -zxvf kibana-8.11.0-linux-x86_64.tar.gz mv kibana-8.11.0 kibana修改配置/opt/elk/kibana/config/kibana.ymlserver.host: 0.0.0.0 server.port: 5601 elasticsearch.hosts: [http://10.0.0.100:9200] xpack.security.enabled: falseKibana systemdcat /etc/systemd/system/kibana.service EOF [Unit] DescriptionKibana Afternetwork.target elasticsearch.service [Service] ExecStart/opt/elk/kibana/bin/kibana Restarton-failure [Install] WantedBymulti-user.target EOFsystemctl daemon-reload systemctl start kibana systemctl enable kibana访问 Kibanahttp://10.0.0.100:5601防火墙放行10.0.0.100sudo ufw allow 9200,5044,5601/tcpFilebeat 部署10.0.0.101 / 10.0.0.102 两台业务机wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.11.0-linux-x86_64.tar.gz tar -zxvf filebeat-8.11.0-linux-x86_64.tar.gz mv filebeat-8.11.0 filebeat cd filebeat修改 filebeat.ymlfilebeat.inputs: - type: filestream paths: - /opt/provider/logs/*.log # 修改为你的项目日志路径 output.logstash: hosts: [10.0.0.100:5044]前台测试启动./filebeat -e

相关新闻

最新新闻

跨设备剪贴板共享工程化笔记:可读代码与可复现页面并行推进

跨设备剪贴板共享工程化笔记:可读代码与可复现页面并行推进

手机剪贴板与设备粘贴演示:从输入到历史记录的完整交互 写在前面 很多人第一次看到“跨设备剪贴板”这样的页面标题时,会自然联想到系统级剪贴板、设备发现、账号同步和真正的跨设备传输。不过,判断一个页面能做什么,不能只看标题…

2026/8/25 13:34:41
怎么降低ai率最有效?手动改写+降aigc工具双路线,附检测对比

怎么降低ai率最有效?手动改写+降aigc工具双路线,附检测对比

怎么降低ai率最有效?手动改写降aigc工具双路线,附检测对比 凌晨一点,我收到学妹的消息:论文查重过了,AI率没过,维普报告上写着58.7%,学院要求15%以内,答辩材料三天后截止。她的原话是…

2026/8/25 13:34:41
中小企业数字化转型指南 | 1800款数字化应用背后:中小企业真正想要什么工具

中小企业数字化转型指南 | 1800款数字化应用背后:中小企业真正想要什么工具

本文拆解五大业务环节的差异化工具需求:研发重国产化、生产重非标定制、经管重系统集成、运维重安全防护、供应链重细分适配。总结中小企业数字化工具选型三条铁律,帮助企业精准对号入座、低成本落地、避免资源浪费。一、开篇破局:别把大厂方…

2026/8/25 13:34:41
B站视频转Markdown:4种方法保存到Obsidian,搭建个人知识库

B站视频转Markdown:4种方法保存到Obsidian,搭建个人知识库

如果已经在用Obsidian,B站视频可能是最不好处理的一类学习资料。 网页可以剪藏,PDF可以放进Vault,文字天然可以全文搜索。但一个两个小时的课程,本质上还是一个只能顺着时间播放的线性文件。 所以真正值得解决的问题不是“怎么收…

2026/8/25 13:34:41
[论文学习]让Agent击败Agent:基于LLM的Agent中汙点型漏洞的自动检测(AgentFuzz / AutoMalTool)

[论文学习]让Agent击败Agent:基于LLM的Agent中汙点型漏洞的自动检测(AgentFuzz / AutoMalTool)

Make Agent Defeat Agent: Automatic Detection of Taint-Style Vulnerabilities in LLM-based Agents (AgentFuzz, USENIX Security 2025) 论文重点 本文提出了AutoMalTool,首个针对LLM-based Agent的自动化红队测试框架,通过多智能体协作自动生成可规…

2026/8/25 13:34:41
智能体面试准备(五十四):智能体线上实验与效果归因体系——上线决策科学

智能体面试准备(五十四):智能体线上实验与效果归因体系——上线决策科学

智能体面试准备(五十四):智能体线上实验与效果归因体系——上线决策科学 引言:为什么"离线评测高分"不等于"线上能发" B31 讲过 Agent 评测体系(轨迹指标、LLM-as-Judge、benchmark)&a…

2026/8/25 13:29:40