Seata分布式事务模式解析

Spring Cloud入门-Admin服务监控中心(Hoxton版本)(1) 金三银四马上就到了,希望大家能好好学习一下这些技术点学习视频:《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取![外链图片转存中…(img-eFmYiRkP-1713300214138)][外链图片转存中…(img-gU7SO8rB-1713300214138)]既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化! 阅读详情

📕我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、(架构篇)、《解密程序员的思维密码——沟通、演讲、思考的实践》作者、清华大学出版社签约作家、Java领域优质创作者、优快云博客专家、阿里云专家博主、51CTO专家博主、产品软文专业写手、技术文章评审老师、技术类问卷调查设计师、幕后大佬社区创始人、开源项目贡献者。

📘拥有多年一线研发和团队管理经验,研究过主流框架的底层源码(Spring、SpringBoot、SpringMVC、SpringCloud、Mybatis、Dubbo、Zookeeper),消息中间件底层架构原理(RabbitMQ、RocketMQ、Kafka)、Redis缓存、MySQL关系型数据库、 ElasticSearch全文搜索、MongoDB非关系型数据库、Apache ShardingSphere分库分表读写分离、设计模式、领域驱动DDD、Kubernetes容器编排等。

📙不定期分享高并发、高可用、高性能、微服务、分布式、海量数据、性能调优、云原生、项目管理、产品思维、技术选型、架构设计、求职面试、副业思维、个人成长等内容。

Java程序员廖志伟

💡在这个美好的时刻,笔者不再啰嗦废话,现在毫不拖延地进入文章所要讨论的主题。接下来,我将为大家呈现正文内容。

优快云

🌟 SpringMVC分布式事务知识点

🍊 Seata AT 模式

🎉 1. AT 模式原理

Seata AT 模式通过两阶段提交协议,在数据库层面实现分布式事务的原子性。它通过在业务数据表中增加一个全局事务版本号(GTID),在业务操作过程中,Seata 协调器负责控制事务的提交和回滚。事务启动时,Seata 为事务分配一个全局事务 ID,并通过 GTID 确保事务的原子性。

🎉 2. AT 模式优势

  • 原子性:确保分布式事务的原子性,即事务要么全部成功,要么全部失败。
  • 一致性:确保事务执行后,所有数据状态保持一致。
  • 隔离性:确保事务执行过程中,其他事务不会受到影响。
  • 持久性:确保事务提交后,数据持久化到数据库。

🎉 3. AT 模式应用场景

适用于对数据一致性要求较高的场景,如金融、电商等。

🎉 4. AT 模式配置与使用

在 Spring Boot 项目中,要使用 Seata AT 模式,首先需要在 application.properties 或 application.yml 中配置 Seata 相关参数,然后使用 @Transactional 注解开启事务。

seata:
  enabled: true
  application-id: your_app_id
  server-node: your_server_node
  service-group: your_service_group
  transaction-service-group: your_transaction_service_group
  enable-auto-commit: false
@Transactional
public void someServiceMethod() {
    // 业务逻辑
}

🍊 Seata TCC 模式

🎉 1. TCC 模式原理

Seata TCC 模式通过三个阶段(准备阶段、提交阶段、回滚阶段)来实现分布式事务的原子性。业务系统需要实现三个阶段的接口,分别对应事务的开始、提交和回滚。

🎉 2. TCC 模式优势

  • 原子性:确保分布式事务的原子性,即要么全部成功,要么全部失败。
  • 一致性:确保事务执行后,所有数据状态保持一致。
  • 隔离性:确保事务执行过程中,其他事务不会受到影响。
  • 灵活性:业务系统可以根据实际情况实现不同的业务逻辑。

🎉 3. TCC 模式应用场景

适用于对业务逻辑要求较高的场景,如订单拆单、库存扣减等。

🎉 4. TCC 模式配置与使用

在 Spring Boot 项目中,要使用 Seata TCC 模式,首先需要在 application.properties 或 application.yml 中配置 Seata 相关参数,然后实现三个阶段的接口,并使用 @GlobalTransactional 注解开启全局事务。

seata:
  enabled: true
  application-id: your_app_id
  server-node: your_server_node
  service-group: your_service_group
  transaction-service-group: your_transaction_service_group
  enable-auto-commit: false
@GlobalTransactional
public void someServiceMethod() {
    // 业务逻辑
}

🍊 Seata SAGA 模式

🎉 1. SAGA 模式原理

Seata SAGA 模式通过将业务操作拆分为多个子操作,通过补偿操作来实现分布式事务的原子性。每个子操作都有对应的补偿操作,当子操作失败时,执行补偿操作以撤销之前成功的子操作。

🎉 2. SAGA 模式优势

  • 原子性:确保分布式事务的原子性,即要么全部成功,要么全部失败。
  • 一致性:确保事务执行后,所有数据状态保持一致。
  • 灵活性:业务系统可以根据实际情况实现不同的业务逻辑。

🎉 3. SAGA 模式应用场景

适用于业务操作较为复杂,且需要补偿的场景,如订单拆单、库存扣减等。

🎉 4. SAGA 模式配置与使用

在 Spring Boot 项目中,要使用 Seata SAGA 模式,首先需要在 application.properties 或 application.yml 中配置 Seata 相关参数,然后实现子操作和补偿操作,并使用 @GlobalTransactional 注解开启全局事务。

seata:
  enabled: true
  application-id: your_app_id
  server-node: your_server_node
  service-group: your_service_group
  transaction-service-group: your_transaction_service_group
  enable-auto-commit: false
@GlobalTransactional
public void someServiceMethod() {
    // 业务逻辑
}

🍊 本地消息表

🎉 1. 本地消息表原理

本地消息表是 Seata 分布式事务解决方案中的一种,它通过将业务消息存储在本地消息表中来实现分布式事务的异步通知。当业务系统需要执行分布式事务时,会将业务消息存储在本地消息表中,然后通过 Seata 协调器将消息发送到其他业务系统。

🎉 2. 本地消息表优势

  • 异步通知:实现分布式事务的异步通知,提高系统性能。
  • 可靠性:保证消息的可靠性,即使发送失败,也可以通过重试机制来保证消息的发送。
  • 一致性:保证分布式事务的一致性,即事务执行后,所有数据的状态保持一致。

🎉 3. 本地消息表应用场景

适用于需要异步通知的场景,如订单支付、短信通知等。

🎉 4. 本地消息表配置与使用

在 Spring Boot 项目中,要使用 Seata 本地消息表,首先需要在 application.properties 或 application.yml 中配置 Seata 相关参数,然后实现消息发送和接收,并使用 @Transactional 注解开启事务。

seata:
  enabled: true
  application-id: your_app_id
  server-node: your_server_node
  service-group: your_service_group
  transaction-service-group: your_transaction_service_group
  enable-auto-commit: false
@Transactional
public void someServiceMethod() {
    // 业务逻辑
}

🍊 同类型技术对比

🎉 1. Seata AT 模式 vs. TCC 模式

  • AT 模式:代码简单,性能较高,适用于对性能要求较高的场景。
  • TCC 模式:代码复杂,性能较低,适用于对一致性要求较高的场景。

🎉 2. Seata AT 模式 vs. SAGA 模式

  • AT 模式:代码简单,性能较高,适用于对性能要求较高的场景。
  • SAGA 模式:代码复杂,性能较低,适用于对一致性要求较高的场景。

🎉 3. Seata TCC 模式 vs. SAGA 模式

  • TCC 模式:代码复杂,性能较低,适用于对一致性要求较高的场景。
  • SAGA 模式:代码复杂,性能较低,适用于对一致性要求较高的场景。

🎉 4. Seata TCC 模式 vs. 本地消息表

  • TCC 模式:代码复杂,性能较低,适用于对一致性要求较高的场景。
  • 本地消息表:代码复杂,性能较低,适用于需要异步通知的场景。

🎉 5. Seata SAGA 模式 vs. 本地消息表

  • SAGA 模式:代码复杂,性能较低,适用于对一致性要求较高的场景。
  • 本地消息表:代码复杂,性能较低,适用于需要异步通知的场景。
模式对比AT 模式TCC 模式SAGA 模式本地消息表
代码复杂度低高高高
性能高低低低
一致性高高高高
异步通知否否是是

优快云

博主分享

📥博主的人生感悟和目标

Java程序员廖志伟

📙经过多年在优快云创作上千篇文章的经验积累,我已经拥有了不错的写作技巧。同时,我还与清华大学出版社签下了四本书籍的合约,并将陆续出版。

面试备战资料

八股文备战
场景描述链接
时间充裕(25万字)Java知识点大全(高频面试题)Java知识点大全
时间紧急(15万字)Java高级开发高频面试题Java高级开发高频面试题

理论知识专题(图文并茂,字数过万)

技术栈链接
RocketMQRocketMQ详解
KafkaKafka详解
RabbitMQRabbitMQ详解
MongoDBMongoDB详解
ElasticSearchElasticSearch详解
ZookeeperZookeeper详解
RedisRedis详解
MySQLMySQL详解
JVMJVM详解

集群部署(图文并茂,字数过万)

技术栈部署架构链接
MySQL使用Docker-Compose部署MySQL一主二从半同步复制高可用MHA集群Docker-Compose部署教程
Redis三主三从集群(三种方式部署/18个节点的Redis Cluster模式)三种部署方式教程
RocketMQDLedger高可用集群(9节点)部署指南
Nacos+Nginx集群+负载均衡(9节点)Docker部署方案
Kubernetes容器编排安装最全安装教程

开源项目分享

项目名称链接地址
高并发红包雨项目https://gitee.com/java_wxid/red-packet-rain
微服务技术集成demo项目https://gitee.com/java_wxid/java_wxid

管理经验

【公司管理与研发流程优化】针对研发流程、需求管理、沟通协作、文档建设、绩效考核等问题的综合解决方案:https://download.youkuaiyun.com/download/java_wxid/91148718

希望各位读者朋友能够多多支持!

现在时代变了,信息爆炸,酒香也怕巷子深,博主真的需要大家的帮助才能在这片海洋中继续发光发热,所以,赶紧动动你的小手,点波关注❤️,点波赞👍,点波收藏⭐,甚至点波评论✍️,都是对博主最好的支持和鼓励!

🔔如果您需要转载或者搬运这篇文章的话,非常欢迎您私信我哦~

kafka可视化客户端工具(Kafka Tool)的基本使用 1、下载 下载地址:http://www.kafkatool.com/download.html 2、安装 根据不同的系统下载对应的版本,我这里kafka版本是1.1.0,下载kafka tool 2.0.1。 双击下载完成的exe图标,傻瓜式完成安装。 3、简单使用 kafka环境搭建请参考:CentOS7.5搭建Kafka2.11-1.1.0集群 1... 阅读详情

相关推荐

Seata分布式事务模式解析与实战指南

分布式事务是微服务架构中的关键技术挑战,涉及事务的ACID特性在分布式环境下的实现。其核心原理包括两阶段提交、补偿事务等机制,通过Seata等框架提供AT、TCC、Saga三种主流模式。这些技术能有效解决订单支付、库存扣减等业务场景的数据一致性问题,其中AT模式适合简单CRUD操作,TCC模式提供更精准的控制,Saga模式则擅长处理长流程事务。在实际工程实践中,需要根据业务特性、技术栈和团队能力进行模式选择,并注意全局锁冲突、空回滚等典型问题的解决方案。

weixin_30825199的博客 367

mysql 的int类型_MySQL int类型

在本教程中,您将了解MySQL INT或整数数据类型以及如何在数据库表设计中使用它。 另外,我们将向您展示如何使用表中整数列的显示宽度和ZEROFILL属性。MySQL INT类型简介在MySQL中,INT代表整数。整数可以写成没有分数的数值,例如,它可以是1,100,4,-10等,它不能是1.2,5/3等。整数可以是零,正和负。MySQL支持所有标准SQL整数类型INTEGER、INT和SMAL...

weixin_33623088的博客 3万+

深入解析Seata AT模式:分布式事务原理、实战与调优

分布式事务是微服务架构中确保数据一致性的核心技术挑战,其核心在于协调多个独立服务间的数据操作,实现ACID特性或最终一致性。其实现原理通常基于两阶段提交、补偿事务等机制,在保证数据可靠性的同时,需权衡性能与复杂性。从技术价值看,分布式事务解决方案能显著提升系统的可靠性与可维护性,降低因网络分区、节点故障导致的数据不一致风险。在应用场景上,它广泛应用于电商交易、金融支付、库存管理等需要跨服务强一致或最终一致性的领域。本文聚焦于Seata AT模式,该模式通过**SQL解析自动生成回滚日志**,实现了对业务代码

weixin_33968104的博客 495

ApplicationContext介绍 ApplicationContext是什么?

如果说BeanFactory是Spring的心脏,那么ApplicationContext就是完整的身躯了。ApplicationContext由BeanFactory派生而来,提供了更多面向实际应用的功能。 ApplicationContext类体系结构 ApplicationContext的主要实现类是ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,前者默认从类路径加载配置文件,后者默认从文件系统中装载配置文件

Move on 1万+

Seata AT 模式解析分布式事务面试必问的三个致命陷阱

Seata AT 模式就像一把双刃剑,既能帮你解决分布式事务难题,也可能在关键时刻给你致命一击。掌握这三个致命陷阱的本质,不仅能应对面试,更能在实际项目中避免「埋雷」。

wjianwei666的专栏 1237

SEATA AT模式解析:分布式事务实战指南

分布式事务是微服务架构中的关键技术挑战,传统方案如2PC存在性能瓶颈,TCC模式实现复杂。SEATA AT模式通过全局锁、二阶段提交优化和镜像数据比对三大机制,实现了无侵入式的分布式事务解决方案。该模式特别适用于电商订单、库存扣减等需要跨服务数据一致性的场景,通过@GlobalTransactional注解即可将本地事务自动升级为分布式事务。本文深入剖析AT模式的核心原理,结合Spring Boot和Nacos等主流技术栈,给出包括undo_log表设计、数据源代理配置在内的完整实施路径,并分享生产环境中性

weixin_30924239的博客 491

分布式事务 Seata TCC 模式深度解析

2019 年 3 月,蚂蚁金服加入分布式事务 Seata 的社区共建中,并贡献其 TCC 模式。本期是 SOFAChannel 第四期,主题:分布式事务 Seata TCC 模式深度解析,本文根据觉生的直播整理。 大家晚上好,我是 Seata Committer 觉生,来自蚂蚁金服数据中间件团队。今天的内容主要分为以下四个部分: Seata TCC 模式的原理解析; 从 TCC 的业务模型与...

怀素的专栏 2万+

Seata AT模式深度解析:零侵入分布式事务原理与实战

分布式事务是微服务架构中确保数据一致性的核心技术,其核心挑战在于协调跨服务、跨数据库的多个本地事务,保证它们要么全部成功,要么全部回滚。传统两阶段提交(2PC)方案存在性能瓶颈和侵入性强的问题。Seata AT(Automatic Transaction)模式通过创新的“一阶段提交+二阶段补偿”机制,在保证最终一致性的同时,实现了对业务代码的零侵入。其关键技术在于通过数据源代理自动拦截并解析SQL,生成数据修改的前后镜像作为回滚日志(undo_log),并配合全局锁机制防止脏写。这种方案特别适用于电商、金融

weixin_30888413的博客 321

SpringMVC 分布式事务 Seata 模式解析

Seata AT 模式是 Seata 分布式事务解决方案的核心之一,它通过两阶段提交协议确保分布式事务的原子性。在 AT 模式下,Seata 将业务操作分为业务数据和业务逻辑两部分,其中业务数据操作被封装在数据库事务中,而业务逻辑操作则通过 Seata 提供的 API 进行控制。Seata TCC 模式通过三个阶段(准备阶段、提交阶段、回滚阶段)实现分布式事务的原子性。准备阶段:尝试修改数据但不提交事务。提交阶段:若成功则提交事务。回滚阶段:若失败则回滚事务。

我是Java程序员廖志伟,感谢朋友们的支持!不定期贡献一篇高品质、过万文字、图文并茂且附有视频解说、满载代码示例注释的良心之作,坚决杜绝粗制乱造。 732

MySQL操作之数据类型

文章目录1、整数类型(INT)2、浮点数类型和定点数类型(Float/Double)3、日期与时间类型(DATE)4、字符串和二进制类型(CHAR) MySQL提供了5种数据类型:整数类型、浮点数类型、定点数类型、日期和时间类型、字符串类型和二进制类型。 1、整数类型(INT) 有5种数据类型:tinyINT、samllINT、mediumINT、INT、bigINT。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nk97lxNQ-1632048043862)(/User

lydms的博客 4565

分布式事务Seata源码解析八:本地事务执行流程(AT模式下)

1、SeataDataSourceProxy、DataSourceProxy、ConnectionProxy、StatementProxy、PreparedStatementProxy介绍; 2、Seata本地事务执行入口、整体流程? 3、Seata本地事务提交流程? 4、Seata全局锁冲突重试机制LockRetryPolicy?

健身变秃,coding变强 2513

Seata支持的分布式事务模式全面解析

Seata支持的分布式事务模式全面解析

嗨,欢迎来到我的 优快云 博客小天地!一名深耕多年的技术发烧友。在这里,我将把日常工作中积累的宝贵经验,从复杂架构设计的精妙之处,到代码优化的实战技巧,毫无保留地分享给大家。 6733

分布式事务Seata源码解析13:TCC事务模式实现原理

1、TCC事务模式实现原理; 2、TCC资源TCCResource解析; 3、TCCResource注册到TC的流程; 4、TCC执行上下文BusinessActionContext详解; 5、TCC分支事务执行流程、ActionInterceptorHandler解析; 6、@LocalTCC使用原理、@TwoPhaseBusinessAction使用原理、@BusinessActionContextParameter使用原理; 7、TCC分支事务提交、回滚原理。

健身变秃,coding变强 5850

SpringBoot分布式事务方案:Seata与Saga模式深度解析

为开发者提供了便捷的开发体验。Seata作为一款开源的分布式事务解决方案,在Spring Boot项目中得到了广泛的应用。其中,Saga模式作为Seata提供的一种柔性事务解决方案,具有独特的优势。本文将深入解析Seata与Saga模式在Spring Boot项目中的应用。

梵心白莲的博客 1293

MuJoCo柔性体仿真实战:从FlexComp建模到自定义模型导入

柔性体仿真是机器人交互研究中不可或缺的一环,MuJoCo作为高精度物理求解器,凭借高效的求解速度与批量并行能力,成为强化学习与软体抓取任务的热门选择。其FlexComp机制将连续材料离散为粒子-约束系统,以较低建模成本模拟布料、软组织等形变行为,相比Gazebo等平台更具实时性与可扩展性。技术价值体现在自定义柔性体建模与导入流程中:通过XML配置网格密度、间距与材料参数,即可生成贴合任务需求的软体垫子或硅胶抓手。在柔性抓取、颗粒抓手、医疗仿真等场景中,该方法能快速构建可训练的环境。围绕环境搭建、FlexCo

weixin_29045585的博客 163

【Qualcomm高通音频】音效调试_录音文件播放有杂音,如何定位原因?

一、录音播放数据处理过程介绍 (1)TX方向 麦克风(硅麦克风或者主机体麦克风)采集模拟音频信号,经过内部CODEC芯片中的adc转换为数字信号,在经过高通音频DSP处理音效后编码为wav/aac/amr/mp3等格式文件。 (2)RX方向 音频文件经过解码、重采样还原为pcm数据,经过DSP处理音效后送到内部CODEC,然后经过DAC转换为模拟信号,送到喇叭。 二、分析步骤 1...

crow_ch的博客 5976

分布式事务解决方案 Seata AT模式深度解析

摘要: 本文深度解析Seata AT模式的分布式事务原理与实战应用。针对电商、金融等场景中的全局锁死锁、undo_log表膨胀、SQL兼容性等典型问题,提供优化方案与性能调优策略。详细讲解两阶段提交、全局锁机制、SQL解析器等核心实现,并通过完整电商案例对比AT/TCC/Saga模式的差异。包含企业级配置模板、监控告警方案及高可用部署指南,强调合理设计事务粒度、定期清理undo_log、完善监控体系等最佳实践。适用于中高级开发者解决分布式事务一致性难题,平衡性能与可靠性需求。

七夜zippoe的博客 992

Open3D:Win10 + VS2017配置Open3D(C++、python)

一、下载源码 地址:https://github.com/intel-isl/Open3D 1.1 克隆源码【笔者的源码路径为D:\Open3D\Open3D】 1.2 切换版本【笔者的版本为0.8.0】 1.3 更新子模块【用于获取第三方库!很重要!】 二、CMake编译 2.1 设置路径 【source code: D:\Open3D\Open3D;build binaries: D:\Open3D】 【笔者设置CMAKE/CMAKE_INSTALL_PREFIX的路径为D:/Open.

累了就要打游戏 1万+

java基础:Seata分布式事务模式深度解析

Seata的四种事务模式并非相互替代,而是针对不同业务场景的互补方案。AT模式的零侵入、TCC模式的高性能、SAGA模式的长事务支持、XA模式的强一致性,共同构成了分布式事务的完整解决方案。在阿里、字节跳动等企业的实践中,分布式事务的设计核心不是追求绝对的一致性,而是根据业务场景选择"合适的一致性等级"。理解每种模式的底层原理与适用边界,才能在复杂业务场景中做出最优技术决策——这也是资深工程师与普通开发者的核心差距所在。

weixin_43290370的博客 1212

STC8H开发(十六): GPIO模拟SPI驱动Ci24R1实现低成本无线遥控

本文详细介绍了如何使用STC8H单片机通过GPIO模拟SPI驱动Ci24R1无线模块,实现低成本无线遥控方案。内容涵盖硬件设计要点、软件驱动开发技巧及实战优化经验,特别适合消费电子产品开发者参考。Ci24R1凭借其高性价比和双模协议支持,成为替代传统nRF24L01+的理想选择。

weixin_30378623的博客 351

华为OD机考双机位C卷 - 补种未成活胡杨 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 补种未成活胡杨(OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 2419

分布式事务 Seata 教程 - Seata1.4.2之AT模式执行流程解析

事务开始:客户端通过注解或 API 标记开始全局事务,Seata Server 生成全局事务 ID。分支注册:客户端在执行本地事务过程中,为每个数据库操作注册分支事务。执行本地操作:客户端执行业务逻辑,Seata 记录 Undo Log。事务提交或回滚:客户端决定提交或回滚全局事务。分支提交或回滚:Seata Server 向分支事务发送提交或回滚命令。事务结束:Seata Server 更新全局事务状态,并清理记录。

qq_33240556的博客 996

QCM2290 PM-3 如何让mirco-usb支持关机充电

PM4125-3插入type-C触发开机进入关机充电的CC脚中断条件是否可以软件上屏蔽, 做到只通过VBUS中断即可触发进入关机充电模式,达到和PM4125-2的效果一样只要插入micro USB 就可以触发进入关机充电模式。硬件团队提议修改寄存器 SCHG_L_MISC_SYSOK_CFG 0x164A bit[4] 目前修改如下 — a/BOOT.XF.4.1/boot_images/QcomPkg/Library/PmicLib/target/Agatti_pmCocos/psi/pm_confi

墨染天玑的博客 444

分布式事务解决方案:Seata架构与AT/XA模式深度解析

传统解决方案如两阶段提交(2PC)存在性能瓶颈,而 Seata作为开源分布式事务框架,提供了更灵活的模式,尤其是 AT(自动补偿)和 XA(强一致性)模式,成为企业级应用的热门选择。- 拦截业务SQL,生成数据更新前后的快照(`before_image` 和 `after_image`)。- **回滚**:根据undo_log生成反向SQL补偿数据,并通过 **全局锁** 避免脏写。| **维度** | **AT模式** | **XA模式** |- **提交**:异步删除undo_log,无资源占用。

2301_76867627的博客 995

8.26华为OD机试真题 新系统 - 仓库查询 (Java/Py/C/C++/Js/Go)

8.26华为OD机试真题 新系统 - 仓库查询 (Java/Py/C/C++/Js/Go)

算法大师! 1742

python如何给声音增加回声效果

创建任何声音对象的回声效果。使用sndarray和numpy来创建原始声音的偏移和衰减副本。目前它只是使用硬编码的值来设置回声的数量和延迟。你可以根据自己的需要轻松地重新创建。这段注释说明了make_echo函数的用途和实现方式,即通过pygame的sndarray模块和numpy库来处理声音数据,生成具有回声效果的声音。函数中使用了固定的回声数量和延迟时间,但这些值可以根据用户的需求进行调整。

zhangzhechun的专栏 977
上一篇: 六边形架构:软件设计的未来之道
下一篇: 分布式系统Master选举机制解析
Java开发廖志伟
博客等级 码龄2年 3491粉丝 1534原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值