K8S与Spring Cloud微服务分工实践:30+微服务每周400+次部署的选型与避坑
简介这份文档面向Java后端开发、架构师及DevOps工程师聚焦微服务架构落地中的技术选型与治理难题以网易云容器平台的真实实践为蓝本讲解如何将Kubernetes与Spring Cloud组合使用。资源包内含1个docx文档压缩包约527KB篇幅精炼但信息密度较高适合作为架构方案参考或团队内部分享材料。文档系统梳理了微服务化的核心挑战包括业务拆分、服务发现与治理、配置管理、数据一致性、分布式调用跟踪及CI/CD等并对比了K8S与Spring Cloud在服务发现、负载均衡、集群容错等层面的重叠与差异给出优先选择稳定方案的选型思路。内容还涉及四层架构设计、30微服务的DevOps管理经验以及每周400次构建部署的实践数据可帮助读者理解容器编排与微服务框架如何互补为自身平台建设提供可借鉴的落地路径。目前已有203人学习。1. 从 30 微服务、每周 400 次部署说起这份文档到底值不值得拆第一次看到“30 微服务、每周 400 次构建部署”这组数字我下意识以为是某个互联网大厂的宣传稿。翻完这份《基于 Kubernetes 和 Spring Cloud 的微服务化实践》才发现它讲的是网易云容器服务团队自己 dogfooding 的真实账本——拿自家容器平台去跑自家的微服务架构跑通了再反哺产品设计。这种“自己吃自己的狗粮”的实践记录比纯讲概念的架构文值钱得多。它要解决的核心问题很具体Java 团队决定上微服务之后K8S 和 Spring Cloud 到底怎么分工才不会两边功能重叠、互相打架。文档给出的答案不是二选一而是按能力切分——服务发现、负载均衡、调度部署交给 K8S同步服务间通信交给 Spring Cloud熔断隔离两边结合配置管理、日志、调用跟踪则用第三方或自研补齐。适合正在做微服务选型、已经被 Eureka 和 K8S Service 搞混、或者拆服务拆到数据库不敢动的人。如果你只是想知道“微服务是什么”这份文档会让你觉得跳步但如果你手里正有一个要拆的 Java 单体它的每一步都能对上号。2. K8S 与 Spring Cloud 的能力边界哪些交给平台哪些留给开发者2.1 为什么不是“K8S 原教旨主义”也不是全盘 Spring Cloud文档里有一句话我印象很深他们“并不是 K8S 原教旨主义者”。这句话背后是一次很现实的取舍。Spring Cloud 和 K8S 在服务发现、负载均衡、配置管理、集群容错这几块功能是重叠的但解决问题的思路完全不同。Spring Cloud 面向开发者你得在代码级别把微服务的每个环节都考虑进去K8S 面向 DevOps试图把微服务相关的问题都在平台层解决掉对开发者屏蔽复杂性。举个文档里的原话例子服务发现这件事Spring Cloud 给的是带注册中心 Eureka 的方案你得维护 Eureka 服务器还得改造服务调用方和提供方的代码去接入注册中心所有细节都得开发者自己关心。而 K8S 提供的是去中心化方案抽象出 Service通过 DNS ClusterIP iptables 解决服务暴露和发现问题对服务提供方和调用方完全没有侵入。那为什么不全用 K8S因为 K8S 覆盖的是资源管理、应用编排、部署调度这些偏运维的层面而同步的服务间通信、细粒度的熔断降级策略K8S 管不了那么细。所以他们的选型逻辑是优先选更稳定的方案稳定性是云计算的生命线。具体分工可以整理成下面这张表。微服务能力点选型理由服务发现K8S ServiceDNSClusterIPiptables对业务代码零侵入负载均衡K8S平台层统一处理无需引入 Ribbon 额外配置调度与部署K8SLabel 化管理 Node按 Pod label 自动匹配高可用与集群容错K8S副本控制器维持 replica实例或 Node 故障自动补位同步服务间通信Spring CloudFeign 声明式调用开发者可控故障隔离与熔断两者结合Hystrix 二次开发 K8S 资源配额隔离配置管理DisconfConfigMap 变更无法实时生效需统一配置中心日志采集、调用跟踪、流控第三方/自研平台与框架都覆盖不到单独建设这张表基本就是整份文档的骨架。看懂它后面所有操作步骤你都知道自己在哪一层动手。2.2 用 Label 把服务“调度”到对的机器上文档里说他们利用 K8S 管理微服务带来的最大改善体现在调度和部署效率上。原因很实在不同的服务要求部署在不同的机房和集群联调、测试、预发布、生产还有不同的软硬件配置需求内存、SSD、安全、海外访问加速。这些需求用传统自动化工具已经很难实现了。K8S 的做法是对 Node 主机做 Label 化管理你只要指定服务属性Pod label调度器根据 Pod 和 Node Label 的匹配关系自动把服务部署到满足需求的 Node 上。落到操作上常见做法是两步先给节点打标签再在 Deployment 里用 nodeSelector 或 affinity 约束。# 给满足 SSD 高内存的节点打标签 kubectl label nodes node-ssd-01 disktypessd memsizehigh kubectl label nodes node-ssd-02 disktypessd memsizehigh # 查看标签是否打上 kubectl get nodes --show-labels# deployment.yaml 片段把服务约束到 SSD 节点 apiVersion: apps/v1 kind: Deployment metadata: name: user-service spec: replicas: 3 selector: matchLabels: app: user-service template: metadata: labels: app: user-service spec: nodeSelector: disktype: ssd # 关键与 Node 标签匹配 containers: - name: user-service image: registry.internal/user-service:1.4.2 resources: limits: cpu: 2 # 限制 CPU防止离线任务抢占在线业务 memory: 4Gi requests: cpu: 1 memory: 2Gi逻辑说明nodeSelector是最简单的硬约束Pod 只会被调度到带disktypessd标签的节点resources.limits和requests是文档里强调的进程间隔离手段——通过限制容器运行时的 CPU 和内存配额避免一个离线应用失控占用大量 CPU把同主机的在线应用拖垮。参数上requests影响调度决策limits影响运行时上限两个都要设只设一个会出现调度不准或运行被 OOM-killed 的情况。2.3 滚动升级、蓝绿与金丝雀不停服更新的参数怎么配文档提到 K8S 内置滚动升级策略配合健康检查liveness 和 readiness 探针和 lifecycle hook 可以完成服务的不停服更新和回滚通过配置相关参数还能实现蓝绿部署和金丝雀部署。这部分是很多人配了但没配对的。spec: strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 # 升级时最多超出期望副本数 1 个 maxUnavailable: 0 # 升级时不允许有不可用副本保证不停服 template: spec: containers: - name: user-service readinessProbe: # 就绪探针通过后才接入流量 httpGet: path: /health/readiness port: 8080 initialDelaySeconds: 20 periodSeconds: 5 livenessProbe: # 存活探针失败则重启容器 httpGet: path: /health/liveness port: 8080 initialDelaySeconds: 40 periodSeconds: 10逻辑说明maxUnavailable: 0配合maxSurge: 1是“先起新、再停旧”的典型不停服配置代价是升级期间会多占一个副本的资源。readinessProbe决定 Pod 什么时候被加入 Service 的 Endpoints配不好会出现“容器起来了但流量打进来报 502”的经典翻车livenessProbe的initialDelaySeconds要给足Java 应用启动慢设太短会被反复重启陷入永远起不来的死循环。金丝雀部署则是在 Service 层面用两套 Deployment 加权重或按 label 分流文档没有展开具体参数这里不编造。3. 服务拆分与数据一致性从主工程平滑拆出用户服务的三步3.1 拆应用不拆数据库边界模糊时的保守策略文档对服务拆分的态度非常克制甚至有点反直觉只拆有确定边界能独立的业务服务拆分本质上是数据模型的拆分上层应用经得起倒腾底层数据模型经不起倒腾对于边界模糊的业务即使要拆只拆应用不拆数据库。这段话是整份文档里最值钱的经验之一。很多团队拆微服务翻车就翻在急着把数据库也一起拆了结果分布式事务、跨库 join、数据一致性全冒出来最后业务没跑通运维成本先翻倍。文档给的顺序是先把应用层拆开数据库先共享等边界真正清晰了再考虑数据拆分。这是典型的“先跑通再优化”也是康威定律在工程上的落地——当业务边界和组织架构冲突时宁愿选择更符合组织架构的拆分边界因为组织架构会在潜移默化中约束系统架构形态违背它容易出现“两不管”互相推脱的局面。3.2 三步拆出用户服务Feign 替换本地调用的完整流程文档给了一个从主工程平滑拆出用户服务的示例只有三步但每一步都有讲究。我把它还原成可抄的流程。第一步把用户相关的UserService、UserDAO分离出主工程加上UserController、UserDTO等形成独立的用户服务对外暴露 HTTP RESTful API。// 用户服务侧对外暴露 RESTful API RestController RequestMapping(/api/user) public class UserController { Autowired private UserService userService; GetMapping(/{id}) public UserDTO getById(PathVariable Long id) { // 内部仍走本地 UserService数据访问不变 return userService.queryById(id); } }第二步把主工程里用户相关的UserService类替换成UserFacade类用 Spring Cloud Feign 的注解去调用用户服务 API。// 主工程侧用 Feign 声明式调用替代本地 UserService FeignClient(name user-service, url ${user.service.url}) public interface UserFacade { GetMapping(/api/user/{id}) UserDTO getById(PathVariable(id) Long id); }第三步主工程所有依赖UserService接口的地方改为依赖UserFacade接口平滑过渡。// 改造前 Autowired private UserService userService; // 改造后只换接口类型调用方式几乎不变 Autowired private UserFacade userFacade; public OrderDTO buildOrder(Long userId) { UserDTO user userFacade.getById(userId); // 从本地调用变成远程调用 // ... 组装订单 }逻辑说明这三步的精髓在于“接口不变、实现换掉”。UserFacade的方法签名尽量和原UserService保持一致这样调用方改动最小。参数上FeignClient的name是服务名url在没接服务发现时可以直接写地址接入 K8S Service 后可以改成走服务名。文档特别强调经过这三步用户服务独立成一个微服务而整个系统代码的复杂性几乎没有增加——这就是平滑拆分的价值。3.3 最终一致性的瑞士军刀定时任务重试 幂等文档说他们碰到的大部分数据一致性场景都可以接受最终一致“定时任务重试 幂等”是解决这类问题的一把瑞士军刀。为此他们开发了一套独立于具体业务的“分布式定时任务 可靠事件”处理框架把任何需保证数据最终一致的操作定义为一种事件。以用户初始化为例注册一个用户后必须对其进行初始化初始化是耗时异步操作包含租户初始化、网络初始化、配额初始化等需要协调不同系统完成。他们把初始化定义为initTenant事件把事件及上下文存入可靠事件表由分布式定时任务触发执行成功则清除记录失败则再次触发。对实时性要求高的场景可以先触发一次事件处理再把事件存入可靠事件表。-- 可靠事件表结构示意 CREATE TABLE reliable_event ( id BIGINT PRIMARY KEY AUTO_INCREMENT, event_type VARCHAR(64) NOT NULL, -- 如 initTenant biz_id VARCHAR(64) NOT NULL, -- 业务唯一键用于幂等 payload TEXT, -- 事件上下文 status TINYINT DEFAULT 0, -- 0待处理 1成功 retry_count INT DEFAULT 0, created_at DATETIME, updated_at DATETIME, UNIQUE KEY uk_type_biz (event_type, biz_id) -- 幂等兜底 );逻辑说明uk_type_biz唯一索引是幂等的第一道防线同一个业务键的同类事件重复插入会失败天然去重。事件处理器实现幂等有多种方式文档提到他们用过布尔型状态位、UUID 去重、基于版本号做 CAS。参数上retry_count要设上限并配合告警否则一个永远失败的事件会无限重试拖垮定时任务。这套框架的关键在于“事件先落库、再执行”保证即使执行过程中服务挂了事件也不会丢。4. 配置管理与故障隔离Disconf 统一配置和 Hystrix 二次开发4.1 为什么 ConfigMap 不够用要上 DisconfDocker 通过分层镜像解决了应用和运行环境的一致性问题但不同环境下服务的配置是不一样的。配置不同导致开发环境构建的镜像无法直接在测试环境用QA 验证过的镜像无法直接上生产结果每个环境的镜像都要重新构建。解决思路无非是把配置提取出来以环境变量方式在容器启动时注入K8S 也给了 ConfigMap但文档明确指出这种方式有一个问题配置信息变更后无法实时生效。他们最终采用 Disconf 统一配置中心。配置统一托管后从开发环境构建的容器镜像可以直接提交到测试环境QA 验证通过后上演练、预发布和生产环境。一方面避免了重复的应用打包和镜像构建另一方面真正实现了线上线下应用的一致性。方案配置注入方式变更是否实时生效镜像能否跨环境复用环境变量容器启动时注入否需重启否配置不同需重建K8S ConfigMap挂载或环境变量否需重启 Pod部分仍需重建Disconf 统一配置中心客户端拉取/推送是是一份镜像走全环境这张表解释了为什么他们宁愿引入一个额外组件也不用 ConfigMap。对配置变更频繁、环境多的团队实时生效这一条就足够决定选型。4.2 Hystrix 二次开发故障隔离和熔断怎么落到 API 网关文档说 Spring Cloud Hystrix 在他们的微服务治理中扮演了重要角色他们对其做了二次开发提供更灵活的故障隔离、降级和熔断策略满足 API 网关等服务的特殊业务需求。进程内的故障隔离只是服务治理的一方面另一方面是在混部主机上应用间应该互相隔离避免进程间互抢资源影响 SLA。这两层隔离要分开理解。进程内隔离靠 Hystrix 的线程池或信号量把不同依赖的调用隔离开一个下游慢不会拖垮整个服务进程间隔离靠 K8S 的资源配额限制容器的 CPU 和内存避免离线应用失控影响同主机的在线应用。文档把这两者合起来称为实践 “Design for Failure” 设计哲学。// Hystrix 命令示意为下游调用配置独立线程池和降级 HystrixCommand( groupKey userService, commandKey getUser, threadPoolKey userPool, // 独立线程池隔离依赖 threadPoolProperties { HystrixProperty(name coreSize, value 20), HystrixProperty(name maxQueueSize, value 100) }, fallbackMethod getUserFallback // 熔断或超时后的降级方法 ) public UserDTO getUser(Long id) { return userFacade.getById(id); } public UserDTO getUserFallback(Long id) { // 返回兜底数据或缓存保证主流程不中断 return UserDTO.empty(id); }逻辑说明threadPoolKey让这个依赖拥有独立线程池下游变慢时只耗尽自己的池子不会影响其他依赖。fallbackMethod是熔断打开或调用超时后的降级入口返回兜底数据保证主流程可用。参数上coreSize和maxQueueSize要根据下游 QPS 和可接受延迟来调设太小会频繁触发拒绝设太大起不到隔离作用。文档提到他们做了二次开发提供更灵活的策略具体实现没有展开这里只给标准用法不编造他们的定制细节。5. 避坑与排查微服务化落地时最容易翻车的五件事5.1 服务发现两套并存调用绕了远路现象服务能通但延迟比预期高排查发现请求先走 Eureka 注册中心再转发而 K8S Service 的 DNS 解析其实已经能直达。原因同时引入了 Spring Cloud 的服务发现和 K8S Service两套机制都在工作调用链多了一跳。解决明确分工服务发现统一交给 K8S Service业务代码里不再维护 Eureka 客户端Feign 的url或服务名直接指向 K8S Service 名避免双注册。5.2 探针参数拍脑袋Pod 反复重启现象Java 服务部署后一直CrashLoopBackOff日志显示容器刚启动就被杀。原因livenessProbe的initialDelaySeconds设得太短应用还没启动完就被判定为不存活触发重启重启后又没起来形成死循环。解决initialDelaySeconds按应用冷启动时间给足余量readinessProbe和livenessProbe分开配就绪探针可以激进一点存活探针必须保守。5.3 配置写死在镜像里跨环境要重建现象开发环境验证好的镜像到测试环境跑不起来报配置错误。原因配置通过环境变量或构建时写死进镜像不同环境配置不同镜像无法复用。解决配置全部外置到统一配置中心镜像只保留代码和默认值一份镜像走完联调、测试、预发布、生产。5.4 拆服务顺手拆了数据库一致性炸锅现象用户服务独立后订单服务需要用户数据跨库查询和分布式事务接踵而至开发效率反而下降。原因违反了文档里“底层数据模型经不起倒腾”的原则边界还没清晰就把数据库拆了。解决边界模糊时只拆应用不拆数据库先共享数据源等业务边界稳定后再评估数据拆分。5.5 资源配额不设限离线任务拖垮在线业务现象同一主机上的在线服务偶发超时排查发现是旁边的离线任务突然占用大量 CPU。原因容器没有设置resources.limits离线应用失控时抢占了在线应用的资源。解决所有容器强制设置 CPU 和内存的requests与limits用 K8S 的资源配额实现进程间隔离这是文档里明确强调的做法。6. 进阶技巧用可靠事件表 幂等键把最终一致性做扎实前面提到“定时任务重试 幂等”是最终一致性的瑞士军刀但真正落地时幂等这一环最容易写虚。我自己的习惯是任何进入可靠事件表的事件都必须带一个业务唯一键并且事件处理器在动手之前先做一次幂等校验而不是等数据库唯一索引报错再兜底。具体做法是给每个事件处理器加一个前置检查用业务键查一次状态位或去重表命中就直接返回成功不重复执行业务逻辑。文档里提到他们用过布尔型状态位、UUID 去重、基于版本号做 CAS这三种各有适用场景状态位适合有明确“已处理”标记的业务UUID 适合一次性的操作版本号 CAS 适合有并发更新的场景。public void handleInitTenant(ReliableEvent event) { String bizId event.getBizId(); // 幂等前置校验已处理过直接返回 if (idempotentRepository.exists(event.getEventType(), bizId)) { return; } // 执行业务逻辑 tenantService.init(bizId); // 标记已处理与业务操作尽量在同一事务或补偿范围内 idempotentRepository.mark(event.getEventType(), bizId); }逻辑说明idempotentRepository.exists是幂等的前置闸门mark是处理完成的记录。这里有个坑如果业务操作和mark不在同一事务里业务成功但mark失败下次重试会重复执行。常见做法是把mark和业务操作放同一本地事务或者让业务操作本身也幂等。参数上bizId的选择很关键必须是能唯一标识一次业务操作的键比如用户 ID 加操作类型用错键会导致该重试的没重试、不该去重的被去重。验证这套机制是否可靠我一般会做两件事一是手动往可靠事件表插一条status0的记录看定时任务是否触发、成功后是否清除二是把事件处理器的业务逻辑人为抛异常观察retry_count是否递增、达到上限后是否告警。这两步走完基本能确认最终一致性链路是通的。从那以后我每次设计异步一致性方案都强制先问一句“这个事件的业务唯一键是什么、幂等校验放在哪”问不清楚就不动手写代码。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

Spring Boot条件装配:@ConditionalOnMissingBean源码级解析与实战

Spring Boot条件装配:@ConditionalOnMissingBean源码级解析与实战

Spring Boot 有一句被反复引用的话:约定大于配置。这句话落到源码层面,真正支撑它的并不是启动时扫描包的逻辑,而是一整套条件装配注解。尤其是ConditionalOnMissingBean,名字看着低调,但在Spring Boot的自动配置里&am…

2026/10/13 13:46:25 阅读更多 →
单键电梯问题:用BFS求最少按键次数的最短路解法

单键电梯问题:用BFS求最少按键次数的最短路解法

1. 题目内容与核心思路1.1 题意重述:一座“不太智能”的电梯先花三十秒把原题说清楚。假设一栋楼有N层,你在第A层,想去第B层。每层电梯门口都只有一个按钮,按钮上写着一个数字Ki,这个数字不是楼层号,而是“…

2026/10/13 13:46:28 阅读更多 →
嵌入式ARM汇编学习指南:从看懂反汇编到手写启动代码

嵌入式ARM汇编学习指南:从看懂反汇编到手写启动代码

1. 为什么还要啃ARM汇编这块硬骨头刚入行做嵌入式那会儿,我也觉得汇编是上个时代的东西。C语言写得好好的,编译器那么聪明,谁还去看那些满屏的MOV、LDR、B?直到有一次调一个启动代码的异常,程序跑飞到Bootloader阶段就…

2026/10/13 13:45:28 阅读更多 →

最新新闻

基于Matlab GUI的轮轨接触几何计算程序设计与实现

基于Matlab GUI的轮轨接触几何计算程序设计与实现

做车辆动力学的人,应该都有过被轮轨接触几何支配的恐惧。不管你是在算临界速度、评估脱轨安全性,还是在调悬挂参数,第一关都得把轮轨接触几何算清楚。左右轮滚动圆半径差、接触角、等效锥度,这些量直接决定你后面的动力学仿真靠不…

2026/10/13 16:51:39 阅读更多 →
Winform轻量级可交互FlowChart流程图实现方案

Winform轻量级可交互FlowChart流程图实现方案

简介:这是一份基于WinForm平台实现的轻量级流程图绘制工具源码,面向C#初学者与小型项目开发者,解决快速构建可视化业务流程图的需求。资源以FlowChart.Net开源库为基础深度定制,功能简洁实用,适合嵌入教学演示、内部管…

2026/10/13 16:51:39 阅读更多 →
SIP软电话源码实战:从编译到NAT穿透与信令定制

SIP软电话源码实战:从编译到NAT穿透与信令定制

简介:本资源是一份基于SIP协议的软电话完整源代码工程,面向通信协议开发初学者、VoIP系统学习者及嵌入式/网络应用开发者,旨在帮助理解SIP信令交互、媒体协商与实时语音通信的核心实现逻辑。压缩包共302个文件,含45个C源文件&…

2026/10/13 16:51:39 阅读更多 →
测试工程师成长路径:从功能测试到测试架构师的能力进阶指南

测试工程师成长路径:从功能测试到测试架构师的能力进阶指南

前阵子我面试一位五年经验的测试工程师,简历上写着“熟悉自动化测试”,结果我随口问了一句“接口测试的断言除了状态码还会验什么”,他支支吾吾说了半天,最后落点在“看返回结果对不对”。这个场景不是个例,聊测试工程…

2026/10/13 16:51:39 阅读更多 →
MySQL课件精讲:从E-R图到候选码的数据库设计核心

MySQL课件精讲:从E-R图到候选码的数据库设计核心

简介:这套《MySql数据库原理及应用》课件汇总共1个文件(pptx格式),压缩包大小13.29MB,覆盖整本教材的教学内容。资源面向数据库初学人员、高校师生及自学MySQL的读者,系统讲解数据库系统基础知识与MySQL应用…

2026/10/13 16:51:39 阅读更多 →
AI工程化能力三支柱:数据智能、模型架构与系统交付

AI工程化能力三支柱:数据智能、模型架构与系统交付

1. 这不是“学AI”,而是构建一套可迁移、能落地的工程化能力体系很多人点开“AI培训学什么”这类标题,第一反应是找速成班、抄代码、背模型名字——结果学了三个月,连数据怎么清洗都卡在pandas报错上;或者花两万块报了“大模型实战…

2026/10/13 16:50:38 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →