MassTransit实现Saga模式概览(译)
2023/5/29 14:22:17
本文主要是介绍MassTransit实现Saga模式概览(译),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
原文地址:Saga Overview
编排一系列事件的能力是一个强大的功能,而MassTransit使这成为可能。
saga是由协调器管理的长期事务。saga是由事件发起的,saga编排事件,saga维护整个事务的状态。saga旨在管理分布式事务的复杂性,而不需要锁定和一致性。它们管理状态并跟踪发生部分故障时所需的任何补偿。
State Machine Sagas
MassTransit包括Automatonymous,它提供了一个强大的状态机(State Machine)语法来创建saga。在使用MassTransit时,强烈建议使用这种方法。
Consumer Sagas
MassTransit支持Comsumer Sagas,它实现一个或多个接口来消费相关的saga events。包含此支持,以便将应用程序从其他saga实现轻松移动到MassTransit。
Definitions
Saga 定义用于指定消费者的行为,以便可以自动配置它们。定义可以由AddSaga显式添加,也可以使用任何AddSaga方法自动发现。
下面显示了一个示例传奇定义。完整的配置参考,请参见配置部分。
public class OrderStateDefinition : SagaDefinition<OrderState> { public OrderStateDefinition() { // specify the message limit at the endpoint level, which influences // the endpoint prefetch count, if supported Endpoint(e => e.ConcurrentMessageLimit = 16); } protected override void ConfigureSaga(IReceiveEndpointConfigurator endpointConfigurator, ISagaConfigurator<OrderState> sagaConfigurator) { var partition = endpointConfigurator.CreatePartitioner(16); sagaConfigurator.Message<SubmitOrder>(x => x.UsePartitioner(partition, m => m.Message.CorrelationId)); sagaConfigurator.Message<OrderAccepted>(x => x.UsePartitioner(partition, m => m.Message.CorrelationId)); sagaConfigurator.Message<OrderCanceled>(x => x.UsePartitioner(partition, m => m.Message.CorrelationId)); } }
这篇关于MassTransit实现Saga模式概览(译)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南