微服务架构中10个常用的设计模式

news2025/3/19 1:04:39

​在当今的微服务架构中,常见的十种设计模式,分别是服务发现模式、API网关模式、断路器模式、边车模式、负载均衡模式、Saga事务模式、CQRS模式、分片模式、分布式日志跟踪模式、熔断与降级模式 。其中,服务发现模式十分关键,通过自动化发现和定位服务,减少人工配置带来的不确定性,让系统可扩展性与高可用性得以更好地保障。同时,这一模式还能有效降低运维难度,在服务数量急剧增加的情况下依然保持灵活管理,提高线上故障排查效率和整体服务稳定性。
 

一、服务发现模式

服务发现模式是微服务架构中最为基础的设计模式之一。它的核心目标在于:让微服务能够自动找到彼此,无需运维人员或其他微服务手动配置目标地址,从而让应用实现更高程度的自动化和动态扩展。对此,业内常见的实现方式有客户端发现(Client-side Discovery)和服务器端发现(Server-side Discovery)两大类,知名的组件或框架例如Eureka、Consul、Zookeeper等,都在为服务发现提供强有力的支持。

第一方面,服务发现模式能够显著降低配置复杂度。在一个中小型微服务架构中,可能部署了十余个微服务;而在大型互联网企业场景中,这个数字往往会上升到数百乃至数千个。如果每次服务上线或变更时,都需要手动修改配置文件、重启服务器或重新部署负载均衡器,不仅效率低下,而且极易出现失配或遗漏。借助服务发现,新的微服务实例只需注册到注册中心,便可以被其他服务或网关自动定位;类似地,旧的或者出现故障的实例在下线后,也会自动从注册中心移除或标记为不可用,大大提高了系统的实时性与健壮性

第二方面,从笔者个人在金融与电商领域的实战经验出发,服务发现对于快速应对流量高峰及规模化扩容格外重要。例如,当“双十一”大促或金融行业集中还款高峰来临时,系统往往需要在短时间内快速增加服务实例,以承载瞬时激增的业务请求。服务发现模式配合自动化运维工具,可以在几分钟之内完成“云端实例的启动—注册—对外提供服务”这一完整流程;相较传统架构模式下需要数小时甚至数天的配置调试与测试,服务发现的灵活性不言而喻。


二、API网关模式

API网关模式是微服务架构中链接前端与后端服务的关键枢纽,通过对外提供统一的API接口,屏蔽后端微服务的复杂度,也兼具安全认证、负载均衡、协议转化等多重功能。API网关相当于一座“总闸门”,为前端应用或客户端提供一体化入口,避免了让客户端直接调用多个微服务时所带来的混乱和耦合。

第一,API网关能提升前端开发效率并降低耦合。在传统架构下,如果前端需要整合多个服务的数据,就要分别调用每个服务提供的API,编写复杂的调用与容错逻辑。该过程不仅让前端负担过重,也会造成部署与维护的复杂度陡增。API网关则将所有内部微服务整合在一起,对外发布统一接口,通过API网关内部的路由和协议转换机制,实现对不同微服务的分发与代理。如此一来,前端调用只需关注网关接口,极大减少了对后端架构变化的感知与依赖。

第二,API网关能在安全和流量控制上提供额外的防护。例如,API网关通常内置令牌验证、身份认证、访问频率限制(Rate Limiting)等机制,从源头杜绝恶意流量对后端的直接冲击。就笔者经验而言,对于敏感行业(如金融、保险),API网关还会集成防刷、防诈骗的策略,每一次请求都要经过特征检测或多重校验,保证核心交易通道的安全稳定。同时,网关自身也能与熔断、限流等机制结合,让系统在遭遇高并发或部分微服务故障时,能够做出灵活处理。


三、断路器模式

断路器模式(Circuit Breaker Pattern)通常与微服务中的高可用性和故障隔离策略相辅相成。它的核心理念在于:一旦后端服务出现故障或延迟过高,调用方会迅速“断开电路”,避免无限制地重复访问失败的微服务,从而保护调用方自身的资源与性能,防止故障在分布式系统中不断蔓延。

第一,断路器模式本质上是一种自我保护机制。在实际生产环境中,一个服务故障往往会触发连锁反应:例如,服务A依赖服务B的结果,如果B变得极度缓慢或不可用,A就会大量地等待或重试,造成自身线程耗尽、资源被占满,最终导致A也“被拖下水”。若A还依赖其他服务,那么整个系统就可能演变成“大规模雪崩式故障”。断路器通过在一定失败阈值后直接拒绝请求或快速返回Fallback响应,让服务A可以腾出时间恢复,并在监控到B恢复正常后再自动关闭断路器。

第二,现代微服务框架中,断路器是分布式体系架构的安全阀。以Netflix的Hystrix为代表,后来衍生出的Resilience4j等开源组件,都在断路器、隔离舱、舱壁模式等方面提供了成熟的实现。笔者曾在服务调用量很大的支付系统中应用过断路器模式,当第三方支付通道因网络波动而导致响应延迟飙升时,断路器在短时间内保护了其他模块,使得订单处理、用户查询等核心流程仍能继续运行。待第三方通道恢复后,断路器再自动切回到正常访问模式,大大增强了系统的“自愈”能力。


四、边车模式

边车模式(Sidecar Pattern)是将与主服务紧密相关但功能相对独立的“辅助或代理功能”封装到一个单独的进程或容器中,以实现关注点分离。它的名字“Sidecar”正是借鉴了摩托车的边斗概念,即主机车负责主要功能,边斗提供必要的支撑或扩展,不影响主车的核心驾驶能力。

第一,边车模式往往用于实现日志收集、监控、配置管理等横切需求。在传统“单体 + 嵌入式代理”模式中,这些功能或模块往往被耦合在主应用内部,难以单独升级维护,也增加了应用体量与复杂度。通过边车模式,开发者可将如Sidecar容器或代理进程部署在主服务旁侧,专门负责处理外部通信、日志转发、数据加密等,主服务与边车之间则通过本地网络通信或IPC(进程间通信)进行交流,形成一个松耦合、高内聚的功能组合

第二,边车模式在服务网格(Service Mesh)架构中尤为常见。以Istio为代表的服务网格系统,会为每个微服务注入一个Envoy边车代理,用于拦截和管理进出该服务的网络流量,实现更精细的流量控制、负载均衡及可观测性。笔者在一次高并发项目中,使用了边车代理对HTTP/GRPC请求进行统一加密,主服务无需关心加解密过程,也免去了升级安全策略时反复改动核心业务逻辑的麻烦,大幅提升了项目迭代速度和安全性。


五、负载均衡模式

负载均衡模式(Load Balancing Pattern)是保证微服务架构高吞吐量稳定响应的重要手段。其核心思想在于:当一个请求进来时,系统应根据预先设定的负载策略,将请求分发至多个服务实例中,以此均衡资源使用并提高整体性能。

第一,负载均衡通常包含两大方向:硬件负载均衡和软件负载均衡。硬件负载均衡借助专门的网络设备(如F5)进行流量转发,性能强大但成本较高;软件负载均衡则通过Nginx、HAProxy、Envoy或Kubernetes Ingress等代理服务来实现分发逻辑,灵活度更高,更易与微服务的自动扩缩容配合。很多企业会采用混合方案:在关键流量入口上使用硬件负载均衡设备抵御大量并发请求,在微服务内部网络则借助Nginx或服务网格代理来进行“软”负载分配。

第二,从笔者过往经历来看,选择合适的负载均衡算法可以极大提升系统性能。最常见的算法包括轮询(Round Robin)、加权轮询、最少连接(Least Connections)、源地址哈希等。针对不同业务需求,需要进行测试和调整。例如,高并发、短连接场景常用轮询或最少连接;VIP客户或高优先级任务可能需要加权轮询来保障资源倾斜。总体来说,负载均衡模式与服务发现、自动伸缩(Auto Scaling)结合使用时,往往能实现“随用随扩,随停随退”,有效避免资源浪费并保障用户体验。


六、Saga事务模式

Saga事务模式是针对分布式交易中数据一致性难题的一种解决方案,通常应用于涉及多个微服务跨库操作的场景,旨在通过一系列可补偿回滚的业务操作来实现最终一致性。

第一,传统的两阶段提交(2PC)或XA协议在分布式环境中往往性能欠佳,且存在单点故障风险。微服务应用场景中,每个服务可能拥有独立的数据库或存储系统,如果仍执着于“一次性全局锁定并提交”,会给性能和可用性带来巨大压力。Saga模式通过将全局事务拆分成一连串局部事务,每个局部事务执行成功后,再执行下一个事务;一旦中途发生故障,可触发补偿事务进行回滚或补救操作,从而保证数据的最终一致性。

第二,Saga的核心优势在于业务灵活度与容错性。在许多复杂订单场景中,需要同时操作库存、支付、优惠券以及物流等多个系统,一旦某个环节出现问题,Saga会通过事先设计的补偿逻辑撤销前面已完成的操作。笔者曾在电商和酒店预订系统中运用Saga模式,若支付环节失败就自动释放库存;若库存扣减异常也会取消支付并通知用户。这样做虽然在实施上需要更多的事务设计与补偿流程,但明显降低了跨服务调用失败导致数据不一致的风险。


七、CQRS模式

CQRS模式(Command Query Responsibility Segregation)强调在微服务中将写操作(Command)与读操作(Query)分离,以应对高并发下对数据读写性能与灵活性要求的不断提升。

第一,CQRS模式可以显著提升读写效率与可扩展性。在传统单体或耦合架构中,读写通常共享同一个数据模型和数据库,当读取量和写入量都非常大时,数据库负载会迅速逼近瓶颈,从而导致性能下降或响应延迟。CQRS通过分别创建针对写操作的领域模型和针对读操作的视图模型,甚至可以在物理层面使用不同的存储系统。如此一来,读请求能够通过高速的只读库或缓存快速返回,写请求则由更安全、ACID特性更强的数据库承载。双方互不干扰,真正实现对不同业务需求的差异化优化

第二,在落地CQRS时,需要考虑事件驱动和数据同步。如果系统只在业务写操作时更新写库,那么读库如何及时感知这些变化?通常会借助消息队列或事件总线,将写操作的结果转化成事件再分发给读模型进行更新。笔者曾在一个实时竞价系统里采取CQRS+事件驱动的方案:当写端更新了新的出价信息,系统会通过消息总线通知所有读端服务,以更新相关商品的实时竞价情况并存入缓存。这样既能保证高并发读请求的快速响应,也能在写操作时确保数据安全与一致性。


八、分片模式

分片模式(Sharding Pattern)关注点在于如何将大规模数据或负载水平切分,从而避免单节点数据库或存储系统出现性能瓶颈或容量不足的问题。对于存储在数TB乃至PB级别的数据量,单库单表的传统模式远远无法满足微服务的高性能要求。

第一,分片可以按地理区域、用户ID、时间范围等多种维度进行。例如,大型社交平台常见的用户ID分片:将用户ID哈希后再取模,根据结果将用户数据存放到对应的分片数据库中。如此一来,每个数据库只负责处理一部分用户的数据操作,显著缓解了读写压力。在海量订单或日志系统中,按时间分片也很常见,每个月或每个季度的数据分别存放在不同的分表或索引中,不仅易于归档,还能够提高查询速度。

第二,分片模式需要配合分布式ID以及全局路由层进行处理。若一个请求需要跨分片查询大量数据,路由层就要先知道目标数据存储在哪些分片,然后并行查询并汇总结果。因此,实践中往往会同时引入分布式ID生成策略,保证跨分片的主键唯一性,并使用全局或代理层来管理分片映射关系。笔者在大型电商平台的用户体系中见到过此做法:**通过一套“用户路由规则”**指明不同ID段或哈希结果对应的数据库实例,既能减少“全表扫描”带来的巨大负担,也能让后续扩容或数据迁移更为灵活。


九、分布式日志跟踪模式

分布式日志跟踪模式(Distributed Tracing Pattern)在微服务环境中扮演“全局可观测性”的重要角色。它通过对每次请求分配唯一Trace ID,并在每个服务调用链路上携带此ID或Span信息,帮助运维人员从全局角度排查故障、分析性能瓶颈。

第一,在微服务拆分后,一个完整的业务流程往往会跨越多个服务模块。例如,从用户发起一个支付请求,到最终完成扣款、记录账单、触发消息通知,背后可能涉及十几个微服务的调用。如果缺乏分布式追踪,就难以确定故障或延迟出现在哪个服务或哪一步骤。通过统一的分布式追踪系统(如Zipkin、Jaeger、SkyWalking等),每个服务都上报自己的Span数据,整条调用链得以在可视化界面清晰呈现,从而快速锁定问题点。

第二,笔者在实战中发现,分布式日志跟踪对微服务优化和容量规划也有帮助。通过统计调用链耗时、并发请求量等指标,可判断哪些服务需要扩容、缓存或进一步拆分;若发现某段调用的平均耗时突然攀升,也能及时定位到是否是由于网络故障、数据库锁等待还是代码逻辑问题导致。换言之,分布式追踪不仅是排障利器,也是微服务持续演进和性能调优的基础工具。


十、熔断与降级模式

熔断与降级模式与断路器模式一脉相承,主要目的是在服务不可用或负载过高时,通过主动“熔断”部分请求或“降级”功能,保证核心流程不被拖垮。有时也被称为“弹性容错模式”。

第一,熔断通常是对系统进行压力监控后的一种保护手段。如果某个服务响应时间过长或出现高故障率,系统会选择对该服务进行熔断,短期内对外宣称该服务处于不可用状态,以防止调用方继续陷入无效等待。和断路器有所不同的是,熔断着眼于整体系统的层面,比如当系统整体CPU或内存占用过高时,也会触发熔断,减轻非核心请求的负载。

第二,降级则指在部分功能无法满足需求时,为用户提供相对“简化”或“退而求其次”的替代方案。例如,电商在大促时,如果商品详情页调用量飙升,后端无法承受全部高分辨率图片的请求,就可以临时降级:返回简化的商品信息页面,或者只显示关键数据。这样虽然牺牲了部分用户体验,但至少能保证用户还可以正常下单,不至于整个系统都瘫痪下线。笔者在应对高并发活动时,就曾预先配置好多套“降级预案”,从减少页面元素到关闭某些推荐算法,各种预案将会按压力阈值逐步启动,显著缓解了服务压力并维持核心交易功能的正常运行。

在当今的微服务架构中,上述10种设计模式并非彼此孤立,而是经常组合应用、相辅相成。比如,服务发现与负载均衡天然互补,常与API网关一同出现;断路器和熔断、降级则密切配合,以在异常场景下提供弹性保护;CQRS与分片往往在数据库层面协力提升读写性能。与此同时,边车模式和分布式日志跟踪帮助开发团队建立可观测性、易维护性和持续交付能力。在笔者看来,这些模式的最终目标,都是为业务提供更高的灵活性、更强的容错能力以及更好的可维护性,同时也缩短了从开发到上线的周期。

值得注意的是,在任何分布式与微服务场景下,内容安全与风险防控也逐渐成为一大关注点。提及内容风控系统,有些企业会选用网易易盾等解决方案,对用户生成内容、接口访问进行实时检测与合规审查,以避免高并发下的恶意流量、违规内容给系统和企业信誉带来重大影响。

从实施角度出发,以下几点建议可帮助团队更好地落地上述设计模式:

  1. 优先评估业务需求与痛点
    并非每种模式都适用于所有场景,企业应结合实际业务的容量、功能特点、数据一致性需求,选择最合适的模式或组合。过度“追新”而忽视成本与收益的平衡,可能导致适得其反。

  2. 重视DevOps与自动化
    微服务架构往往伴随频繁的部署与变更,只有通过CI/CD管线、自动化测试与监控,才能将服务发现、断路器、熔断等模式真正落实到可持续迭代的开发流程中。大规模微服务场景下,自动化能力尤为重要。

  3. 加强可观测性与故障演练
    分布式日志跟踪、监控告警、分布式Tracing等手段都是“日常体检”的核心工具;定期进行故障演练、Chaos Engineering(混沌工程)测试,可以验证断路器、熔断等保护机制是否真正有效,让团队在真实事故前掌握足够的应对经验。

  4. 保障数据合规与安全
    当企业进行服务拆分与数据分片时,需确保个人信息与敏感数据的安全存储与访问权限管理。如果涉及跨境数据传输,也要符合当地或国际法规(如GDPR)的要求。在服务发现、API网关等模块处,更要设立身份认证、加密传输等安全机制,避免内部接口被非授权访问或监听。

  5. 分级定制与弹性扩展
    大多数成熟企业在不同业务线或不同成熟度的团队中,可能采取不同程度的微服务拆分与模式应用。关键点在于,根据团队能力与系统规模逐步引入复杂模式,先从简单的负载均衡或服务发现做起,然后逐步完善断路器、熔断等弹性设计。盲目一次性“上全套”,只会加大团队学习和维护负担。

最后,引用Gartner一份报告中的一句话:“分布式架构的成功,与其说是技术上的优雅,不如说是对业务与团队的理解与平衡。” 笔者深有感触:微服务设计模式只是工具,真正决定成败的,往往是团队如何合理应用它们,并在实际项目中不断试错和调优。只有在业务目标、团队能力和技术实现三者之间找到最佳平衡点,才能让微服务架构真正发挥支撑业务高速迭代和创新的“利器”作用。


常见问答

1. 问:所有微服务项目都适合使用这10种设计模式吗?
答:不一定。 模式的选择取决于业务目标、团队规模以及系统复杂度。如果只是一个简单的服务拆分,小规模流量、不涉及复杂的数据一致性问题,那么不必一股脑地把所有模式都搬进去,而应“按需选型”,在可控的范围内迭代演进。

2. 问:API网关和服务网格是冲突的概念吗?
答:并不冲突,二者功能侧重不同,常常互相配合。 API网关更偏向于为外部提供统一入口、协议转换与安全防护;服务网格则聚焦于服务之间通信的细粒度管理与观测。许多成熟架构会同时在入口层使用API网关,对服务间调用则通过Sidecar代理与控制面来实现网格化管控。

3. 问:CQRS是不是必须和事件溯源(Event Sourcing)一起用?
答:不是必须,但常常一起出现。 CQRS可以独立实现写库与读库分离,而事件溯源更多关注业务操作的历史记录与可追溯性。二者结合能实现更清晰的领域模型与数据演化过程,但实施复杂度也随之上升,需要团队具备较强的领域驱动设计和消息中间件运维能力。

4. 问:断路器、熔断与降级,有什么区别?
答:三者都是“弹性保护”范畴,但应用层面略有差异。 断路器主要针对服务间的调用故障,超出阈值后短期断开连接;熔断可以基于系统整体压力进行限流或拒绝请求;降级则在功能层面给用户提供简化或替代方案。它们往往组合使用,以实现更全面的服务防护。

5. 问:微服务中如何快速验证新模式是否有效?
答:建议先在测试或灰度环境进行A/B对比,再配合故障注入和性能压测。例如,通过Chaos Engineering工具故意触发某个服务的异常,观察是否能触发断路器或熔断机制;在高并发压测中检查负载均衡的效果;通过分布式日志跟踪检测请求链路的耗时是否明显改善。只有真实数据和监控指标支撑,才能证明新模式的有效性与必要性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2317501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3组件+leaflet,实现重叠marker的Popup切换显示

一、前言 GIS开发过程中,经常需要绘制marker,这些marker很大概率会有坐标相同导致的叠加问题,这种情况下会降低使用体验感。所以我们可以将叠加的marker的popup做一个分页效果,可以切换显示的marker。 二、技术要点 我们以leaf…

机器学习之距离度量方法

常见的距离度量方法及相关函数、图示如下: 1. 欧几里得距离(Euclidean Distance) 函数公式:对于两个 ( n ) 维向量 ( x = ( x 1 , x 2 , ⋯   ,

3.1 在VisionPro脚本中添加CogGraphicLabel

本案例需要实现如下功能: 1.加载toolBlock 2.加载图片, 3.运行Block 4.VisionPro中添加脚本显示数值。 见下图:详细代码(C#以及visionPro)见下面链接: https://download.csdn.net/download/qq_340474…

AI:Machine Learning Data Science

机器学习与数据科学 左侧 机器学习 Machine Learning 机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知…

软件需求分类、需求获取(高软46)

系列文章目录 软件需求分类,需求获取 文章目录 系列文章目录前言一、软件需求二、获取需求三、真题总结 前言 本节讲明软件需求分类、需求获取的相关知识。 一、软件需求 二、获取需求 三、真题 总结 就是高软笔记,大佬请略过!

嵌入式Linux | 什么是 BootLoader、Linux 内核(kernel)、和文件系统?

01 什么是 BootLoader 呢? 它是个引导程序,也就是硬件复位以后第一个要执行的程序,它主要工作就是初始化操作系统运行的环境,比如说内存、定时器、缓冲器等,当这个工作做完以后,再把操作系统的代码加载…

函数(函数的概念、库函数、自定义函数、形参和实参、return语句、数组做函数参数、嵌套调用和链式访问、函数的声明和定义、static和extern)

一、函数的概念 •C语⾔中的函数:⼀个完成某项特定的任务的⼀⼩段代码 •函数又被翻译为子函数(更准确) •在C语⾔中我们⼀般会⻅到两类函数:库函数 ⾃定义函数 二、库函数 1 .标准库和头文件 •C语⾔的国际标准ANSIC规定了⼀…

ImGui 学习笔记(五) —— 字体文件加载问题

ImGui 加载字体文件的函数似乎存在编码问题,这一点可能跟源文件的编码也有关系,我目前源文件编码是 UTF-16。 当参数中包含中文字符时,ImGui 内部将字符转换为宽字符字符集时候,采用的 MultiByteToWideChar API 参数不太对&#…

OpenCV计算摄影学(20)非真实感渲染之增强图像的细节函数detailEnhance()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 此滤波器增强特定图像的细节。 cv::detailEnhance用于增强图像的细节,通过结合空间域和频率域的处理,提升图像中特定细节…

Android PC 要来了?Android 16 Beta3 出现 Enable desktop experience features 选项

在之前的 《Android 桌面窗口新功能推进》 我们就聊过,Google 就一直在努力改进 Android 的内置桌面模式,例如添加了适当的窗口标题、捕捉窗口的能力、悬停选项、窗口大小调整、最小化支持、app-to-web 等。 比如在搭载 Android 15 QPR 1 Beta 2 的 Pix…

Git常用操作之GitLab

Git常用操作之GitLab 小薛博客官网:小薛博客Git常用操作之GitLab官方地址 1、GitLab安装 https://gitlab.cn/install/ 1、Docker安装GitLab https://docs.gitlab.cn/jh/install/docker.html 1、设置卷位置 在设置其他所有内容之前,请配置一个新的…

Netty基础—NIO的使用简介

1.Buffer缓冲区 (1)Buffer缓冲区的作用 在NIO中,所有的数据都是通过使用Buffer缓冲区来处理的。如果要通过NIO,将数据写到文件和网络或从文件和网络中读取数据,那么就需要使用Buffer缓冲区来进行处理。 (2)Buffer缓冲区的4个核心概念 Buffer缓…

Matlab 汽车ABS实现模糊pid和pid控制

1、内容简介 Matlab 181-汽车ABS实现模糊pid和pid控制 可以交流、咨询、答疑 2、内容说明 略 实现汽车防抱死制动系统(ABS)的控制算法,通常涉及到传统的PID控制和模糊PID控制两种方法。下面将分别介绍这两种控制策略的基本概念以及如何在M…

Muon: An optimizer for hidden layers in neural networks

引言 在深度学习领域,优化算法对模型训练效率和性能起着关键作用。从经典的随机梯度下降 (SGD) 及其动量法,到自适应优化方法 Adam/AdamW 等,一系列优化器大大加速了神经网络的收敛。然而,随着模型规模和数据量的爆炸式增长&…

【VSCODE 插件 可视化】:SVG 编辑插件 SVG Editor

插件下载 svgeditor 创建文件 Windows/Linux 快捷键 Ctrl Shift P 打开VSCODE 命令面板查找 New File With Svg Editor 编辑文件 保存文件 打开文件以继续编辑 CG 选中多个:shift单击没找到横向分布功能无法用键盘微调位置

Cursor插件市场打不开解决

问题现象: cursor搜索插件的时候提示错误,无法搜索安装插件 error while fetching extensions.failed to fetch 问题原因 cursor默认安装使用的并不是vs code的插件市场,国内网络有时候打不开 解决 修改插件市场地址并重启cursor 打开cur…

嵌入式开发之STM32学习笔记day06

基于STM32F103C8T6的开发实践——从入门到精通01 1. 引言 STM32系列微控制器是STMicroelectronics推出的一款高性能、低功耗的32位微控制器,广泛应用于嵌入式系统中。STM32F103C8T6是其中非常受欢迎的一款,凭借其强大的性能、丰富的外设接口和低廉的价格…

AI驱动的视频字幕提取与翻译工具

青梧字幕是一款基于Whisper技术的AI字幕提取工具,专为视频制作者、翻译人员和自媒体创作者设计。它通过先进的语音识别算法,能够自动从视频文件中提取字幕内容,并支持多种语言和字幕格式,极大地简化了字幕制作流程。 目前暂支持 …

【MySQL】MySQL审计工具Audit Plugin安装使用

MySQL审计工具Audit Plugin安装使用 https://www.cnblogs.com/waynechou/p/mysql_audit.html MySQL 5.6 开启审计功能 https://blog.51cto.com/u_15127556/4344503 MySQL之添加日志审计功能 https://blog.csdn.net/weixin_43279032/article/details/105507170 MySQL开启日志记录…

游戏引擎学习第163天

我们可以在资源处理器中使用库 因为我们的资源处理器并不是游戏的一部分,所以它可以使用库。我说过我不介意让它使用库,而我提到这个的原因是,今天我们确实有一个选择——可以使用库。 生成字体位图的两种方式:求助于 Windows 或…