一,分布式事务简介 在当前互联网,大数据和人工智能的热潮中,传统企业也受到这一潮流的冲击,纷纷响应国家“互联网+”的战略号召,企业开始将越来越多的应用从公司内网迁移到云端和移动端,或者将之前孤立的IT系统联网整合,或者将原来厚重的企业应用拆分重组,独立成一个个轻量级的应用对外提供服务,这对传统的业务处理的数据一致性,带来了严重的挑战,我们已经身处一个分布式的计算环境,分布式事务的需求越来越普遍. 举一个例子,某行业电商网站经过几年的发展,业务数据累积越来越多,查询越来越慢.经过内部评审分析,认为…
一,分布式事务简介 在当前互联网,大数据和人工智能的热潮中,传统企业也受到这一潮流的冲击,纷纷响应国家“互联网+”的战略号召,企业开始将越来越多的应用从公司内网迁移到云端和移动端,或者将之前孤立的IT系统联网整合,或者将原来厚重的企业应用拆分重组,独立成一个个轻量级的应用对外提供服务,这对传统的业务处理的数据一致性,带来了严重的挑战,我们已经身处一个分布式的计算环境,分布式事务的需求越来越普遍. 举一个例子,某行业电商网站经过几年的发展,业务数据累积越来越多,查询越来越慢.经过内部评审分析,认为…
1,示例解决方案介绍 在上一篇 <消息服务框架(MSF)应用实例之分布式事务三阶段提交协议的实现>中,我们分析了分布式事务的三阶段提交协议的原理,现在我们来看看如何使用消息服务框架(MSF)来具体实现并且看用它来实现的一些优势. 首先,从Github克隆项目源码,地址:https://github.com/bluedoctor/MSF-DistTransExample 解决方案如下图: 我们看到解决方案有4个项目: DistTransClient:分布式事务示例的客户端,它调用“订单服务”,创…
“一切都是消息”--这是MSF(消息服务框架)的设计哲学. MSF的名字是 Message Service Framework 的简称,中文名称:消息服务框架,它是PDF.NET框架的一部分. 1,MSF诞生的背景 MSF最初来源于2009年,我们为某银行开发的基金投资分析系统,由于银行安全的原因并且这些投资资料属于机密资料,规定必须使用邮件系统来发送这些资料,但是邮件的收发不是直接针对人,而是两端的计算机程序.为了及时向客户发送这些投资资讯,我们使用WCF开发了基于邮件的通信系统.后来,从这套…
在上一篇,“一切都是消息”--MSF(消息服务框架)之[请求-响应]模式 ,我们演示了MSF实现简单的请求-响应模式的示例,今天来看看如何实现[发布-订阅]模式.简单来说,该模式的工作过程是: 客户端发起订阅“服务器时间”服务-->服务器接受订阅-->服务器每秒处理一次被订阅的服务方法--> 服务器将处理结果推送给客户端-->客户端收到消息-->客户端关闭订阅连接 MSF的[发布-订阅]通信模式,支持2种模式,分别是: 一.定时推送模式 这是最普通最常见的推送模式,只要客户端…
在前一篇, “一切都是消息”--MSF(消息服务框架)入门简介, 我们介绍了MSF基于异步通信,支持请求-响应通信模式和发布-订阅通信模式,并且介绍了如何获取MSF.今天,我们来看看如何使用MSF来做一个请求-响应通信模式的例子. MSF封装了WCF,所以使用MSF不能像使用WCF那样直接在客户端添加服务引用,你需要手工编写客户端代理类,这样有一个好处就是代理类写的更简单,使用更灵活.我们可以看看网友写的这篇文章<不引用服务而使用WCF,手动编写客户端代理类>,看看直接使用WCF是如何手动编写…
“一切都是消息”--这是iMSF(即时消息服务框架)的设计哲学. MSF的名字是 Message Service Framework 的简称,由于目前框架主要功能在于处理即时(immediately)消息,所以iMSF就是 immediately Message Service Framework,中文名称:即时消息服务框架,它是PDF.NET框架的一部分.在后续的文章中,iMSF跟MSF是一个意思,或者你也可以给它取一个好听的中文名称:爱美XX :) 1,iMSF诞生的背景 MSF最初来源于2…
MSF的名字是 Message Service Framework 的简称,由于目前框架主要功能在于处理即时(immediately)消息,所以iMSF就是 immediately Message Service Framework,中文名称:即时消息服务框架,它是PDF.NET框架的一部分. 在后续的文章中,iMSF跟MSF是一个意思,或者你也可以给它取一个好听的中文名称:爱美XX :) 在上一篇,“一切都是消息”--MSF(消息服务框架)之[请求-响应]模式 ,我们演示了MSF实现简单的请求…
MSF的名字是 Message Service Framework 的简称,由于目前框架主要功能在于处理即时(immediately)消息,所以iMSF就是 immediately Message Service Framework,中文名称:即时消息服务框架,它是PDF.NET框架的一部分.在后续的文章中,iMSF跟MSF是一个意思,或者你也可以给它取一个好听的中文名称:爱美XX :) 在前一篇, “一切都是消息”--MSF(消息服务框架)入门简介, 我们介绍了MSF基于异步通信,支持请求-响…
在之前的系列文章中聊过分布式事务的一种实现方案,即通过在集群中暴露actor服务来实现分布式事务的本地原子化.但是actor服务本身有其特殊性,场景上并不通用.所以今天来讲讲分布式事务实现方案之saga模式,并在文后附上代码供各位读者参考,评论. 目录:一.通过Dapr实现一个简单的基于.net的微服务电商系统 二.通过Dapr实现一个简单的基于.net的微服务电商系统(二)--通讯框架讲解 三.通过Dapr实现一个简单的基于.net的微服务电商系统(三)--一步一步教你如何撸Dapr 四.通过…
前言 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务.Seata 将为用户提供了 AT.TCC.SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案. 对于Seata不太了解的朋友,可以看下我之前写的文章: 微服务开发的最大痛点-分布式事务SEATA入门简介 微服务痛点-基于Dubbo + Seata的分布式事务(AT模式) TCC模式 TCC模式怎么理解 TCC(Try-Confirm-Cancel)实际上是服务化的两阶段提交协议,业务开发者需…
dubbo是一个分布式的服务架构,可直接用于生产环境作为SOA服务框架. 官网首页:http://dubbo.io/ ,官方用户指南 http://dubbo.io/User+Guide-zh.htm上面的几张图画得不错,完全可以当做SOA架构的学习资料 淘宝将这个项目开源出来以后,得到了不少同行的支持,包括: 当当网的扩展版本dubbox :https://github.com/dangdangdotcom/dubbox 京东的扩展版本jd-hydra: http://www.oschina.…
好多年没发博,最近有时间整理些东西,分享给大家. 所有内容都在github项目liuzhibin-cn/my-demo中,基于SpringBoot,演示Dubbo微服务 + Mycat, Sharding-Proxy分库分表 + Seata分布式事务管理 + ZipKin, SkyWalking, PinPoint性能分析链路跟踪APM工具,有详细文档,可以快速运行 演示项目架构 运行演示项目 package.sh为打包脚本: sh package.sh:最简单运行方式,使用单个MySQL数据库…
前言 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务.Seata 将为用户提供了 AT.TCC.SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案.对于Seata不太了解的朋友,可以看下我之前写的文章: 微服务开发的最大痛点-分布式事务SEATA入门简介. AT模式 AT模式怎么理解 AT模式下,每个数据库被当做是一个Resource,Seata 里称为 DataSource Resource.业务通过 JDBC 标准接口访问数据库资源时,Se…
复习:在上一篇我介绍了MSF的基本订阅,模式就是,客户端A,订阅服务器.客户端B,订阅服务器.通过服务器广播消息, 所有订阅过的客户端都能接到消息. 进阶:在上一篇的基础上,增加客户端A,发送信息到服务器,服务器把接到的信息,再转发给所有订阅了的客户端. 传送门:框架的获取 http://www.cnblogs.com/bluedoctor/ 医生的博客:http://www.pwmis.com/sqlmap/ 正文:首先启动服务器,再单击按钮,给所有监听客户端,发送消息.按钮事件的代码如下:…
前言:之前想做消息的广播,拖着就忘记了,现在拿了医生的框架来学习,就按实现了之前想实现的功能. 传送门http://www.cnblogs.com/bluedoctor/,框架的获取,按传送门的链接就能获取到了. 框架的链接:http://www.pwmis.com/sqlmap/ 官方网站 正文: 框架获取到之后,找到WinClient,运行后,单击"启动服务器",可以看到成功运行服务器控制台. 试着在控制台里面输入信息"我是光头佬",看能否返回信息."…
一.分布式链路追踪发展简介 1.1 分布式链路追踪介绍 关于分布式链路追踪的介绍,可以查看我前面的文章 微服务架构学习与思考(09):分布式链路追踪系统-dapper论文学习(https://www.cnblogs.com/jiujuan/p/16097314.html) . 这里的 OpenTelemetry 有一段发展历程. APM(Application Performance Monitoring) 和 Distributed Tracing(分布式跟踪),后者是前者的子集. 微服务架构…
[获奖公布]"我的2016"主题征文活动    程序猿全指南,让[移动开发]更简单!      [观点]移动原生App开发和HTML 5开发,你更看好哪个?   博客的神秘功能 Dubbo阿里Alibaba开源的分布式服务框架 标签: zookeeper阿里巴巴分布式开源dubbo 2015-11-06 16:19 488人阅读 评论(0) 收藏 举报 本文章已收录于: .embody { padding: 10px 10px 10px; margin: 0 -20px; border…
分布式系统的消息&服务模式简单总结 在一个分布式系统中,有各种消息的处理,有各种服务模式,有同步异步,有高并发问题甚至应对高并发问题的Actor编程模型,本文尝试对这些问题做一个简单思考和总结. 一.消息的“推.拉模式” 在传统的Client/server结构中,信息获取方式是按“拉”(Pull)的模型进行的:服务器根据用户终端发送的服务请求进行处理并返回用户所需的结果.在Push系统中,服务器把信息“推”给用户终端系统.虽然两者数据传输的方向都是从服务器流向用户,但操作的发起者是不同的.从“信…
虽然微服务现在如火如荼,但对其实践其实仍处于初级阶段.即使互联网巨头的实践也大多是试验层面,鲜有核心业务系统微服务化的案例.GTS是目前业界第一款,也是唯一的一款通用的解决微服务分布式事务问题的中间件,而且可以保证数据的强一致性.本文将对GTS做出深入解读. 微服务倡导将复杂的单体应用拆分为若干个功能简单的.松耦合的服务,这样可以降低开发难度.增强扩展性.便于敏捷开发.概念2012年提出迅速火遍全球,被越来越多的开发者推崇,很多互联网行业巨头.开源社区等都开始了微服务的讨论和实践.根据Netfl…
Java生鲜电商平台-SpringCloud微服务架构中分布式事务解决方案 说明:Java生鲜电商平台中由于采用了微服务架构进行业务的处理,买家,卖家,配送,销售,供应商等进行服务化,但是不可避免存在分布式事务的问题 业界有很多的解决方案,对此我相信大家都百度一下子就有很多,但是我巨人大哥想说的是:微服务架构中应当尽量避免分布式事务. 下面就是来讨论下,分布式事务中主要聚焦于强一致性和最终一致性的解决方案. 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单.松耦合的服务,这样可以降低…
前言 虽然在实际工作中,由于公司与项目规模限制,实际上所谓的微服务分布式事务都不会涉及,更别提单独部署构建Seata集群.但是作为需要不断向前看的我,还是有必要记录下相关的分布式事务理论与Seate框架,甚至Seate框架的源码分析,先从分布式事务理论开始吧,下一部分将介绍对Seata的应用,最后再对核心的源码进行跟踪分析并学习! 主要参考<Spring Cloud Alibaba 微服务原理与实战>中分布式事务章节,有需要资源的朋友可以评论我!(文中的截图均来自此,由于相对好理解所以没有自己…
前言 对于分布式事务,常用的解决方案根据一致性的程度可以进行如下划分: 强一致性(2PC.3PC):数据库层面的实现,通过锁定资源,牺牲可用性,保证数据的强一致性,效率相对比较低. 弱一致性(TCC):业务层面的实现,通过预留或锁定部分资源,最后通过确认或取消操作完成事务的处理.比如A向B转款500元,A账号会冻结500元,其他操作正常,B接收转款时,也不能直接入账,而是将500元放到预留空间,只有经过确认之后,A才正式扣钱,B才正式入账: 如果取消把A的500块解冻,B也不会入账. 最终一致性…
目录 前言 1. Seata 基础知识 1.1 Seata 的 AT 模式 1.2 Seata AT 模式的工作流程 1.3 Seata 服务端的存储模式 1.4 Seata 与 Spring Cloud 整合说明 1.5 关于事务分组的说明 2. Seata 服务端的安装 2.1 安装包安装 Seata 2.1.1 下载 Seata 2.1.2 修改存储模式为 db 2.1.3 指明注册中心与配置中心,上传 Seata 配置 2.1.4 启动 Seata 服务器 2.2 源码安装 Seata…
Seata分布式事务在线体验地址:https://www.youlai.store 本篇完整源码地址:https://github.com/hxrui/youlai-mall 有想加入开源项目开发的童鞋也可以联系我(微信号:haoxianrui),希望大家能够一起交流学习.觉得项目对你有帮助希望能给一个star或者关注,持续更新中... 一. 前言 相信了解过开源项目 youlai-mall 的童鞋应该知道该项目主要是基于Spring Cloud + Vue等当前最新最主流技术落地实现的一套微服…
一,什么是事务(本地事务)? 指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行. 简单的说,事务就是并发控制的单位,是用户定义的一个操作序列.      而一个逻辑工作单元要成为事务,就必须满足ACID属性.     A:原子性(Atomicity)     事务中的操作要么都不做,要么就全做.    C:一致性(Consistency)    事务执行的结果必须是从数据库从一个一致性状态转换到另一个一致性状态.   I:隔离性(Isolation)    一个事务的执行…
在分布式应用场景中,分布式事务问题是不可回避的,在目前流行的微服务场景下更是如此.比如在我们的商城系统中,下单操作涉及创建订单和库存扣减操作两个操作,而订单服务和商品服务是两个独立的微服务,因为每个微服务独占一个数据库实例,所以下单操作就涉及到分布式事务问题,即要把整个下单操作看成一个整体,要么都成功要么都不成功.本篇文章我们就一起来学习下分布式事务的相关知识. 基于消息实现最终一致性 我们去店里就餐的时候,付钱点餐后往往服务员会先给我们一张小票,然后拿着小票去出餐口等待出餐.为什么要把付钱和取…
使用分布式事务刚好可以解决集群同时更新多台SQL SERVER数据库,要么全部成功,要么全部回滚的需要. 原来微软早考虑到此方面的问题了. 下面背书,贴出微软官网上面的帮助文档: 分布式事务跨越两个或多个称为资源管理器的服务器.称为事务管理器的服务器组件必须在资源管理器之间协调事务管理.如果分布式事务由 Microsoft 分布式事务处理协调器 (MS DTC) 之类的事务管理器或其他支持 Open Group XA 分布式事务处理规范的事务管理器来协调,则在这 样的分布式事务中,每个 SQL…
之前网上看到很多写分布式事务的文章,不过大多都是将分布式事务各种技术方案简单介绍一下.很多朋友看了还是不知道分布式事务到底怎么回事,在项目里到底如何使用. 所以这篇文章,就用大白话+手工绘图,并结合一个电商系统的案例实践,来给大家讲清楚到底什么是 TCC 分布式事务. 首先说一下,这里可能会牵扯到一些 Spring Cloud 的原理,如果有不太清楚的同学,可以参考之前的文章:<拜托,面试请不要再问我Spring Cloud底层原理!>. 业务场景介绍 咱们先来看看业务场景,假设你现在有一个电…
分布式事务,一直是实现分布式系统过程中最大的挑战.在只有单个数据源的单服务系统当中,只要这个数据源支持事务,例如大部分关系型数据库,和一些MQ服务,如activeMQ等,我们就可以很容易的实现事务. 本地事物 大家可能都知道什么是事务,但是我们还是再来看一下它的定义.事务的概念来自于数据库事务,在数据库事务定义中,事务是一个执行的逻辑单元,它需要提供一个一致.可靠的数据操作.它主要包括下面两个目标: 当出现任何错误,包括系统宕机.部分失败等,都能保证左右的数据修改都恢复到未修改的状态. 不同的事…