Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >隔离是必需的,还是我也可以使用read?

隔离是必需的,还是我也可以使用read?
EN

Stack Overflow用户
提问于 2022-07-21 02:13:20
回答 2查看 65关注 0票数 0

我使用与JdbcChannelMessageStore的spring集成,使用pgbouncer备份postgres。我运行了多个jvm,得到了:

由于并发删除(或更新),无法序列化访问

这是problem?

  • Can/should i切换为read提交的
  1. (如果是,如何实现)?
EN

回答 2

Stack Overflow用户

发布于 2022-07-21 06:12:15

JdbcChannelMessageStore不启动事务,它只是参与现有的事务。看,你是从你的服务水平开始的。也许它只是一个@Transactional,它确实有这样的选项:

代码语言:javascript
运行
AI代码解释
复制
/**
 * The transaction isolation level.
 * <p>Defaults to {@link Isolation#DEFAULT}.
 * <p>Exclusively designed for use with {@link Propagation#REQUIRED} or
 * {@link Propagation#REQUIRES_NEW} since it only applies to newly started
 * transactions. Consider switching the "validateExistingTransactions" flag to
 * "true" on your transaction manager if you'd like isolation level declarations
 * to get rejected when participating in an existing transaction with a different
 * isolation level.
 * @see org.springframework.transaction.interceptor.TransactionAttribute#getIsolationLevel()
 * @see org.springframework.transaction.support.AbstractPlatformTransactionManager#setValidateExistingTransaction
 */
Isolation isolation() default Isolation.DEFAULT;

选项确实提供了类似方式配置它的钩子:https://docs.spring.io/spring-integration/docs/current/reference/html/transactions.html#transactions

票数 0
EN

Stack Overflow用户

发布于 2022-07-21 07:24:06

对于一个波勒来说,这似乎是这样做的:

代码语言:javascript
运行
AI代码解释
复制
  @Bean(MESSAGING_TRANSACTION_INTERCEPTOR)
    public static TransactionInterceptor transactionInterceptor() {
        return new TransactionInterceptorBuilder(true)
                .isolation(READ_COMMITTED) // The default ISOLATION_REPEATABLE_READ leads to errors and is not needed
                .build();
    }

    @Bean(name = DEFAULT_POLLER)
    public PollerMetadata pollerMetaData(@Qualifier(MESSAGING_TRANSACTION_INTERCEPTOR) TransactionInterceptor transactionInterceptor) {
        PollerMetadata meta = new PollerMetadata();
        meta.setAdviceChain(List.of(transactionInterceptor));
        return meta;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73064355

复制
相关文章
什么是REPEATABLE-READ隔离级别?
马克-to-win:既 然我们教材用mysql,我们仔细研究一下mysql缺省情况,即两个窗口都是REPEATABLE-READ(可重复读)级别的情况。两个窗口都开始事 务以后,窗口2的update,delete,insert,窗口1肯定都看不见。但双方如果都同时update,delete,insert的话,虽然 会被block住,但一旦最后两个窗口都提交,两个窗口的效果是累加的。马克-to-win:举几个例子:1)比如窗口2先要减1,虽然窗口1看不见这种变化,窗口1如果也要 减1的话,虽然当时被block住,但只要窗口2提交的话,窗口1竟然凭着select * from table能够看到累加的效果,即一共减了2。换句话说,窗口1如果不update一下,就不会看到窗口2的update的效果。2)同样道理,如果窗口 2删除了一条记录,提交以后,窗口1未提交之前,还以为这条记录存在呢。select时发现还有,但update时,不能update,也不报错。提交以 后才发觉,数据早没有了。更新半天,都是瞎忙活。马克-to-win:也好理解,因为窗口2早delete了嘛!3)如果窗口2增加一条,窗口1也想增加同样主键的这条记录 (因为看不到这条主键的记录),暂时被挡住以后,当窗口2提交,窗口1会报错,说试图增加重复键。4)窗口1想更新全部的记录为红色,同时窗口2想插入一 条蓝色的,被挡住后不能动弹键盘。窗口1必须先提交,select一下,没发觉蓝色的,等窗口2提交以后,大家都发觉,所有的都变成了红色,除了新插入的 一条是蓝色。所以还是符合提交的变化都会生效,变化的效果是累加的。5)窗口2增加一条,窗口1死活看不到这一条。即使看不见,如果愣更新这条记录的话, 会被挡在那里。马克-to-win:这时如窗口2提交,窗口1简单select,就可以看到自己update的效果。mysql的策略是,只要你叠加在别人的修改之上修改了, 在你提交之前,是可以看到这种修改的,即使你的窗口级别是REPEATABLE-READ(可重复读)。
马克java社区
2021/10/08
8560
MySQL实战之事务到底是隔离的还是不隔离的
我们在MySQL实战之事务隔离:为什么你改了我还看不见讲过事务隔离级别的时候提到过,如果是可重复读隔离级别,事务T启动的时候会创建一个视图read-view,之后事务T执行期间,即使有其他事务修改了数据,事务T看到的仍然跟在启动时看到一样。也就是说,一个在可重复读隔离级别下执行的事务,好像与世无争,不受外界影响。
特特
2023/03/08
1.7K1
MySQL实战第八讲 - 事务到底是隔离的还是不隔离的?
第 3 篇文章和你讲事务隔离级别的时候提到过,如果是可重复读隔离级别,事务 T 启动的时候会创建一个视图 read-view,之后事务 T 执行期间,即使有其他事务修改了数据,事务 T 看到的仍然跟在启动时看到的一样。也就是说,一个在可重复读隔离级别下执行的事务,好像与世无争,不受外界影响。
越陌度阡
2022/05/06
3120
MySQL实战第八讲 - 事务到底是隔离的还是不隔离的?
MySQL基础篇7 mysql的事务到底是隔离的还是不隔离的
如果是可重复读级别. 事务T启动的时候会创建一个视图read-view. 之后事务T之星期间, 即使有其他事务修改了数据, 事务T看到的仍然跟在启动时候看到的一样.
历久尝新
2020/05/20
7180
MySQL基础篇7 mysql的事务到底是隔离的还是不隔离的
Babel还是Node开发的“必需品”吗?
现在做 Node 开发还需要“麻烦”的 Babel 吗?毋庸置疑,Babel 曾经对构建和开发 Node.js 应用程序有过很大的影响,但随着 Node.js 的原生功能不断强大,Babel 或许也不再是 Node 开发的“必需品”。本文将主要介绍关于如何在 Node 开发中摆脱 Babel 的方法。
coder_koala
2019/09/25
9320
Babel还是Node开发的“必需品”吗?
MySQL深入学习第八篇 - 事务到底是隔离的还是不隔离的?
第 3 篇文章和你讲事务隔离级别的时候提到过,如果是可重复读隔离级别,事务 T 启动的时候会创建一个视图 read-view,之后事务 T 执行期间,即使有其他事务修改了数据,事务 T 看到的仍然跟在启动时看到的一样。也就是说,一个在可重复读隔离级别下执行的事务,好像与世无争,不受外界影响。
越陌度阡
2020/11/26
4650
MySQL深入学习第八篇 - 事务到底是隔离的还是不隔离的?
Mysql为何使用可重复读(Repeatable read)为默认隔离级别?
群里有小伙伴面试时,碰到面试官提了个很刁钻的问题:Mysql为何使用可重复读(Repeatable read)为默认隔离级别??? 下面进入正题: 我们都知道事务的几种性质 :原子性、一致性、隔离性和
Java宝典
2021/07/15
1.9K0
愿意自己被监控的同时,我也可以监控别人
过去警察在办案的时候,总是搜集各种证据,进行一系列的逻辑推理,来证明某个人犯案,如果未来通过人工智能,把每个人无论生活中还是工作娱乐中的片段全都一一不拉的记录下来,先不说我们愿不愿意看到这种场景,是不是从警察的角度来说,要变得更加轻松愉悦。 现实生活中,当我们早上起来去工作时,办公室里大多安装有摄像头(当然这个摄像头中的录像并不是用来监视我们的工作,只有调查某件紧急事情时,才会回访,但是从某种意义上来说,我们的确是被监视了),工作过程大都使用电脑,电脑能够记录下我们点击键盘的节凑,打开某个文档操作了多长时间
用户5166556
2019/11/28
6420
这还是我认识的WPS吗?这些功能也太可了吧!
没错,WPS可不是什么模仿微软的盗版软件出身,人家可是金山早在1988年就自主研发出来的办公软件!
程序员晚枫
2022/12/09
1.5K0
这还是我认识的WPS吗?这些功能也太可了吧!
掌握XSS与CSFR,我也可以是个黑客!
今天呀,我想当一名黑客,去黑别人的网站!我有两三技能,独乐不如众乐乐,今天我也把这个几个攻击手段教给你,咱们一起搞事情去。
java思维导图
2019/09/24
1.1K0
掌握XSS与CSFR,我也可以是个黑客!
掌握XSS与CSFR,我也可以是个黑客!
今天呀,我想当一名黑客,去黑别人的网站!我有两三技能,独乐不如众乐乐,今天我也把这个几个攻击手段教给你,咱们一起搞事情去。
JAVA葵花宝典
2019/10/08
6650
掌握XSS与CSFR,我也可以是个黑客!
【科普】我是蝙蝠,你们可以骂我了
? ? ? ?
lujohn3li
2020/03/03
3200
隔离级别高好还是低好?
马克-to-win:有 同学问,是隔得狠的好(级别高)还是隔得不狠(级别低)的好?答案:没有哪个绝对好,只有哪个更适合当时的情形。众所周知,序列化是最安全的(幻读都读不 到),但它耗时也是最长的。当你在更新时,我连看都不能看。在很多情况下,是非常没有必要的,太耗时了。其实在很多情况下,用户只需要获得一个大致的数据 就可以了。比如大家一块买票的情况,具体还剩一万张票,还是还剩9999张票,差别不大。他其实就想看一个大概其而已,他知道现在是一万张,而不是十张就 够了。马克-to-win:因为真要是十张的话,就真得看手速了。要是一万张的话,还可以先冲杯咖啡。所以。。。。。。
马克java社区
2021/08/03
1K0
基因日签【20210629】snRNA是剪接所必需的
除U6外,所有的snRNP都含有一段保守序列,它能够与Sm蛋白结合,后者是一种能被自身免疫病所产生的抗体识别的蛋白质。
尐尐呅
2022/03/31
4300
基因日签【20210629】snRNA是剪接所必需的
Docker是如何实现隔离的
容器化技术在当前云计算、微服务等体系下大行其道,而 Docker 便是容器化技术的典型,对于容器化典型的技术,我们有必要弄懂它,所以这篇文章,我会来分析下 Docker 是如何实现隔离技术的,Docker 与虚拟机又有哪些区别呢?接下来,我们开始逐渐揭开它的面纱。
xcbeyond
2020/06/19
1.9K0
Docker是如何实现隔离的
什么是事务隔离
MySQL 中事务支持是在引擎实现的, MySQL 原生的 MyISAM 引擎不支持事务,这也是 MyISAM 被 InnoDB 引擎取代的重要原因。
王小明_HIT
2020/07/21
3910
什么是事务隔离
选择云服务厂商:信息隐私政策是必需
一个良好的云供应商隐私政策不仅应该含有物理和逻辑安全,还要有地理和人员方面的约束。 当涉及到选择云服务厂商时,首先你要做的事情是弄清楚他们确实拥有信息隐私政策,发布在某个位置你是可以找到的,且它解决了你的问题。另外,它是否可以在线使用,并且在需要时进行更新。有些,政策可以促进你考虑一些他们以前没有想到的事情。 云隐私政策应用重点关注的地方是物理和逻辑安全。但同样重要的是身份管理和访问控制,这些政策是专门给可以访问您的数据的人。 你还应该关注对于不同的地理位置有哪些相关政策。例如,如果的数据无法离开美国,那么
静一
2018/03/20
1K0
“我是零基础小白,我可以转行大数据吗?”
我们在做出一个决定之前总是会有这样那样的担忧和犹豫,特别是当自身厌倦了目前的工作和生活,思考未来的时候。“我要不要继续过这样的生活?”“我要不要待在舒适圈?”“我要不要转行?转行的话我没有经验,会不会不太好?”这其实就是我们做决定前的常态,特别是在如今高压的生活下。想要赚钱,但又迟迟不能做出决定。其实当你有这样那样的犹豫师,你心里已经有一个答案了,只是你没有勇气去做。如果你想获得高薪,大数据行业的确可以成为你转行的首选。
成都加米谷大数据
2021/03/10
6880
“我是零基础小白,我可以转行大数据吗?”
我是普通人,我居然可以这样借力ChatGPT?
画外音:由于ChatGPT最为大众熟知,后续任何提到ChatGPT的地方,泛指“AI工具”。
架构师之路
2023/08/10
1750
我是普通人,我居然可以这样借力ChatGPT?
MySQL在REPEATABLE READ隔离级别下解决幻读了吗?
REPEATABLE READ是InnoDB的默认隔离级别。MySQL对它有如下的支持:
爬蜥
2022/03/07
6360

相似问题

使用我(VB.NET)关键字是必需的还是不是必需的?

66

我的机器密钥是自动生成的还是隔离的?

10

如何检测MySQL索引是必需的还是必需的?

22

我需要Kibana/ Grafana,还是也可以使用套件?

17

我应该为read语句使用哪个事务隔离级别?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文