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

看一看 中间件Middleware

中间件(Middleware)是介于操作系统与应用程序之间的一层软件

它为分布式应用程序提供了统一的通信、数据交换、服务调用、消息传递等能力。
它的作用就像“胶水”,连接各个系统组件。

文章目录

      • 消息队列
      • 缓存中间件
      • 数据库中间件
      • 服务注册与发现
      • Web 中间件
      • RPC 中间件

消息队列

Message Queue Middleware

消息队列是 现代分布式系统中的关键组件,用来解耦、削峰、异步处理和提高系统可扩展性。

消息队列是一种异步通信机制:发送方(Producer)把消息放到队列里,接收方(Consumer)从队列中取消息。中间的“队列”就是中间件的作用。

功能:

  • 解耦:它让两个系统模块不必同时在线,发送者发送完就走,消费者有空再处理。
  • 削峰填谷:在高并发场景下,队列能缓冲瞬间大量请求,防止系统崩溃。
  • 异步处理
  • 广播/订阅:一个消息可以被多个消费者订阅,比如用户注册成功后,分别发送欢迎邮件、创建用户初始配置等。
中间件特点应用场景
RabbitMQ基于 Erlang,支持 AMQP 协议,功能丰富,支持事务、插件机制强金融、电商、任务调度
Kafka高吞吐量、分布式、持久化强、偏向日志收集/流处理日志收集、用户行为追踪、监控
RocketMQ阿里开源,Java 编写,事务消息支持好,性能优秀国内互联网、电商场景多见
ActiveMQJava 实现,老牌 MQ,支持多协议轻量级系统、企业系统
Redis StreamRedis 5.0 引入,轻量级流处理方案简单任务队列、轻量异步处理

缓存中间件

缓存中间件是 高性能系统架构中不可或缺的一环,主要用于提高访问速度、减轻数据库压力、提升系统吞吐量。

缓存中间件是一个用于快速访问热点数据的中间层系统,通常存储在内存中。相较于数据库的磁盘访问,缓存是读写速度非常快的内存访问。
典型的缓存数据如:用户会话信息、验证码、热点新闻、商品信息等。

功能:

  • 加速读请求:比如一个商品详情页面,每次都查数据库会慢;缓存可以毫秒级响应。
  • 降低数据库压力:热门数据可以从缓存中直接获取,极大减少数据库访问量。
  • 数据预加载:可以在系统启动或访问前,提前将数据加载进缓存。
  • 分布式共享数据:缓存可以部署为集群,多个服务共享缓存数据。
中间件特点应用场景
Redis单线程、支持多种数据结构、持久化、高可用集群、Lua脚本分布式缓存、排行榜、计数器、会话存储
Memcached简单、纯内存、支持 key-value、无持久化临时缓存、对象缓存
Ehcache嵌入式缓存、Java 集成方便单机应用、JVM 内部缓存
Guava CacheGoogle 的本地缓存库,轻量级本地缓存、小规模系统

常见术语:
缓存穿透:不存在
缓存击穿:刚好过期
缓存雪崩:大量同时过期

Redis 的典型使用场景:

登录状态 Session 管理,商品详情缓存,秒杀库存控制,排行榜,延迟任务

数据库中间件

数据库中间件:解决数据库在大规模系统中遇到的性能瓶颈、扩展性问题以及高可用等需求。

功能:

  • 分库分表(水平拆分)【数据库分片】:将大表根据特定规则(如 id 取模)拆分为多个小表或分到不同数据库节点上。
  • 读写分离(主从架构):写操作走主库,读操作走从库,提高并发能力。
  • 数据库路由
  • SQL解析与重写: 自动拼接分页、聚合等操作
  • 事务协调(跨库事务): 支持 分布式事务协议(如 XA、TCC、SAGA),保证事务一致性。
中间件特点适用场景
ShardingSphereApache 顶级项目,功能最强,支持分布式事务、弹性扩容、SQL重写复杂系统,数据库中间层统一解决方案
MyCat国内常用,基于 Cobar,配置文件驱动,易部署中小型系统、轻量分库分表
TDDL(淘宝)阿里早期内部使用,支撑双十一高并发场景电商平台、分布式大数据系统
VitessYouTube 开源,支持海量分库分表和水平扩展高可用、大规模数据库服务
OceanBase蚂蚁集团自研,融合关系型数据库与分布式能力金融级数据库、强一致需求场景

好处:

  • 横向扩展能力强:突破单库容量限制
  • 容灾能力增强:支持主从切换、高可用架构
  • 透明接入:应用层无需修改大量代码
  • 灵活路由:根据配置灵活选择数据节点

服务注册与发现

Service Registry & Discovery

服务注册与发现 主要用于解决“服务实例动态变化”带来的访问问题

在微服务架构下,一个系统通常由多个小服务组成,服务实例可能频繁上线、下线、扩容或重启,因此不能像单体应用那样写死 IP 和端口。
于是,我们需要一个“服务注册中心”来动态记录每个服务的地址信息。其它服务通过“服务发现”找到它们要调用的服务。

流程:

服务提供者(Service A)启动 -> 向注册中心注册自己的信息服务消费者(Service B) -> 从注册中心拉取/订阅服务列表 -> 根据负载均衡策略选择一个实例调用
中间件特点适用场景
EurekaNetflix 开源,经典 Java 生态,适合 Spring Cloud,支持自我保护机制中小型微服务架构
Nacos阿里巴巴开源,支持服务注册/发现 + 配置中心,易集成 Dubbo/Spring Cloud国内主流项目
ConsulHashiCorp 开源,支持健康检查、KV存储、DNS 发现、跨语言支持好跨语言服务体系
Zookeeper强一致性,CAP 中偏 CP,Apache 项目,广泛用于 Dubbo、Kafka需要严格一致性的系统
EtcdCoreOS 开源,Kubernetes 的底层组件,支持高并发、强一致Kubernetes 原生注册系统

Web 中间件

Web 中间件 要用于连接前端请求和后端服务,提供多种通用功能。

类别代表产品功能
反向代理Nginx、Apache HTTPD负载均衡、SSL 终止、静态资源、请求转发
API 网关Kong、APISIX、Zuul、Spring Cloud Gateway路由、认证、限流、服务聚合、跨域处理
Web 框架中间件Express.js 中间件、Django Middleware、Flask Middleware权限、日志、跨域、参数处理
服务网格数据面Envoy、Linkerd服务之间通信控制,透明代理
静态资源中间件CDN、Nginx、Varnish缓存、就近访问、内容分发
应用服务器Tomcat、JettyHTTP 服务、Servlet 容器、JSP 解析
网络通信框架Netty高性能网络通信、异步事件驱动

RPC 中间件

Remote Procedure Call,远程过程调用

是一种通过网络请求调用远程服务器上的函数或方法的技术,它隐藏了底层的网络通信细节,让开发者像调用本地方法一样调用远程方法【Feign】。
简化了分布式系统的构建。

名称特点使用场景
gRPC基于 Google 的 Protocol Buffers(Protobuf),支持高效的二进制序列化,内建支持负载均衡、认证、追踪等高性能、高并发的微服务架构
DubboApache 提供,支持多种协议和序列化方式,具有服务治理和负载均衡功能大规模分布式系统,企业级服务框架
Thrift由 Facebook 开发,支持多种编程语言,灵活的跨语言调用,支持多种协议和传输层跨语言应用,性能要求高的场景
Hessian轻量级、快速的二进制协议,适合大规模分布式系统高效的分布式服务调用
RMIJava 提供的 RPC 机制,适用于 Java 环境中远程方法调用Java 环境内的服务调用
Zookeeper分布式协调服务,常用于服务注册、配置管理等,支持高可用性服务发现、配置管理
Consul提供服务发现、健康检查和键值存储,适用于微服务架构微服务架构中的服务注册和发现
Restful API基于 HTTP 协议的简单、易用的远程调用机制简单的 Web 服务和 RESTful 接口

相关文章:

看一看 中间件Middleware

中间件(Middleware)是介于操作系统与应用程序之间的一层软件 它为分布式应用程序提供了统一的通信、数据交换、服务调用、消息传递等能力。 它的作用就像“胶水”,连接各个系统组件。 文章目录 消息队列缓存中间件数据库中间件服务注册与发现…...

ai人才需要掌握什么

在人工智能(AI)技术重塑全球产业格局的今天,AI人才的核心竞争力已超越单一技术维度,演变为“技术深度+人文广度+伦理自觉”的三维能力模型。本文将从技术能力体系、跨学科思维、伦理与治理三个层面,解析AI人才的核心能力框架,并针对技术局限性提出系统性应对策略。 一、…...

‌RISC-V低功耗MCU动态时钟门控技术详解

我来分享一下RISC-V核低功耗MCU的动态时钟门控技术实现: 这款MCU通过硬件级时钟门控电路实现了模块级的功耗管理。当外设(如UART、SPI)处于闲置状态时,系统会自动切断其时钟信号,减少无效翻转功耗。同时支持多电压域协…...

第十天 Shader编程:编写简单表面着色器 Addressable资源管理系统 DOTS(面向数据技术栈)入门

前言 作为Unity初学者,在实现复杂场景时经常会遇到性能瓶颈。本文将带你通过四个关键技术的实战学习,掌握现代Unity开发的核心优化方案: Shader编程 - 编写表面着色器控制物体渲染Addressable系统 - 实现高效资源管理DOTS技术栈 - 解锁百万…...

把dll模块注入到游戏进程的方法_插APC注入

一、概述 APC是异步过程调用,系统创建线程的时候会为线程创建一个APC队列,当线程调用SleepEx,WaitSingleObjectEx等函数时,并把线程状态被设置为可提醒状态时,线程并不会睡眠,而是检查APC队列是否为空,如果不为空,转去执行APC队列中的每一项,因此给目标进程中的线程插…...

【C++】内存管理:内存划分、动态内存管理(new、delete用法)

文章目录 一、C/C中的内存划分二、C语言中动态内存管理方式三、C中动态内存管理方式1、new、delete基本用法(1)、内置类型(2)、自定义类型 2、operator new与operator delete函数3、new和delete的实现原理(1)内置类型(2)自定义类型…...

【k8s】KubeProxy 的三种工作模式——Userspace、iptables 、 IPVS

在 Kubernetes 集群中,KubeProxy 是实现 Service 的网络代理和负载均衡功能的关键组件。它支持三种工作模式:Userspace 模式、iptables 模式和 IPVS 模式。每种模式都有其特点和适用场景,以下是详细介绍: Userspace 模式 工作原…...

密码学的hash函数,哈希碰撞, collision resistance, BTC用到的SHA-256简介

密码学中的哈希函数、哈希碰撞、抗碰撞性(collision resistance)以及比特币中使用的 SHA-256 的简明介绍: 🧩 一、哈希函数(Hash Function) 定义: 哈希函数是一种将任意长度的输入(…...

通过监督微调(SFT)提升AI Agent效果的完整指南

一、SFT技术深度剖析 1.1 核心概念 监督微调(Supervised Fine-Tuning)是在大规模预训练语言模型(如LLaMA、GPT系列)的基础上,使用特定任务标注数据进行二次训练的过程。其本质是通过有监督学习调整模型参数&#xff…...

TCP基础题:音乐播放列表管理系统

需求描述 服务器端 创建一个 TCP 服务器,监听本地的 9999 端口,支持多个客户端连接。维护一个音乐播放列表,每个音乐条目包含歌曲名称、歌手、时长等信息。能够处理客户端的以下请求: 添加音乐到播放列表:接收客户端发…...

碰一碰发视频源码文案功能,支持OEM

在数字化营销与内容传播领域,碰一碰发视频文案功能凭借 NFC 技术的便捷性,实现了视频与文案的快速传递。本文将围绕该功能的开发流程,从需求分析、技术架构设计到核心功能实现,详细解析其开发要点,为开发者提供实践参考…...

如何在 Vue 3 中实现一个自定义的 `v-html` 组件

引言 在 Vue.js 中,v-html 是一个非常有用的指令,用于将 HTML 字符串渲染到元素中。然而,由于它直接插入 HTML 内容,存在潜在的安全风险(如 XSS 攻击)。因此,了解其工作原理并实现一个安全的替…...

差分对的返回电流-信号完整性分析

差分对的返回电流: 单端线的返回电流集中在参考平面,差分对的返回电流是怎样分布的?有一种观点认为,对于差分对这种耦合传输结构,其中一条走线是另一条走线的返回路径。甚至更进一步得出差分对不需要参考平面的结论。是否真的如此?要想了解…...

html单页业务介绍源码

源码介绍 html单页业务介绍源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行 效果预览 源码免费获取 html单页业务介绍源码...

IDEA导入并启动若依项目步骤(SpringBoot+Vue3)

1.下载后端项目 项目地址:https://gitee.com/y_project/RuoYi-Vue 复制命令,将项目克隆到本地 git clone gitgitee.com:y_project/RuoYi-Vue.git使用IDEA打开(会有点慢,耐心等待),打开后如下 2.Mysql导…...

零基础上手Python数据分析 (22)案例实战]之利用 Matplotlib Seaborn 进行电商销售数据可视化分析

写在前面 —— 图表为刃,洞察先行!综合运用 Pandas、Matplotlib 与 Seaborn,点亮数据价值 本篇通过一个完整的案例实战,体验如何将数据分析与数据可视化紧密结合,让冰冷的数据转化为生动、直观、富有洞察力的视觉故事! 案例目标: 本篇博客将延续我们在第 17 篇案例中…...

图像预处理-霍夫变换

一.概念 霍夫变换是图像处理的一种技术,主要用于检测图像中的直线、圆等几何形状。基本思想就是将图像空间(直角坐标系或极坐标系)中的点映射到(霍夫空间)参数空间中,通过在参数空间中寻找累计最大值实现对特定形状的检测。 接下…...

逐步了解蓝牙 LE 配对(物联网网络安全)

配对是蓝牙 LE 中的一个重要概念。让我们来了解一下蓝牙 LE 配对的基础知识,概述 LE 设备如何在可信设备之间安全地共享密钥。 在之前的一篇文章]中,我们讨论了蓝牙 LE 的安全密钥。我们了解到,蓝牙 LE 设备可以创建并共享三个不同的安全密钥:一个用于数据加密,一个用于创…...

嵌入模型(Embedding Models)原理详解:从Word2Vec到BERT的技术演进

一、什么是嵌入模型? 嵌入模型(Embedding Models) 是一种将高维离散数据(如文本、图像)转换为低维连续向量表示的技术。这些向量能够反映数据的语义关系,使得“语义相近的实体在向量空间中距离更近”。例如…...

解析塔能科技:绿色低碳智慧节能一站式破局之匙

在能源问题日益凸显的当下,绿色低碳、高效节能成为全球发展的重要课题。对各类节能方案进行深入剖析后,可以发现塔能科技的绿色低碳智慧节能一站式解决方案极具创新性与实用性,切实为众多行业面临的能源困境提供了有效解决路径。 直面行业痛点…...

el-menu箭头改为右下

问: el-menu箭头改为右下 回答: :deep(.el-menu){.el-sub-menu .el-sub-menu__icon-arrow{transition: transform 0.3stransform: rotateZ(-90deg) !important;}/* 展开状态:箭头向下 */.el-sub-menu.is-opened .el-sub-menu__icon-arrow,…...

[特殊字符][特殊字符] HarmonyOS相关实现原理聊聊![特殊字符][特殊字符]

Hey小伙伴们~ 今天咱们来聊聊HarmonyOS的实现原理吧!🤔💡 虽然直接看源代码是最直接的方式,但是OpenHarmony项目的开源进度有点让人捉急呢… 不过没关系,我们可以通过已经开放的SDK、IDE、开发示例和编译产物来一探究竟…...

RTSP播放器实现回调RGB|YUV给视觉算法,然后二次编码推送到RTMP服务

引言 在本文中,我们将介绍如何基于大牛直播SDK构建一个功能强大的RTSP|RTMP播放器,该播放器利用自定义SDK解码视频、处理RGB帧,并将其推送到RTMP流中进行直播。这个解决方案非常适合需要在实时视频流中集成视觉算法的场景,在处理…...

补题【Darkness+Different Billing+Dice Game】

文章目录 1.Darkness2.Different Billing3.Dice Game 1.Darkness 题目来源:Darkness I 这题不难想,通过作图我们发现 当nm时直接取对角线就好 当n!m时,取m,n的最小值,那么最小值的这个正方形都可以被填为黑色,剩下的…...

卷积神经网络:视觉炼金术士的数学魔法

🎮 “你以为《赛博朋克2077》的夜之城是画出来的?不,是卷积神经网络’卷’出来的!” 🎮 一、卷积:像素世界的连连看大师 想象你拿着一张《蒙娜丽莎》的拼图——卷积核就像你手中的拼图碎片,在画…...

Python:简介,Python解释器安装,第一个Python程序,开发环境(PyCharm安装和配置、Sublime安装和配置)

目录 Python简介 Python解释器的安装(Windows) 下载和安装Python安装包(解释器) 验证Python安装情况 第一个Python程序 单行运行 多行运行 Python开发环境(安装和配置PyCharm工具) 安装PyCharm Py…...

CE第二次作业

实验要求: 1.配置ssh实现A,B主机互相免密登录 2.配置nginx服务,通过多ip区分多网站 一,配置ssh实现A,B主机互相免密登录 步骤 在主机 A 上生成 SSH 密钥对。把主机 A 的公钥复制到主机 B。在主机 B 上重复上述步骤…...

【阿里云大模型高级工程师ACP习题集】2.4 自动化评测答疑机器人的表现(⭐️⭐️⭐️ 重点章节!!!)

习题集: 【单选题】在使用Ragas评估RAG应用时,Answer Correctness指标计算中,语义相似度是通过以下哪种方式得到的?( ) A. 大模型直接判断 B. 计算文本向量的余弦相似度 C. 对比文本词汇重合度 D. 统计文本字数差异 【多选题】当Context recall指标得分较低时,可采取的优…...

多头注意力

Multi-Head Attention 论文地址 https://arxiv.org/pdf/1706.03762 多头注意力介绍 多头注意力是Transformer模型的关键创新,通过并行执行多个独立的注意力计算单元,使模型能够同时关注来自不同表示子空间的信息。每个注意力头学习不同的语义特征&#x…...

【leetcode100】目标和

1、题目描述 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 或 - ,然后串联起所有整数,可以构造一个 表达式 : 例如,nums [2, 1] ,可以在 2 之前添加 ,在 1 之前添加 - …...

动态哈希映射深度指南:从基础到高阶实现与优化

哈希表是计算机科学中最高效的数据结构之一,而动态哈希映射通过智能扩容机制,在实时系统中展现出极强的适应性。本文将深入探讨其实现细节,结合主流框架源码解析,并给出可落地的性能优化方案。 一、动态哈希的数学本质 1. 哈希函…...

leetcode 2799. 统计完全子数组的数目 中等

给你一个由 正 整数组成的数组 nums 。 如果数组中的某个子数组满足下述条件,则称之为 完全子数组 : 子数组中 不同 元素的数目等于整个数组不同元素的数目。 返回数组中 完全子数组 的数目。 子数组 是数组中的一个连续非空序列。 示例 1&#xff…...

使用RabbitMQ实现判题功能

这次主要选用RabbitMQ消息队列来对判题服务和题目服务解耦,题目服务只需要向消息队列发送消息,判题服务从消息队列中取信息去执行判题,然后异步更新数据库即可。 五一宝宝请快点跑~~~~~ 先回顾一下RabbitMQ (1)引入依…...

无过拟合的记忆:分析大语言模型的训练动态

Kushal Tirumala⇤ Aram H. Markosyan⇤ Luke Zettlemoyer Armen Aghajanyan Meta AI 研究 {ktirumala,amarkos,lsz,armenag}fb.com 原文链接:[2210.09262] Physics-Driven Convolutional Autoencoder Approach for CFD Data Compressions 摘要 尽管超大语言模型…...

【Java面试笔记:进阶】16.synchronized底层如何实现?什么是锁的升级、降级?

在 Java 中,synchronized 关键字的底层实现依赖于 对象头(Object Header) 和 监视器锁(Monitor) 机制,并通过 锁的状态升级(Lock Escalation) 来优化同步性能。 1. synchronized 的底层实现 synchronized 的同步机制基于 Monitor 对象,它是同步的基本实现单元。 通过…...

python可视化:北方城市人口流动趋势分析1

python可视化:北方城市人口流动趋势分析1 斑点鱼在做销售数据分析时发现北京天津的同比下滑明显,客流下滑明显。而山东保定的客流同比上升。引起了斑点鱼对于北方人口流动的好奇。 所以本文将分析2025年北方地区(北京、天津、河北、山东、山西、辽宁等)…...

wps excel 常用操作

数据分列 对于有分隔规律的内容,可以通过分隔符将该内容进行分列 例如,以下字符串,可使用Excel对包含IP地址、数据库类型、环境、负责人和日期的字符串进行分列: 192.168.175.211-MySQL 数据库-DEV-李华-2025.06.30 将以上字符串…...

云智融合普惠大模型AI,政务服务重构数智化路径

2025年是“十四五”收官之年,数字政府和政务数智化作为“数字中国”建设的重点,已经取得了显著成效。根据《联合国电子政务调查报告2024》,我国电子政务发展指数全球排名第35位,与2022年相比提升8个名次;其中&#xff…...

全行业软件定制:APP/小程序/系统开发与物联网解决方案

在数字化浪潮席卷全球的今天,软件已经渗透到我们生活的方方面面,成为推动社会进步的重要力量。作为一家专注于专业软件定制开发的公司,哲科软件深知每一个行业、每一个企业都有其独特的需求和痛点。因此,我们致力于提供个性化软件…...

Java虚拟机(JVM)家族发展史及版本对比

Java虚拟机(JVM)家族发展史及版本对比 一、JVM家族发展史 1. 早期阶段(1996-2000) Classic VM(Java 1.0-1.1): 厂商:Sun Microsystems(Oracle前身)。特点&…...

电脑怎么强制退出程序回到桌面 详细操作步骤

电脑日常使用过程中,我们有时会遇到程序无响应或卡死的情况,这时需要采取措施强制关闭这些程序才能保持电脑的正常工作和运行。那么,电脑如何强制退出程序呢?其实方法有很多种,下面便为大家介绍几种电脑强制关闭程序的…...

蓝牙 LE:安全模式和程序说明(蓝牙中的网络安全)

在蓝牙低功耗 (BLE) 中,安全性是一个多方面的难题。了解 BLE 的三种主要安全模式以及五个关键的 BLE 安全程序。 毫无疑问,低功耗蓝牙 (BLE) 技术的迅猛发展为我们的生活带来了更多便利。然而,随着低功耗蓝牙设备的普及,人们对其安全性的担忧也日益加剧。 与普遍看法相反…...

低代码平台开发胎压监测APP

项目介绍 该项目是一个利用Flutter框架和蓝牙技术实现轮胎压力实时监测的应用。 主要功能如下: 用于接收蓝牙模块传输的胎压数据,并实时显示胎压值。APP对接收到的胎压数据进行处理,如单位转换、数据滤波等,然后将处理后的胎压值…...

GNOME扩展入门:日期时间

Getting Started | GNOME JavaScript 1.扩展路径 ~/.local/share/gnome-shell/extensions/ 2.新建文件夹 datetimesonichy 3.metadata.json {"uuid": "datetimesonichy","name": "datetime","description": "Dis…...

NLP高频面试题(五十二)——深度学习优化器详解

在深度学习的训练过程中,各种基于梯度的优化器肩负着寻找损失函数最优解的重任。最基础的梯度下降法通过沿着损失函数负梯度方向迭代更新参数,实现对模型参数的优化;而随机梯度下降(SGD)则以更高的计算效率和内存利用率在大规模数据集上大放异彩,但也因更新噪声大、易陷入…...

SLAM常用地图对比示例

序号地图类型概述1格栅地图将现实环境栅格化,每一个栅格用 0 和 1 分别表示空闲和占据状态,初始化为未知状态 0.52特征地图以点、线、面等几何特征来描绘周围环境,将采集的信息进行筛选和提取得到关键几何特征3拓扑地图将重要部分抽象为地图&…...

Web常见攻击方式及防御措施

一、常见Web攻击方式 1. 跨站脚本攻击(XSS) 攻击原理:攻击者向网页注入恶意脚本,在用户浏览器执行 存储型XSS:恶意脚本存储在服务器(如评论区) 反射型XSS:恶意脚本通过URL参数反射给用户 DOM型XSS&…...

java.lang.IllegalArgumentException: URI is not hierarchical报错

java.lang.IllegalArgumentException: URI is not hierarchical Thread.currentThread().getContextClassLoader("类的全路径").getClass().newInstance()一个类的静态块初始化异常了,后面调用这个类创建对象会报错吗? 是的,如果一…...

118. 杨辉三角

目录 一、问题描述 二、解题思路 三、代码 四、复杂度分析 一、问题描述 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 二、解题思路 每一行的第一个和最后一个元素是 1&…...

Anything V4/V5 模型汇总

​​​​​​二次元风格生成扩散模型-anything-v4.0Stable Diffusion anything-v5-PrtRE模型介绍及使用深度探索 Anything V5:安装与使用全攻略anything-v5x0.25少儿插画_v1xyn-ai/anything-v4.0...