稀里糊涂的,忘了开启SqlServer的is read committed snapshot on…
1. Redis 发布订阅 1.1 概述 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. Redis 客户端可以订阅任意数量的频道. 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 . client5 和 client1 之间的关系: 当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端: 1.2 步骤: 1.2.1.  创建了订阅频…
本文讲述阿里云官方文档中关于通过MQ实现分布式事务最终一致性原理 概念介绍 事务消息:消息队列 MQ 提供类似 X/Open XA 的分布式事务功能,通过消息队列 MQ 事务消息能达到分布式事务的最终一致. 半事务消息:暂不能投递的消息,发送方已经成功地将消息发送到了消息队列 MQ 服务端,但是服务端未收到生产者对该消息的二次确认,此时该消息被标记成"暂不能投递"状态,处于该种状态下的消息即半事务消息. 消息回查:由于网络闪断.生产者应用重启等原因,导致某条事务消息的二次确认丢失,消息…
PLSQL 链接本机:oracle11g 服务名:orcl   一直链接不上,等了大概3分钟, 提示:ora-12170操作超时: 重启了数据库 问题还是无法解决;上网搜了一下,发现报ora-12170操作超时错误的,大多都是windows 防火墙的引起的; window设置了一下防火墙还真解决了问题:解决过程如下: >cmd >tnsping orcl 提示:tns-12535 操作超时 设置防火墙如下: 1.找到控制面板: 2.Windows防火墙 3.允许应用或功能通过防火墙 4.找到o…
各种形态的分布式事务 分布式事务有多种主流形态,包括: 基于消息实现的分布式事务 基于补偿实现的分布式事务(gts/fescar自动补偿的形式) 基于TCC实现的分布式事务 基于SAGA实现的分布式事务 基于2PC实现的分布式事务 之所以有这么多形态,是因为任何事情都没有银弹,只有最合适当前场景的解决方案. 这些形态的原理已经在很多文章中进行了剖析,用"分布式事务"关键字就能搜到对应的文章,本文不再赘述这些形态的原理,并将重点放在如何根据业务选择对应的分布式事务形态上. 何时选择单机事…
各种形态的分布式事务 分布式事务有多种主流形态,包括: 基于消息实现的分布式事务 基于补偿实现的分布式事务 基于TCC实现的分布式事务 基于SAGA实现的分布式事务 基于2PC实现的分布式事务 这些形态的原理已经在很多文章中进行了剖析,用“分布式事务”关键字就能搜到对应的文章,本文不再赘述这些形态的原理,并将重点放在如何根据业务选择对应的分布式事务形态上. 何时选择单机事务? 这个相信大家都很清楚,在条件允许的情况下,我们应该尽可能地使用单机事务,因为单机事务里,无需额外协调其他数据源,减少了网…
终于到了今天了,终于要讲RocketMQ最牛X的功能了,那就是事务消息.为什么事务消息被吹的比较热呢?近几年微服务大行其道,整个系统被切成了多个服务,每个服务掌管着一个数据库.那么多个数据库之间的数据一致性就成了问题,虽然有像XA这种强一致性事务的支持,但是这种强一致性在互联网的应用中并不适合,人们还是更倾向于使用最终一致性的解决方案,在最终一致性的解决方案中,使用MQ保证各个系统之间的数据一致性又是首选. RocketMQ为我们提供了事务消息的功能,它使得我们投放消息和其他的一些操作保持一个整…
微服务框架Spring Cloud介绍 Part1: 使用事件和消息队列实现分布式事务 本文转自:http://skaka.me/blog/2016/04/21/springcloud1/ 不同于单一架构应用(Monolith), 分布式环境下, 进行事务操作将变得困难, 因为分布式环境通常会有多个数据源, 只用本地数据库事务难以保证多个数据源数据的一致性. 这种情况下, 可以使用两阶段或者三阶段提交协议来完成分布式事务.但是使用这种方式一般来说性能较差, 因为事务管理器需要在多个数据源之间进行…
前言 对于分布式事务,常用的解决方案根据一致性的程度可以进行如下划分: 强一致性(2PC.3PC):数据库层面的实现,通过锁定资源,牺牲可用性,保证数据的强一致性,效率相对比较低. 弱一致性(TCC):业务层面的实现,通过预留或锁定部分资源,最后通过确认或取消操作完成事务的处理.比如A向B转款500元,A账号会冻结500元,其他操作正常,B接收转款时,也不能直接入账,而是将500元放到预留空间,只有经过确认之后,A才正式扣钱,B才正式入账: 如果取消把A的500块解冻,B也不会入账. 最终一致性…
前面我们讲了分布式事务的2PC.3PC , TCC 的原理.这些事务其实都在尽力的模拟数据库的事务,我们可以简单的认为他们是一个同步行的事务.特别是 2PC,3PC 他们完全利用数据库的事务能力,在一阶段开始事务后不进提交会严重影响应用程序的并发性能.TCC 一阶段虽然不会阻塞数据库,但是它同样是在尽力追求同时成功同时失败的一致性要求.但是在很多时候,我们的应用程序的核心业务为了追求更高的性能.更高的可用性,可以允许在一段时间内的数据不一致性,只需要在最终时刻数据是一致就可以了.基于以上场景我们…
在学习解决分布式事务基本思路之前,大家要熟悉一些基本解决分布式事务概念名词比如:CAP与Base理论.柔性事务与刚性事务.理解最终一致性思想,JTA+XA.两阶段与三阶段提交等. 如何保证强一致性呢?计算机专业的童鞋在学习关系型数据库的时候都学习了ACID原理,这里对ACID做个简单的介绍.如果想全面的学习ACID原理,请参考ACID 关系型数据库天生就是解决具有复杂事务场景的问题,关系型数据库完全满足ACID的特性. 数据库管理系统中事务(transaction)的四个特性(分析时根据首字母缩…
分布式事务(1)-理论基础 分布式事务(2)---强一致性分布式事务解决方案 分布式事务(3)---强一致性分布式事务Atomikos实战 强一致性分布式事务解决方案要求参与事务的各个节点的数据时刻保持一致,在高并发场景下,系统的性能可能收到影响.而最终一致性方案并不要求数据时刻一致,允许其存在中间状态,只要一段时间后数据能够最终一致即可. 所以基于BASE理论,提出了最终一致性解决方案,典型的有:TCC解决方案,可靠消息最终一致性方案,最大努力通知型解决方案. 其优点是: 1.性能比较高,不会…
前言 之前我们讨论了如何拆分一个订单下单的一个服务(https://www.cnblogs.com/linkstar/p/9610268.html) 从单体到微服务的拆分,当时我们只是对原来的整个服务做了一个简单的拆分,但是在实际中肯定会遇到很多问题,所以我们这里解决一个最容易也是最有可能在实际中遇到的问题,事务. 在单体架构中,我们很容易去维护一个事务,我们想要对一个事务操作回滚也很容易,而在分离成微服务之后,我们想要在多个服务上去维护一个事务就比较困难了.这里我们不再讨论分步事务的实现,转而…
一.事务 事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,只要其中任一操作执行失败,都将导致整个事务的回滚.简单地说,事务提供一种“要么什么都不做,要么做全套(All or Nothing)”机制. 二.分布式事务 分布式事务指事务的参与者.支持事务的服务器.资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上.简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的…
本文首发于 Nebula Graph Community 公众号 Nebula Graph v2.6 当中比较重要的特性之一便是 TOSS.通过本文,我将带你全方位了解 TOSS 为何物. 从一条 GO 语句说起 众所周知,边分为无向边跟有向边两种.所以当按有向边去探索时,就可以按正向边 / 反向边做遍历,Nebula Graph 也支持这种语义.比如: go from "101" over known reversely yield known.kdate, id($$); 上述语句…
[Shashlik.EventBus].NET 事件总线,分布式事务最终一致性 简介 github https://github.com/dotnet-shashlik/shashlik.eventbus 各位爷高兴了给个star呗. 分布式事务.CAP定理.事件总线,在当前微服务.分布式.集群大行其道的架构前提下,是不可逃避的几个关键字,在此不会过多阐述相关的理论知识.Shashlik.EventBus就是一个基于.NET6的开源事件总线解决方案,同时也是分布式事务最终一致性.延迟事件解决方案…
Jdbc执行存储过程报数据库事务无法执行的异常 环境: Eclipse+Jdk1.7+spring-jdbc-3.0.7+同版本的jdbctemplate+Sqlserver 2012 问题: 一个小接口采用jdbctemplate进行对sqlserver的存储过程操作,一般过程执行没问题,但个别存储过程第一次可以执行,第二次再执行就异常: 原因参考: https://blog.csdn.net/fenglibing/article/details/5160044 原因简要总结: 每次调用这个存…
https://github.com/OpenSagas-csharp/servicecomb-pack-csharp Saga基本使用指南 使用前置条件说明 如果还有同学对Saga还不甚了解的同学,可以参考Saga官方中文地址地址,同时可以参考此项目贡献者之一的WithLin的一篇中文说明文章,该地址如下:地址,文章由浅入深的讲述了分布式事务在微服务场景下的重要性,以及Saga对分布式事务的大致实现方式和后续的思考 必须 你需要可用的一个本地或者远程的数据库(mysql或者postpresql…
CAP,BASE和最终一致性是NoSQL数据库存在的三大基石.而五分钟法则是内存数据存储了理论依据.这个是一切的源头. CAP C: Consistency 一致性 A: Availability 可用性(指的是快速获取数据) P: Tolerance of network Partition 分区容忍性(分布式) 10年前,Eric Brewer教授指出了著名的CAP理论,后来Seth Gilbert 和 Nancy lynch两人证明了CAP理论的正确性.CAP理论告诉我们,一个分布式系统不…
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.案例结构与说明 在上一篇中,我们了解了MassTransit这个开源组件的基本用法,这一篇我们结合一个小案例来了解在ASP.NET Core中如何借助MassTransit+Quartz.Net来实现数据的最终一致性.当然,实现数据的最终一致性有很多方案,这里只是举一种我所学到的比较简单易于学习的实现方式而已. 假设我们有一个XX保险微信商城(WechatShop,简称WS)系统,根据服务的划分,针对下订单的这个场景,我们划分了四…
阿里技术专家甘盘:浅谈双十一背后的支付宝LDC架构和其CAP分析 https://mp.weixin.qq.com/s/Cnzz5riMc9RH19zdjToyDg 汤波(甘盘) 技术琐话 2020-12-28 背景 自 2008 年双 11 以来,在每年双 11 超大规模流量的冲击上,蚂蚁金服都会不断突破现有技术的极限.2010 年双 11 的支付峰值为 2 万笔/分钟,到 2017 年双 11 时这个数字变为了 25.6 万笔/秒. 2018 年双 11 的支付峰值为 48 万笔/秒,201…
@ 目录 前言 数据的持久化 Java数据存储技术 JDBC介绍 JDBC体系结构 获取数据库链接 Driver接口 加载注册JDBC驱动 获取数据库链接 数据库链接方式(实例) 方式一:代码中显示出现了第三方数据库API(不推荐) 方式二:代码中不体现第三方数据库API(推荐) PreparedStatement实现CRUD操作 两种技术 PreparedStatement介绍 使用Statement操作数据表的弊端(不推荐) PreparedStatement的使用 PreparedStat…
在足球比赛里,一个球员在一场比赛中进三个球,称之为帽子戏法(Hat-trick).在分布式数据系统中,也有一个帽子原理(CAP Theorem),不过此帽子非彼帽子.CAP原理中,有三个要素: 一致性(Consistency) 可用性(Availability) 分区容忍性(Partition tolerance) CAP原理指的是,这三个要素最多只能同时实现两点,不可能三者兼顾.因此在进行分布式架构设计时,必须做出取舍.而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值.因此设计分布…
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.预备知识:数据一致性 关于数据一致性的文章,园子里已经有很多了,如果你还不了解,那么可以通过以下的几篇文章去快速地了解了解,有个感性认识即可. (1)左正,<保证分布式系统数据一致性的6种方案> (2)成金之路,<分布式系统的数据一致性解决方案> (3)E_Star,<分布式环境下数据一致性的设计总结> (4)Itegel,<分布式事务?No,最终一致性> 必须要了解的点:ACID.CAP.B…
关系型数据库的局限 NoSql出现在关系型数据库之后,主要是为了解决关系型数据库的短板,我们先来看看随着软件行业的发展,关系型数据库面临了哪些挑战: 1.高并发 一个最典型的就是电商网站,例如双11,几亿大军的点击造成在某一时刻的并发量是很高的,传统的关系型数据库肯定已经是不堪重负了,如Oracle的Session数量推荐的才只有500. 2.高效率存储海量数据 大数据时代,数据量已经不是用GB.TB来衡量了,而是EB.ZB了,面对这海量的数据,如何高效率的存储这些数据,关系型数据库无法解决这个…
事务特征:原子性,一致性,独立性,持久性. 要想操作事务,必须按照以下步骤完成. 1,取消掉自动提交(SET AUTOCOMMIT=0):每次执行数据库更新的时候实际上发出SQL命令之后就已经提交上去了. 2,开始事务, 3,进行一系列操作 4,如果操作一切合格,则提交事务, 5,如果发现一个地方有问题,则可以回滚, 6,或者设置一个SAVEPOINT保存事务提交点. 在JDBC中,同样支持事务的处理操作. 一,不使用事务处理情况. 通过批处理插入数据: package 类集; import j…
数据库MySQL之 视图.触发器.存储过程.函数.事务.数据库锁.数据库备份.事件 浏览目录 视图 触发器 存储过程 函数 事务 数据库锁 数据库备份 事件 一.视图 1.视图概念 视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据. 2.视图特点 视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系 视图是由基本表(实表)产生的表(虚表) 视图的建立和删除不影响基本表 对视图内容的更新(添加.删除和修改)直接影响基本表 当视图来自多个基本表时,不允许…
一.Actor介绍 Actor是一种并发模型,是共享内存并发模型的替代方案. 共享内存模型的缺点: 共享内存模型使用各种各样的锁来解决状态竞争问题,性能低下且让编码变得复杂和容易出错. 共享内存受限于单节点的服务器资源限制. Actor模型的优点: 线程之间以消息进行通信,消息按顺序单线程处理,不存在状态竞争. 以消息方式通信,可以方便的组建集群. 把State和Behavior绑定,能更好的控制状态. 名词解释: Mailbox:可以理解为先入先出队列,负责接收和缓存送达的消息. State:…
CAP原理中,有三个要素: 一致性(Consistency) 可用性(Availability) 分区容忍性(Partition tolerance) CAP原理指的是,这三个要素最多只能同时实现两点,不可能三者兼顾.因此在进行分布式架构设计时,必须做出取舍.而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值.因此设计分布式数据系统,就是在一致性和可用性之间取一个平衡.对于大多数web应用,其实并不需要强一致性,因此牺牲一致性而换取高可用性,是目前多数分布式数据库产品的方向. 当然,牺…