当前位置: 首页 > news >正文

二十七、Tomcat专题总结与拓展

文章目录

  • 一、Tomcat设计思路总结
    • 1、Tomcat整体架构
    • 2、Tomcat设计思路
  • 二、Tomcat源码设计精髓
  • 三、拓展:SpringBoot整合Tomcat源码分析
  • 四、拓展:SpringBoot整合Undertow实战
    • 1、Undertow概述
    • 2、SpringBoot集成Undertow
      • 2.1、引入依赖
      • 2.2、application.properties配置

一、Tomcat设计思路总结

1、Tomcat整体架构

在这里插入图片描述

2、Tomcat设计思路

在这里插入图片描述

二、Tomcat源码设计精髓

思考:Tomcat使用了哪些设计模式?

思考:Tomcat线程池和传统JDK线程池有什么区别? (自定义线程池的需求可以参考tomcat的线程池)

Tomcat线程池默认实现StandardThreadExecutor。Tomcat 线程池和 Java 原生线程池的区别:

  • 自定义了拒绝策略,Tomcat 在线程总数达到最大数时,不是立即执行拒绝策略,而是再尝试向任务队列添加任务,添加失败后再执行拒绝策略。

  • TaskQueue 重写了 LinkedBlockingQueue 的 offer 方法。只有当前线程数大于核心线程数、小于最大线程数,并且已提交的任务个数大于当前线程数时,也就是说线程不够用了,但是线程数又没达到极限,才会去创建新的线程。目的:在任务队列的长度无限制的情况下,让线程池有机会创建新的线程。

三、拓展:SpringBoot整合Tomcat源码分析

在这里插入图片描述

四、拓展:SpringBoot整合Undertow实战

1、Undertow概述

Undertow作为SpringBoot默认集成的三大容器之一(Tomcat、Jetty、Undertow);首先它是Red Hat公司旗下的开源产品, 由Java语言开发,是一款灵活的高性能Web服务器;不仅支持阻塞IO还支持非阻塞IO。由于Undertow通过java语言开发,即在java项目中使用可直接嵌入。Undertow在性能使用方面优于Jetty、Tomcat。

官网: https://undertow.io/

特性:

  • 红帽开源产品,目前是 WildFly(JBoss AS)的默认 Web 容器。

  • 在不需要非常复杂的配置情况下,可以展现出很高的性能以及稳定性。

  • 非常轻量,只需通过 API 即可快速搭建 Web 服务器。

  • 底层基于 XNIO,和 Netty 设计类似,使用 NIO 作为网络交互的方式,并且使用直接内存作为网络传输的 buffer,减少业务的 GC。

  • 由于基于这种异步框架,所以配置也是交由链式Handler配置和处理请求,可以最小化按需加载模块,无须加载多余功能

  • 支持 Servlet 4.0 以及向下兼容,支持 WebSocket

2、SpringBoot集成Undertow

Spring boot 默认使用 Tomcat 内嵌容器 ,依赖于 spring-boot-starter-web 。我们只需要排除 Tomcat 依赖,引用Undertow 就可以了

2.1、引入依赖

<!--添加web依赖-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><!--移除Tomcat依赖--><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions>
</dependency>
<!-- 添加Undertow依赖 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-undertow</artifactId>
</dependency>

2.2、application.properties配置

# Undertow 日志存放目录
server.undertow.accesslog.dir=
# 是否启动日志
server.undertow.accesslog.enabled=true 
# 日志格式
server.undertow.accesslog.pattern=common
# 日志文件名前缀
server.undertow.accesslog.prefix=access_log
# 日志文件名后缀
server.undertow.accesslog.suffix=log
# HTTP POST请求最大的大小
server.undertow.max-http-post-size=0 
# 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
server.undertow.io-threads=4
# 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
server.undertow.worker-threads=20
# 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
# 每块buffer的空间大小,越小的空间被利用越充分
server.undertow.buffer-size=1024
# 是否分配的直接内存
server.undertow.direct-buffers=true

当你看到 Undertow started on port 8080 (http) 的行输出时,说明此时正在使用的是 Undertow 容器,而非 Tomcat容器。

在这里插入图片描述

相关文章:

二十七、Tomcat专题总结与拓展

文章目录 一、Tomcat设计思路总结1、Tomcat整体架构2、Tomcat设计思路 二、Tomcat源码设计精髓三、拓展&#xff1a;SpringBoot整合Tomcat源码分析四、拓展&#xff1a;SpringBoot整合Undertow实战1、Undertow概述2、SpringBoot集成Undertow2.1、引入依赖2.2、application.prop…...

WPF+MVVM案例实战与特效(三十九)- 深度剖析一个弧形进度条的实现

文章目录 1、使用 Path 结合 ArcSegment 绘制圆弧1、属性解读2、静态圆弧3、动态圆弧4、运行效果5、圆弧两端点的形状2、总结1、使用 Path 结合 ArcSegment 绘制圆弧 1、属性解读 Path 是 WPF 中的一个标记元素,用于绘制复杂的几何路径形状,而 ArcSegment 用于描述 Path 中…...

Spring Boot 应用 “Connection is closed” 及 MySQL 空闲超时断开连接解决方案

在使用 Spring Boot MySQL HikariCP 的组合时&#xff0c;可能会在生产或测试环境中遭遇类似如下异常信息&#xff1a; org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [SELECT ...]; SQL state [nu…...

【数据库】Oracle

文章目录 1. 批量更新 1. 批量更新 这种方式将所有更新操作放在一个事务中执行&#xff0c;减少了与数据库的交互次数&#xff0c;从而可能提高性能。此外&#xff0c;事务处理还可以确保数据的一致性和完整性。begin; update mytable set STATE 102,STATE_DATE now() …...

链式栈的实现及其应用

目录 一、链式栈结构模型 二、链式栈的实现 2.1创建 2.2压栈 2.3出栈 2.4判断栈是否为空 2.5查看栈顶 2.6释放栈 三、应用 链式栈实际上就是基于链表&#xff0c;压栈和弹栈可分别看作头插和头删&#xff0c;链表尾部就是栈底&#xff0c;头指针就是栈顶指针 一、链式…...

结构化的Prompt

资源库&#xff1a; AI 提示词-WayToAGI精选高效的AI提示词库&#xff0c;助力创作者和开发者解锁人工智能的潜力。通过我们的提示词和策略&#xff0c;优化您的AI工具使用效率&#xff0c;激发创意思维&#xff0c;提升产出质量。https://www.waytoagi.com/prompts?tag6 结构…...

ChatGPT突然全球宕机,OpenAI致歉:并查明原因,正积极修复

ChatGPT突然全球宕机&#xff0c;OpenAI致歉&#xff1a;并查明原因&#xff0c;正积极修复 在 2024 年 12 月 12 日上午的北京时间时段内&#xff0c;ChatGPT突发全球宕机&#xff0c;OpenAI致歉&#xff1a;已查明原因&#xff0c;正积极修复 官方证实了其备受瞩目的聊天机器…...

【实验16】基于双向LSTM模型完成文本分类任务

目录 1 数据集处理- IMDB 电影评论数据集 1.1 认识数据集 1.2 数据加载 1.3 构造Dataset类 1.4 封装DataLoader 1.4.1 collate_fn函数 1.4.2 封装dataloader 2 模型构建 2.1 汇聚层算子 2.2 模型汇总 3 模型训练 4 模型评价 5 模型预测 6 完整代码 7 拓展实验 …...

【中工开发者】鸿蒙商城app

这学期我学习了鸿蒙&#xff0c;想用鸿蒙做一个鸿蒙商城app&#xff0c;来展示一下。 项目环境搭建&#xff1a; 1.开发环境&#xff1a;DevEco Studio2.开发语言&#xff1a;ArkTS3.运行环境&#xff1a;Harmony NEXT base1 软件要求&#xff1a; DevEco Studio 5.0.0 Rel…...

SpringBoot 整合 MongoDB 实现文档存储

一、MongoDB 简介 MongoDB&#xff08;来自于英文单词“Humongous”&#xff0c;中文含义为“庞大”&#xff09;是可以应用于各种规模的企业、各个行业以及各类应用程序的开源数据库。基于分布式文件存储的数据库。由C语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解…...

鲲鹏麒麟安装ElasticSearch7.8.0

因项目需求需要在鲲鹏麒麟服务器上安装ElasticSearch7.8.0&#xff0c;考虑Docker方式安装比较简单&#xff0c;因此使用Docker方式安装 环境信息 操作系统&#xff1a;Kylin Linux Advanced Server release V10 (Tercel) Docker&#xff1a;18.09.0 [rootserver ~]# uname …...

NDN命名数据网络和域名的区别

NDN(Named Data Networking)网络的概念 NDN是一种新型的网络架构,也被称为命名数据网络。与传统的以IP地址为中心的网络架构不同,NDN是以数据(内容)本身命名为中心的网络架构。在传统网络中,我们通过IP地址来寻找主机设备,然后获取该设备上存储的内容。而在NDN网络中,…...

PyTorch基本使用-自动微分模块

学习目的&#xff1a;掌握自动微分模块的使用 训练神经网络时&#xff0c;最常用的算法就是反向传播。在该算法中&#xff0c;参数&#xff08;模型权重&#xff09;会根据损失函数关于对应参数的梯度进行调整。为了计算这些梯度&#xff0c;PyTorch 内置了名为 torch.autogra…...

关于linux kernel softlockup 的探究

1. 基本解释 softlockup&#xff1a;发生在某个 CPU 长时间占用资源&#xff0c;但 CPU 仍然可以响应中断 和调度器。软死锁通常不会导致系统崩溃&#xff0c;但可能会使系统响应变慢. 2. 驱动模拟softlockup 以下为代码实现 #include <linux/module.h> #include <…...

MySQL 时区参数 time_zone 详解

文章目录 前言1. 时区参数影响2. 如何设置3. 字段类型选择 前言 MySQL 时区参数 time_zone 有什么用&#xff1f;修改它有什么影响&#xff1f;如何设置该参数&#xff0c;本篇文章会详细介绍。 1. 时区参数影响 time_zone 参数影响着 MySQL 系统函数还有字段的 DEFAULT CUR…...

【计算机网络层】数据链路层 :局域网和交换机

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【计算机网络】【Mybatis篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 目录 &#x1f3af;局域网 &#x1f6a6;局域网…...

WebSocket、Socket、TCP 与 HTTP:深入探讨与对比

随着互联网技术的快速发展&#xff0c;现代Web应用对于实时通信的需求越来越高。传统的HTTP协议由于其无状态和请求-响应模式的限制&#xff0c;在实现高效、低延迟的实时通信方面存在一定的局限性。为了解决这一问题&#xff0c;WebSocket协议应运而生&#xff0c;它提供了一种…...

【开源免费】基于SpringBoot+Vue.JS在线办公系统(JAVA毕业设计)

本文项目编号 T 001 &#xff0c;文末自助获取源码 \color{red}{T001&#xff0c;文末自助获取源码} T001&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…...

Vue指令

创建项目&#xff1a; vue init webpack 项目名称 element-ui npm i element-ui -saxios npm i axios1.1.3 -S vuex npm i vuex3.6.2 -S vuex持久化 npm i -S vuex-persistedstate4.1.0代理模版 proxyTable: {/api: {target: http://localhost:8081/,changeOrigin: true,pathRe…...

经典文献阅读之--ATI-CTLO(基于自适应时间间隔的连续时间Lidar-Only里程计)

0. 简介 激光雷达扫描中的运动失真&#xff0c;由机器人的激烈运动和环境地形特征引起&#xff0c;显著影响了3D激光雷达里程计的定位和制图性能。现有的失真校正解决方案在计算复杂性和准确性之间难以平衡。《ATI-CTLO: Adaptive Temporal Interval-based Continuous-Time Li…...

【GitHub分享】you-get项目

【GitHub分享】you-get 一、介绍二、安装教程三、使用教程四、配置ffmpeg五&#xff0c;卸载 如果大家想要更具体地操作可去开源网站查看手册&#xff0c;这里只是一些简单介绍&#xff0c;但是也够用一般&#xff0c;有什么问题&#xff0c;也可以留言。 一、介绍 you-get是一…...

右玉200MW光伏电站项目 微气象、安全警卫、视频监控系统

一、项目名称 山西右玉200MW光伏电站项目 微气象、安全警卫、视频监控系统 二、项目背景&#xff1a; 山西右玉光伏发电项目位于右玉县境内&#xff0c;总装机容量为200MW&#xff0c;即太阳能电池阵列共由200个1MW多晶硅电池阵列子方阵组成&#xff0c;每个子方阵包含太阳能…...

box 提取

box 提取 import json import os import shutilimport cv2 import numpy as np import pypinyinclass Aaa():passdef pinyin(word):s for i in pypinyin.pinyin(word, stylepypinyin.NORMAL):s .join(i)return s if __name__ __main__:selfAaa()base_dirrE:\data\dao\20241…...

【合作原创】使用Termux搭建可以使用的生产力环境(六)

前言 在上一篇【合作原创】使用Termux搭建可以使用的生产力环境&#xff08;五&#xff09;-CSDN博客我们讲到了如何美化xfce4桌面&#xff0c;达到类似于Windows的效果&#xff0c;这一篇将继续在上一篇桌面的基础上给我们的系统装上必要的软件&#xff0c;让它做到真正可以使…...

C#—索引器

C#—索引器 索引器&#xff08;Indexer&#xff09;是类中的一个特殊成员&#xff0c;它能够让对象以类似数组的形式来操作&#xff0c;使程序看起来更为直观&#xff0c;更容易编写。索引器与属性类似&#xff0c;在定义索引器时同样会用到 get 和 set 访问器&#xff0c;不同…...

Microsemi Libero SoC免费许可证申请指南(Microchip官网2024最新方法)

点击如下链接&#xff1a; https://www.microchip.com/en-us/products/fpgas-and-plds/fpga-and-soc-design-tools/fpga/licensing 点击右侧&#xff0c;请求免费的License 如果提示登录&#xff0c;请先登录Microchip账号。 点击Request Free License。 选项一年免费的Li…...

【CSS in Depth 2 精译_074】第 12 章 CSS 排版与间距概述 + 12.1 间距设置(下):行内元素的间距设置

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第四部分 视觉增强技术 ✔️【第 12 章 CSS 排版与间距】 ✔️ 12.1 间距设置 12.1.1 使用 em 还是 px12.1.2 对行高的深入思考12.1.3 行内元素的间距设置 ✔️ 12.2 Web 字体12.3 谷歌字体 文章目…...

React 18

文章目录 React 18自动批处理并发特性Suspense 组件增强新 HookscreateRoot API 替代 ReactDOM.renderStrict Mode严格模式服务器端渲染改进性能优化 React 18 React 18 引入了一系列新特性和改进&#xff0c;旨在提升性能、改善用户体验&#xff0c;并简化开发流程。以下是 R…...

yolov,coco,voc标记的睡岗检测数据集,可识别在桌子上趴着睡,埋头睡觉,座椅上靠着睡,平躺着睡等多种睡姿的检测,6549张图片

yolov&#xff0c;coco,voc标记的睡岗检测数据集&#xff0c;可识别在桌子上趴着睡&#xff0c;埋头睡觉&#xff0c;座椅上靠着睡&#xff0c;平躺着睡等多种睡姿的检测&#xff0c;6549张图片 数据集分割 6549总图像数 训练组91&#xff05; 5949图片 有效集9&#x…...

Pydantic中的discriminator:优雅地处理联合类型详解

Pydantic中的discriminator&#xff1a;优雅地处理联合类型详解 引言1. 什么是discriminator&#xff1f;2. 基本使用示例3. discriminator的工作原理4. 更复杂的实际应用场景5. 使用建议6. 潜在陷阱和注意事项结论最佳实践 引言 在Python的类型系统中&#xff0c;有时我们需要…...

vue实现文件流形式的导出下载

文章目录 Vue 项目中下载返回的文件流操作步骤一、使用 Axios 请求文件流数据二、设置响应类型为 ‘blob’三、创建下载链接并触发下载四、在 Vue 组件中集成下载功能五、解释与实例说明1、使用 Axios 请求文件流数据&#xff1a;设置响应类型为 blob&#xff1a;创建下载链接并…...

Dify工具前奏:一个好玩的镜像,selenium

文章目录 按照惯例,闲聊开篇通义千问给出的回答,蛮有趣的。什么是selenium?使用场景缺点按照惯例,闲聊开篇 眼看就要过0点了,今天写点有把握的。 我先卖个关子,问你们一个问题: 我用mobaxterm或者其它的工具,ssh访问到远程服务器。但我想在那台机器上打开浏览器该怎么…...

警惕!手动调整服务器时间可能引发的系统灾难

警惕&#xff01;手动调整服务器时间可能引发的系统灾难 1. 鉴权机制1.1 基于时间戳的签名验证1.2 基于会话的认证机制&#xff08;JWT、TOTP&#xff09; 2. 雪花算法生成 ID 的影响2.1 时间戳回拨导致 ID 冲突2.2 ID 顺序被打乱 3. 日志记录与审计3.1 日志顺序错误3.2 审计日…...

Python泛型编程:TypeVar和Generic详解 - 写给初学者的指南

Python泛型编程&#xff1a;TypeVar和Generic详解 - 写给初学者的指南 前言1. 为什么需要泛型&#xff1f;2. TypeVar&#xff1a;定义泛型类型变量3. Generic&#xff1a;创建泛型类4. 多个泛型类型变量5. 使用场景小结结语 前言 大家好&#xff01;今天我们来聊一聊Python中…...

单片机:实现控制LED灯亮灭(附带源码)

使用单片机控制LED灯的亮灭是一个非常基础的嵌入式应用项目&#xff0c;适合初学者学习如何操作GPIO&#xff08;通用输入输出&#xff09;端口以及如何控制外设。通过该项目&#xff0c;您可以学习如何通过按键输入、定时器控制或其他触发条件来控制LED灯的开关状态。 1. 项目…...

Dcoker安装nginx,完成反向代理和负载均衡

1. 简介 官网&#xff1a;nginx Nginx是一个高性能的 HTTP 和反向代理 Web 服务器。它的主要功能包括反向代理、负载均衡和动静分离等。正因为 Nginx的这些功能能够为系统带来性能和安全方面的诸多优势&#xff0c;我们在项目部署时需要引入 Nginx组件。接下来我们会逐一向大…...

Java转C之C/C++ 的宏定义和预处理

C/C 宏定义和预处理总结 C/C 的宏定义和预处理器是在编译前执行的一系列文本处理操作&#xff0c;用于包含文件、定义常量、条件编译和控制编译器行为。以下是全面总结&#xff0c;涵盖各种知识点、注意事项以及示例。 表1&#xff1a;C/C 预处理指令和功能 预处理指令功能描…...

【老白学 Java】数字格式化

数字格式化 文章来源&#xff1a;《Head First Java》修炼感悟。 很多时候需要对数字或日期进行格式化操作&#xff0c;来达到某些输出效果。Java 的 Formatter 类提供了很多扩展性功能用于字符串的格式化&#xff0c;只要调用 String 静态方法 format() &#xff0c;传入参数…...

elementUI修改table样式

在Vue项目中&#xff0c;如果使用的是单文件组件&#xff08;.vue&#xff09;&#xff0c;并且样式是通过<style>标签定义的&#xff0c;vue2可以使用/deep/&#xff0c;vue3可以使用::v-deep选择器来修改ElementUI组件的样式。 1.修改表头背景色 /deep/.el-table__head…...

Invalid bound statement (not found) 错误解决

出现这个错误提示&#xff1a;Invalid bound statement (not found): com.xxx.small_reservior.dao.WaterRainMapper.getWaterRainByRegion&#xff0c;通常表示 MyBatis 框架无法找到与给定的 getWaterRainByRegion 方法匹配的 SQL 映射语句。这种问题通常发生在以下几种情况中…...

AWD学习(二)

学习参考&#xff1a; AWD攻防学习总结&#xff08;草稿状态&#xff0c;待陆续补充&#xff09;_awd攻防赛入门-CSDN博客国赛分区赛awd赛后总结-安心做awd混子-安全客 - 安全资讯平台 记第一次 AWD 赛前准备与赛后小结-腾讯云开发者社区-腾讯云 AWD学习笔记 - DiaosSamas Blog…...

VUE常见问题汇总

目录 1、80端口占用问题 2、sass版本安装问题 3、Missing binding node_modules/node-sass/vendor/darwin-x64-72/binding.node 4、Downloading binary from https://github.com/sass/node-sass/releases/download/v4.14.1/win32-x64-83_binding.node Cannot download &qu…...

H.323音视频协议

概述 H.323是国际电信联盟&#xff08;ITU&#xff09;的一个标准协议栈&#xff0c;该协议栈是一个有机的整体&#xff0c;根据功能可以将其分为四类协议&#xff0c;也就是说该协议从系统的总体框架&#xff08;H.323&#xff09;、视频编解码&#xff08;H.263&#xff09;、…...

第六届地博会开幕,世界酒中国菜美食文化节同期启幕推动地标发展

第六届知交会暨地博会开幕&#xff0c;辽黔欧三地馆亮点纷呈&#xff0c;世界酒中国菜助力地理标志产品发展 第六届知交会暨地博会盛大开幕&#xff0c;多地展馆亮点频出&#xff0c;美食文化节同期启幕推动地标产业发展 12月9日&#xff0c;第六届粤港澳大湾区知识产权交易博…...

如何在安卓系统里面用C++写一个获取摄像头原始数据并保存成.yuv文件

在 Android 系统中使用 C 编写一个获取摄像头原始数据并保存为 .yuv 文件的程序&#xff0c;并且通过 Android.bp 编译&#xff0c;你需要结合 V4L2 和 Android NDK 的特性来实现。以下是详细的步骤和代码示例。 步骤 1: 设置权限 确保你的应用程序有访问摄像头的权限。在 An…...

算法分析与设计之分治算法

文章目录 前言一、分治算法divide and conquer1.1 分治定义1.2 分治法的复杂性分析&#xff1a;递归方程1.2.1 主定理1.2.2 递归树法1.2.3 迭代法 二、典型例题2.1 Mergesort2.2 Counting Inversions2.3 棋盘覆盖2.4 最大和数组2.5 Closest Pair of Points2.6 Karatsuba算法&am…...

AI大模型学习笔记|多目标算法梳理、举例

多目标算法学习内容推荐&#xff1a; 1.通俗易懂讲算法-多目标优化-NSGA-II(附代码讲解)_哔哩哔哩_bilibili 2.多目标优化 (python pyomo pareto 最优)_哔哩哔哩_bilibili 学习笔记&#xff1a; 通过网盘分享的文件&#xff1a;多目标算法学习笔记 链接: https://pan.baidu.com…...

【竞技宝】LOL:JDG官宣yagao离队

北京时间2024年12月13日,在英雄联盟S14全球总决赛结束之后,各大赛区都已经进入了休赛期,目前休赛期也快进入尾声,LPL大部分队伍都开始陆续官宣转会期的动向,其中JDG就在近期正式官宣中单选手yagao离队,而后者大概率将直接选择退役。 近日,JDG战队在官方微博上连续发布阵容变动消…...

iOS runtime总结数据结构,消息传递、转发和应用场景

runtime篇 首先看一下runtiem底层的数据结构 首先从objc_class这么一个结构体&#xff08;数据结构&#xff09;开始&#xff0c;objc_class继承于objc_object。 objc_object当中有一个成员变量叫isa_t&#xff0c;那么这个isa_t指针就指向一个objc_class类型的类对象&#xff…...

An error happened while trying to locate the file on the Hub and we cannot f

An error happened while trying to locate the file on the Hub and we cannot find the requested files in the local cache. Please check your connection and try again or make sure your Internet connection is on. 关于上述comfy ui使用control net预处理器的报错问…...