三十八、AT模式

news2025/2/26 2:20:00

目录

一、定义

1、AT模式工作原理如下:

2、优点:

3、缺点:

4、流程:

二、AT模式与XA模式的区别

三、AT模式的脏写问题

四、实现AT模式


一、定义

  • AT模式是指使用AT命令进行串口通信的工作模式。
  • AT命令是由两个字符组成的命令,用于控制设备,例如控制调制解调器或移动电话。
  • AT命令可以通过串口发送到设备,设备会根据命令执行相应操作并回复结果。
  • AT模式在嵌入式系统开发中广泛使用,特别是在GSM、GPRS、GPS和WiFi等无线通信模块的控制中。
  • AT模式是通过串口通信发送AT命令来控制设备的一种工作模式,具有操作简单、可靠性高、兼容性强等特点。

1、AT模式工作原理如下:

  1. 设备进入AT模式。在开发阶段,可以通过特殊的启动方式或者设置相关寄存器来将设备进入AT模式。

  2. 发送AT命令。用户将需要执行的AT命令按照特定格式组装成字符串,并通过串口发送到设备。

  3. 设备执行AT命令并返回结果。设备接收到AT命令后,会根据命令执行相应的操作,然后将执行结果通过串口回复给用户,用户可以通过串口读取回复数据。

  4. 继续发送AT命令或退出AT模式。用户可以继续发送AT命令控制设备,也可以通过特定的命令退出AT模式,让设备返回正常工作模式。

2、优点:

  • AT模式同样是分阶段提交的事务模型,不过缺弥补了XA模型中资源锁定周期过长的缺陷。
  • 一阶段完成直接提交事务,释放数据库资源,性能比较好
  • 利用全局锁实现读写隔离
  • 没有代码侵入,框架自动完成回滚和提交

3、缺点:

  • 两阶段之间属于软状态,属于最终一致
  • 框架的快照功能会影响性能,但比XA模式要好很多

4、流程:

阶段一RM的工作:

  1. 注册分支事务
  2. 记录undo-log(数据快照)
  3. 执行业务sql提交
  4. 报告事务状态

阶段二提交时RM的工作:

  1. 删除undo-log即可

阶段二回滚时RM的工作:

  1. 根据undo-log恢复数据到更新前

二、AT模式与XA模式的区别

1、

  • XA模式一阶段不提交事务,锁定资源;
  • AT模式一阶段直接提交,不锁定资源。

2、

  • XA模式依赖数据库机制实现回滚;
  • AT模式利用数据快照实现数据回滚。

3、

  • XA模式强一致;
  • AT模式最终一致

三、AT模式的脏写问题

  • 在AT模式下,由于没有运行操作系统的支持,无法进行文件系统的管理和维护,因此可能会存在脏写问题。
  • 脏写问题是指在写入数据时,由于突然断电或其他意外情况导致写入的数据只写了部分,或者写入的数据与原来的数据不同步,导致数据出现错误或丢失的情况。
  • 在写入之前有其他事务修改了数据。

为避免脏写问题,可以采取以下措施:

  1. 使用原子操作:在写入数据时,采用原子操作,保证一次性将数据写入到设备中。

  2. 使用缓存技术:在写入数据时,可以先将数据写入到缓存中,等到所有数据都写入完成后再一次性将数据写入到设备中,这样可以减少写入中断的风险。

  3. 定期进行数据备份:对于重要的数据,可以定期进行备份,以免发生意外情况时丢失数据。

  4. 对于可能导致脏写的操作,进行异常处理:在数据写入时,加入异常处理模块,对可能发生的异常进行处理,保证数据的完整性和正确性。

  5. 在提交之前,为事务加上全局锁,避免其他事务的修改。

写隔离:

四、实现AT模式

1、修改yml文件

seata:
    data-source-proxy-mode: AT # 开启数据源代理的AT模式

2、重启服务

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

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

相关文章

协同过滤算法之vue+springboot个性化电影评分推荐系统6n498

摘要为了解决信息过载问题,个性化推荐系统由此产生。个性化推荐系统通过对用户行为的分析,利用数据挖掘算法对信息进行过滤,将用户可能感兴趣的产品或项目推荐给用户。对于电影爱好者来说,利用网络在浩如烟海的电影数据库中找到自己喜欢的电影并非易事。电影作为一个艺术的载体…

ahk系列-windows超级运行框-表达式计算(6)—asc/ord/chr ASCII 码转换

1、环境准备 windows 7,8,10,11操作系统ahk 2.x_64位 2、使用方式 asc 可以计算 asc字符 ,或者汉字,的数值,ord /chr 则是把数值转换为字符 当然有很多字符不可见,比如我们用 “{}” 包裹它…

软件测试之python+requests接口自动化测试框架实例教程

前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自动化框架,使用的…

元宇宙解决方案:GPU云服务在元宇宙中的作用

GPU算力可以说是我们现在信息化时代的基础设施,在某种程度上说我们已经进入了算力时代,手机、电脑、车载等算力已经渗透到各行各业了。 当然算力对元宇宙也很重要,尤其是在可视化方面,元宇宙需要很逼真的渲染,同时它的…

【8】PyQt单选框和复选框

目录 1. 单选框 2. 复选框 1. 单选框 QRadioButton是单选按钮,它提供了一组可供选择的按钮和文本标签,用户可以选择其中一个选项 单选框选中的信号是:toggled 代码示例: from PyQt5.QtWidgets import * from PyQt5.QtCore import * import sysdef func(checked…

校园教务管理系统

学年论文(课程设计) 题目: 信息管理系统 校园教务管理系统 摘要:数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心,随着计算机技术的发展,数据库技…

docker:安装mysql以及最佳实践

文章目录 1、拉取镜像2、运行容器3、进入容器方式一方式二方式三容器进入后连接mysql和在宿主机连接mysql的区别 持久化数据持久化数据最佳实践 1、拉取镜像 docker pull mysql2、运行容器 docker run -d -p 3307:3306 --name mysql-container -e MYSQL_ROOT_PASSWORD123456 …

Python实现FA萤火虫优化算法优化随机森林回归模型(RandomForestRegressor算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 萤火虫算法(Fire-fly algorithm,FA)由剑桥大学Yang于2009年提出 , …

意大利语翻译成中文怎样做比较好

近年来,中意两国传统友好,两国人民之间的交往源远流长,双方合作不断推进,国内市场对于意大利语翻译的需求日益增加。那么,意大利语翻译有何特点,意大利语翻译成中文怎样做比较好呢? 由于意大利语…

matlab实践(十):贝塞尔曲线

1.贝塞尔曲线 贝塞尔曲线的原理是基于贝塞尔曲线的数学表达式和插值算法。 贝塞尔曲线的数学表达式可以通过控制点来定义。对于二次贝塞尔曲线,它由三个控制点P0、P1和P2组成,其中P0和P2是曲线的起点和终点,P1是曲线上的一个中间点。曲线上…

Leetcode每日一题学习训练——Python3版(最小化旅行的价格总和)

版本说明 当前版本号[20231206]。 版本修改说明20231206初版 目录 文章目录 版本说明目录最小化旅行的价格总和理解题目代码思路参考代码 原题可以点击此 2646. 最小化旅行的价格总和 前去练习。 最小化旅行的价格总和 现有一棵无向、无根的树,树中有 n 个节点…

LeetCode Hot100 207.课程表

题目: 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习…

人工智能在警务工作中的运用

AI 能否帮助警察打击犯罪? 执法部门负责维护公共安全,他们必须处理随之而来的所有挑战。幸运的是,警察可以依靠技术来处理很多工作。近几年来,尤其是人工智能技术在全球变成了警务工作中的一个重要部分。 随着基于 AI 的警务技术…

如何在Java中实现多条件排序

文章目录 前言一、在Java中使用Comparator接口实现多条件排序二、视频讲解总结 前言 多条件排序是一个复杂而实用的技术问题,它涉及到算法、数据结构等多个领域。 在实际工作中,我们常常需要根据多个条件对数据进行排序,以达到最优化的效果。…

桶排序去重

题目&#xff1a; #include<stdio.h> int main() { int a[1001], n, i, t; for (i 1;i < 1000;i) { a[i] 0;//初始化 } scanf("%d", &n);//读入n for (i 1;i < n;i)//循环读入n个图书的ISBN号 { scanf(&…

ABAP 字符串空白值保留长度或者用其他字符替代

保留空白值在字符串的长度。 DATA lv_char1 TYPE string VALUE Hello. DATA lv_char2 TYPE string VALUE World. DATA LV_CHAR3 TYPE C LENGTH 50.DATA(lv_string3) |{ lv_char1 } { lv_char2 }!|.WRITE: / lv_string3.DATA(lv_string2) lv_char1 && | { lv_char3 } …

分库分表详解

分库分表很常见&#xff0c;但这些问题90%的人都答不全 分库分表&#xff0c;是企业里面比较常见的针对高并发、数据量大的场景下的一种技术优化方案&#xff0c;也是一个非常高频的面试题。但是&#xff0c;因为很多人其实并没有非常丰富的分库分表的经验&#xff0c;所以能把…

虚拟线程原理及性能分析

一、背景 JDK21 在 9 月 19 号正式发布&#xff0c;带来了较多亮点&#xff0c;其中虚拟线程备受瞩目&#xff0c;毫不夸张的说&#xff0c;它改变了高吞吐代码的编写方式&#xff0c;只需要小小的变动就可以让目前的 IO 密集型程序的吞吐量得到提升&#xff0c;写出高吞吐量的…

甘草书店:#8 2023年11月22日 星期三「“说一套做一套”的甘草与麦田」

最近与甘草书店的投资方和意向投资方沟通&#xff0c;听取了来自不同领域不同人群的观点。他们讲的都有道理&#xff0c;但他们说的都不是甘草。就像“麦田”成立之前&#xff0c;世间没有“麦田”一样&#xff1b;“甘草”出现之前&#xff0c;世间没有也没有“甘草”。 故事…

UDP多人群聊

一&#xff0c;创建类 二&#xff0c;类 1&#xff0c;Liao类 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.net.*; import java.io.IOException; import java.lang.String; public class Liao extends JFrame{ private static fi…