saga,与分布式相关,最早被定义在Hector Garcia-Molina和Kenneth Salem的论文"Sagas"中。这篇论文提出了一个saga机制来作为分布式事务的替代品以解决长时间运行的分布式事务(long-running process)的问题。这篇论文认为业务过程经常由很多步骤组成,每个步骤都涉及一个事务,如果将这些事务组成一个分布式事务,就可以实现总体一致(overall consistency )。然而在长时间运行的分布式事务中,使用分布式事务会影响效率和系统的并发处理能力,因为在执行分布式事务的时候会有锁产生。

saga通过确保每一个业务过程都有修正事务(compensating transaction)来减少了系统对分布式事务的依赖。在这种方式下,如果业务过程遇到了错误的情况并且无法继续,它就可以执行修正事务来修正已经完成的步骤。这种在业务流程中去撤销已经完成的工作的方式保证了系统的一致性。

saga这个名词通常被用在CQRS的讨论中,它是指一段在限定上下文(bounded contexts )和聚合(aggregates)之间起协作和路由(coordinates and routes )消息作用的代码。这里更倾向于使用Process manager这个词来表示MassTransit中的sagas。

原文地址:http://www.cnblogs.com/qkbao/p/6952654.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

MassTransitamp;amp;Sagas分布式服务开发ppt分享相关推荐

  1. 阿里架构师推荐,微服务分布式构架开发实战PDF,快快收藏吧

    什么是微服务架构 微服务是一种软件架构风格,目标是将一个复杂的应用拆分成多个服务模块,每个模块专注单一业务功能对外提供服务,并可以独立编译及部署,同时各模块间互相通信彼此协作,组合为整体对外提供完整服 ...

  2. 微服务分布式构架开发实战PDF,阿里架构师推荐,快快收藏吧

    什么是微服务架构 微服务是一种软件架构风格,目标是将一个复杂的应用拆分成多个服务模块,每个模块专注单一业务功能对外提供服务,并可以独立编译及部署,同时各模块间互相通信彼此协作,组合为整体对外提供完整服 ...

  3. PPT分享:基于Eventuate平台解决微服务架构难题

    简介 本文主要介绍世界级软件架构师 Chris Richardson在2021年最新分享的PPT.PPT分享的标题是<Overview of the Eventuate Platform> ...

  4. 一文理解分布式服务架构下的混沌工程实践(含PPT)

    导读:近日,在 GIAC(全球互联网架构大会)上,来自阿里巴巴高可用架构团队的高级开发工程师肖长军(花名穹谷)做了<分布式服务架构下的混沌工程实践>主题分享.本次分享包含三部分,第一部分从 ...

  5. PPT分享:基于事件解决微服务架构中分布式数据问题

    简介 本文主要介绍世界级软件架构师 Chris Richardson在2021年最新分享的PPT.PPT分享的标题是<Events to the rescue: solving distribu ...

  6. 百度开发者大会-《用HTML5新特性开发移动App》PPT分享

    今天百度开发者大会,移动互联网分论坛,我的主题演讲<用HTML5新特性开发移动App>PPT分享如下. 完整PPT可在Slideshare观看,或者在百度开放云平台上下载到.

  7. 开源分享 Unity3d客户端与C#分布式服务端游戏框架

    很久之前,在博客园写了一篇文章,<分布式网游server的一些想法语言和平台的选择>,当时就有了用C#做网游服务端的想法.写了个Unity3d客户端分布式服务端框架,最近发布了1.0版本, ...

  8. 我们的开源项目-2013年度开源社区线下聚会《JEECG微云快速开发平台-SAAS企业应用在线开发与微信移动应用》PPT分享

    我们的开源项目-2013年度开源社区线下聚会<JEECG微云快速开发平台-SAAS企业应用在线开发与微信移动应用>PPT分享 下载地址:http://pan.baidu.com/s/1hq ...

  9. 微服务链路追踪_.NET Core微服务:分布式链路追踪系统分享

    (给DotNet加星标,提升.Net技能) 转自:另一个老李 cnblogs.com/SteveLee/p/10463200.html 对于普通系统或者服务来说,一般通过打日志来进行埋点,然后再通过e ...

最新文章

  1. python 九宫重排_[蓝桥杯][历届试题]九宫重排 (Python代码)(bfs+集合)
  2. 关于extjs中动态添加TabPanel的tab项并以iframe显示的整理(转)
  3. 微软腾讯联手开发IM软件MQ QQ和MSN将于2009年停用
  4. redis循环键_Redis的并发控制
  5. python类中self关键字用法
  6. 用计算机绘图软件绘制的工程图是图形,用AutoCAD快速绘制机械工程图实用的经验.doc...
  7. 网络学习笔记(一):TCP连接的建立与关闭
  8. 是几进制_10分钟带你了解什么是二进制
  9. 前端工程师做事的三重境界:我的进阶之路
  10. 【TeachNLP】文本数据处理-词表获取
  11. win10前置耳机插孔没声音_iqoo耳机突然没声音-杰讯手机维修中心
  12. 《Revisiting Self-Supervised Monocular Depth Estimation》论文笔记
  13. 生成服务器证书 启用HTTPS 生成自签名证书
  14. 345. Reverse Vowels of a String
  15. 啊哈C——学习4.4一起来找茬
  16. 基于mindwave脑电波进行疲劳检测算法的设计(1)
  17. switch语句和for循环的认识与使用
  18. Problem G: 开个餐馆算算账
  19. Qt项目背景图片无法显示
  20. ICP配准MATLAB实现

热门文章

  1. 物联网智能硬件设备常见攻击方法
  2. java以Blob形式存储,读取图片并在jsp页面显示图片流
  3. artDialog对话框在PHP下的简单应用-artDialog弹出层篇
  4. jQuery formValidator表单验证插件4.1.0 下载 演示 文档 可换肤 代码生成器
  5. DBDesigner 4 与 MySql 5 不能连接主要是驱动的原因
  6. ID,ClientID,UniqueID的区别
  7. 论敏捷管理与团队文化的契合度
  8. Avalonia跨平台入门第六篇之Grid动态分割
  9. 究竟是什么可以比反射还快实现动态调用?| Source Generators版
  10. 把 Console 部署成 Windows 服务,四种方式总有一款适合你!