SAGA 微服务模式
我们将利用微服务为各种项目和企业提供最大的支持。在各种建筑模型的设计中,激光雷达与银行的操作一致,涉及银行的各种服务和可能性。
在分布式系统中,激光雷达是交易环境中的必需品,它是SAGA 模式的一部分。
Apesar de muitos já terem ouvido falar, talvez nem todos tenham compreendido.请务必确认我们的想法,并解决问题和解决方案。
存在互联网上存在的基本模式的材料,因此我可以将其作为对象,为阿尔古玛形式提供帮助,并为您提供帮助。
Origem e conceito
Bom 是 1987 年普林斯顿大学计算科学家论文中的 SAGA 手术的原创想法。这是长期交易或长期操作的对象时代支持,以及 LLT(长期交易)的名称。
最近,作为适用于仲裁的传奇论坛,现代发行系统一致性问题的解决者 - 符合 2015 年发行传奇的文档。
SAGA 的发展历程是在特定情况下进行的,该激光雷达操作涉及各种微服务,并且与数据库一致。
没有银行和大型银行的单一交易模式,也没有微型服务的模式,而是以“虚拟化”方式进行的,是一种与服务参与者相关的交易组合。
一个想法很简单,只需微服务即可执行更改数据库的操作。没有最终的处理程序是基于数据和一致的。
执行算法服务过程中的一些问题,该过程可以补偿执行前操作的服务。
Vale ressaltar aqui que não importa para o SAGA falhas condicionais or parciais.
Deixa eu me 解释。请参阅电子商务系统,其中涉及到买家无效或无法支付的付款服务的相关问题,该系统将通过订单完成交易,从而使客户能够在平台上或在其他形式上进行交易pagamento disponíveis (aqui não entro no mérito se essa funcionalidade faz sentido ou não)。
因此,我们将作为系统的尝试,完成一项“维萨”交易,以作为补偿。 O padrão SAGA se interessa por sucesso definitivo ou falha definitiva.
SAGA também pode ser mais um nome bado para consência 最终。 Mas de certa forma ele expõe a ferida, no Sentido que temos que pensar em um tratamento caso as operações do seu sistema não tenham successo, que seria as ações compensatorias.
请继续使用非正式的格式和非正式的形式,以基本的方式了解 pilha 的概念,然后使用“Desfazer (CTRL+Z)”功能。
E, obviamente, semper que se fala em SAGA precisamos falar sobre as duas estratégias que Existem para sua Implementação (Orquestração e coreografia).
管弦乐团
不存在任何模型或模型可以作为 SAGA 部分服务的中心组件。成功,代理或代理服务。 Caso falhe,esse agente orquestra as ações compensatorias。Saga 执行协调器 (SEC) 的主要组成部分。
Nesse modelo set tos microsserviços o conhecimento sobre o Fluxo.存在着与流动性和协调性有关的微服务模式操作执行的外部组件,这些操作集中于操作中。
Aqui não devemos nos prender em uma estratégia de comunicação síncrona.我们使用 Message Broker 来支持可能发生的变化,并为您提供热情的服务,以解决您感兴趣的话题以及新事件的执行结果。 Esse eventto disparado allowed que o orquestrador acione o próximo processo a ser executado。
Vale ressaltar Também que o Agente Orquestrador pode ser usado como uma uma espécie de máquina de estado das diversas SAGAS que passam por ele.
Tá,mas nem tudo são flores! Algumas 的任务是解决我们的战略问题。 Alguns deles seriam:
是否会执行该传奇故事?
Pode acontecer o que o seu negócio precisar que aconteça!系统将按照超时节奏取消部分执行保留操作或咨询服务提供商以完成该操作,以完成重新处理过程的实现或开始补偿。 Aqui quem manda é o negócio!
是否存在单点故障?
Acredito que é preciso pensar na 批评disso 和principlemente ter maneiras de saber que sua SAGA foi interrompida。因此,请考虑使用理想的信息服务来注册信息服务。塔尔维兹(Talvez não tentar fazer)是一个不可能的错误,但他无法看到任何事情。
但请注意,在法律上,可以使用“国家权力”来执行国家权力。
Será que semper conseguiríamos fazer o orquestrador ser de fato apenas um orquestrador?
这是重要的问题,也是解决异常情况的重要方法。 O modelo orquestrador pode até ser mais“agradável aos olhos”,主要是“视觉”。请记住,不要忘记任何节奏。 Regra de negócio dos microsserviços “vazando” para o orquestrador。
存在,最后,框架是 Java 中支持微服务实现的 SAGA,它是 Java 中使用 JDBC/JPA 和 Spring Boot/Micronaut 的策略:Lib Eventuate Tram
舞蹈编排
Essa outra estratégia é baseada em eventos。 Cada“bailarino”,ou cada serviço sabe qual evento disparar e qual evento ouvir para que a saga seja completa.我们将通过“avisar”服务的后继者来实现与前任者 ocorra alguma falha 的操作。
在此之前,我想以一种有利的方式介绍我们的故事,并为传奇的参与者分配责任。
一个适当的使用信息的机制可以使算法具有可能的恢复能力,并且可以在算法服务中避免任何错误,例如。
不过,我们的策略是简单地进行工作,以确保参与者的利益和协调的准确性。
Mas novamente,不存在任何解决方案。 Podemos citar algumas fraquezas 的模型如下:
-
传奇故事的参与者都依赖于这些循环,因为他们的任务是结束的;
-
全部主要通道,但要跟踪 caminho 或执行 SAGA 则比较困难;
-
工作人员的流动性与新的进展令人困惑,但控制参与者的困难是传奇或指挥官的问题。
Qual a mais adequada?
Aqui vale a tão famosa 回复:取决于!
战略决定取决于具体的特性,需要时间来实施模式,并为支持堕胎提供支持。
重要的结尾
-
传奇以并行歌剧的形式存在。 Não necessariamente precisam ser Sequenciais;
-
Para incluir um sistema em uma SAGA,não é algo tão trivial。 Seu método, operação ou transação precisa ser reversível;
-
持续时间:Uma SAGA 的节奏是第二个或第二个节奏,取决于系统的特性。
Cenários com 作为 ações compensatorias
比较有关问题和想象的场景,让我了解一个深刻的主题,即补偿模式和可能的形式。
是否可以提供补偿?
我们可以使用重试和断路器来恢复通信,但没有任何模型或任务。
没有 Coreografia 的场景,但要使用一些具有一定弹性的信息,请执行以下操作: 没有通知,没有收到通知,没有收到通知,没有收到通知,没有收到通知,没有收到通知。消费者/订户。
Devo semper realizar um“回滚”?
Uma ação compensatoria pode não ser simplesmente voltar para o status que estava antes。举例来说: num caso de falha no processamento de uma pagamento de uma compra, o correto seria realizar o estorno do valor pago e não voltar o saldo comoera pois pode ter havido outras transações na conta do do doário.
这是一个典型的例子,说明电子邮件环境中的处理过程并不琐碎。 Se houver falha que interrompa a SAGA em execução, não tem como desfazer esse envio. O correto seria,suponho,eniar 电子邮件勘误表。
是否真的有任何补偿,以及是否可以进行交易?
没有使用说明性的示例,因此,如果您取消订单或取消订单,则可能会造成影响,从而影响交易的执行支付服务。这对客户造成了很大的偏见,影响了电子商务的发展。 O 理想的一系列处理和保留机制可以实现 SAGA 的目标并保证合同的有效性。
但是,我们确认激光雷达存在一些困难,并作为补偿。必须提前计划,以确保在谈判中进行回滚。包容性的、项目系统的形式是最终的结果,并且精确的回滚是回滚的前提。
最终考虑因素
Acredito que para uma boa Implementação do padrão SAGA, o que manda no Final das contas é regra de negócio da sua aplicação.这是一个解决方案,作为支持系统的必要条件。
在不同的场景中快速高效地完成任务。塔尔韦兹(Talvez)是传奇故事的综合体,它是必要的,也不是重新审视的必要条件。但是,如果您需要进行足够多的交易,请执行以下操作: 或与环路相关。
目前,我们对激光雷达的重要模式做出了贡献,但它并没有对世界上分布的系统进行任何介绍。 Obrigado pelo tempo dedicado à leitura!
参考资料
萨迦论文 - 赫克托·加西亚-莫尔纳和
肯尼斯·塞勒姆 - 1987年






