Dojo
话题
新佳
订阅
极道
元认知
元逻辑
元设计
元编程
元语言
分布式事务教程
正好一次(Exactly-once)消息传递在Kafka中已经完全支持
本文是来自Kafka的创始人Jay Kreps的一篇博文,回答了世面上怀疑Kafka是否支持正好一次(Exactly-once)的消息传递,从而说明了Kafka能支持分布式事务,保证微服务事务的完整性,关键是将偏移量和你要保存的状态通过JDBC事务或者JTA事务保存到数据库,失败恢复时从这个偏移量开
为什么大部分NoSQL不提供分布式事务?
像MongoDB, Cassandra, HBase, DynamoDB, 和 Riak这些NoSQL缺乏传统的原子事务机制,所谓原子事务机制是可以保证一系列写操作要么全部完成,要么全部不会完成,不会发生只完成一系列中一两个写操作;因为数据库不提供这种事务机制支持,开发者需要自己编写代码来确保一系列
使用Akka, Spring Boot, DDD建立Java分布式系统
当需要处理的数据增长超过单个JVM中时,这时候AKKA集群提供了构建此类实现的可扩展的解决方案。这是一篇涉及分布式计算许多方面的文章。请准备在文章上阅读上花费大量的时间,参考所提到的各种外部链接,才能充分了解每个子主题,并可下载并运行文章提供的AKKA initializer/ util代码库才能更
微服务的最终一致性与事件流
微服务是指一个个单个小型业务功能的服务,由于各个微服务开发部署都是独立的,因此微服务天然是分布式的,因此,分布式系统的设计问题如CAP定理同样适合微服务架构,虽然微服务本身是无状态的,但是微服务是需要管理状态的。这些状态是指领域模型的状态或存储在自己的专有数据库中。
苹果为什么收购FoundationDB?
最近一个爆炸新闻是apple收购了名不经传的FoundationDB,之前苹果是使用Cassandra作为来保存各种资源包括用户上传的资料影音媒体图片等等。这一举动引发了多方揣测,一些人认为苹果使用非开源的数据库来保存用户的资料,是不是别有用心? 下面从技
使用Apache Kafka实现Event sourcing与CQRS
Event sourcing事件溯源作为应用程序架构模式日益普及,事件溯源将应用程序所做的状态更改建模为不可变的序列,也就是“事件日志”,也就是将触发状态更改的事件存储在不可变日志中,并将状态更改重新建模为对日志中事件的响应。这里讨论Kafka Streams将如何帮助将事件溯源和CQRS付诸实践。
分布式微服务为什么很难?
本文主要谈论了微服务系统之间通讯RPC同步和异步队列的不同,RPC同步速度快但不可靠;异步队列速度慢一点但可靠。本文也解释了其背后原因,比如缺乏统一时钟,也就是著名的拜占庭将军问题,认识这点后,会更加意识到从单体巨石系统monolith迁移到微服务最困难的是缺乏事务机制。如果有一些与钱有关的系统比如
Twitter的分布式日志DistributedLog
Twitter的开源DistributedLog是一款高性能复制日志服务,能提供持久的可复制的强一致性(分布式事务机制),可以作为基础构建设施用于创建可靠的分布式系统,例如可复制的状态机(replicated-state-machine)、一般的pub/sub系统、分布式数据库和分布式队列等。是Ka
区块链和CAP定理
微软首席架构师Yaron Goland发表文章解释了一个区块链客户端是如何基于其实现在CAP的AP或CP之间进行选择的。一个交易发生后有多少数据块记录了这项交易,越多表示系统达到广泛共识,一致性越强,从最终一致性到高一致性。 首先,需要了解一下区块链是通过
区块链中的分布式模式
本文从分布式系统角度讨论了区块链中的几种创新模式:不可变模式、异步和共识以及网络容错可靠性。 不可变模式 区块链是不可变的。 分布式系统已经在相当一段时间内依靠不变性来消除异常。
Spring分布式事务XA事务(两段提交2PC)实现
在系统的早期阶段,不需要分布式事务。随着应用程序数量的增加,数据同步成为一个重要问题。在数据同步方面,很多公司付出了很多维护同步系统的费用。由此,引入了称为XA(扩展体系结构)的两阶段提交协议。该协议为全局事务处理提供类似ACID的属性。在本文中,将尝试在Spring框架中解释XA事务和使用XA事务
hyflow-go是一款使用Go语言编写的高一致性分布存储
hyflow-go是一款可进行地理复制、主内存main-memory的高一致性数据存储,其最大特点是将低延时和高事务完美统一。
使用Apache Ignite实现无死锁事务
死锁会杀死服务,我们看看Apache Ignite通过分配数字到事务是如何实现无死锁的事务的。 在多用户环境中,对于缓存内存中同一条数据或对象进行并发事务操作时会引发死锁,这是性能杀手,一旦系统进入严重的死锁状态,恢复需要整个集群重新启动,而Apache
Spring的分布式事务实现(JTA+XA/2PC)
JTA是Java Transaction API简称 ,即Java事务管理器,主要管理本地事务。本地事务是只同一个数据库源中,多次数据库连接之间的事务,使得这多个数据表操作遵循ACID。 如果想让JTA管理多台数据库操作的分布式事务,需要XA支持,Open
闲话DDD使用情况
无意中看到2007年一篇有关SOA分布式事务的英文:Distributed Transaction Mana
Spanner与Calvin(FaunaDB)比较
该文比较了Spanner与Calvin这两种分布式事务数据库的区别与特点。该文作者丹尼尔·阿巴迪是耶鲁大学的副教授。他主要研究数据库系统架构和实现。他获得麻省理工学院和剑桥大学医学博士。 在2012年有两篇研究论文认为可以在不放弃一致性和事务支持的
Kafak消费者的使用
该文详细介绍了Kafka消费者原理和使用策略,如果我们将消费者的偏移量使用JDBC事务或JTA事务保存起来,就能实现分布式端到端的事务,也就是通常所说的分布式事务。 消费者是否活着
关于Event Sourcing与分布式事务
关于ES实现如何分布式事务的问题,这个话题是个人为的坚深问题,保守的人与激进的人总是有争执,如同锁有保守锁和乐观锁一样。 一定请注意,事件流本身已经保证了跟随时间变化而保持一定逻辑顺序的一种流,如同我们观看网络电视,永远不会担心我们会首先看到影片结尾,然后
上页
下页
关闭