- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
微服务出现在一段时间之前,这种方法有利也有弊,但您最终将不得不面对的其中一个问题是事务原子性,或者更确切地说是没有事务原子性。企业应用程序通常在 api 级别有某种工作单元,但在您的微服务调用另一个微服务(或 api)并且它不了解分布式事务的环境中,当出现问题时,您必须处理一些问题:假设你有微服务“为项目付款”。当客户端在内部调用你的微服务 api 时,这个方法:将一些数据放在拥有的数据库中,创建发票文件,将它发送到另一个微服务,发送电子邮件,也许调用另一个对你的工作单元一无所知的系统。如果这个序列的每个部分都成功,一切都很好,但问题是如何处理错误,你正在调用的另一个 api 不可用,但你已经在许多其他系统中更改了状态,如何从那里恢复?对这种情况有什么好的方法吗?
最佳答案
这个问题其实没有对错之分。但这是我的观点。
让我们分解一下:
microservices are present some time ago, there are pros and cons of this approach but one of the points u will eventually have to face with is transaction atomicity or rather not having it
确切地说,通常情况下,您应该避免分布式事务,这是重要的一点。
Enterprise apps usually have some kind of Unit Of Work on api level but in environment where your microservice is calling another microservice (or api)
通常,您不会调用另一个微服务,否则它会变成分布式单体
,所有所谓的微服务
都相互依赖,就好像它们在单个可执行文件。在谈论微服务
时,就是要让它们尽可能独立。这可以通过多种技术实现,例如,Event Sourcing
就是其中之一。您定义事件和处理它们的微服务的位置。
When client calls your microservice api this method internally: place some data in owned database, create invoice file, sends it to another microservice, send email, maybe call another system which knows nothing about your unit of work.
在 Event Sourcing
方面,您在这里谈论的是 Saga
。协调已完成工作的流程。
but your have changed state in many other systems, how to recover from there
这是设计问题,如前所述,让微服务形成分布式单体
实际上并不是微服务。
一般来说,微服务
不仅仅是一个分离的可执行文件。这是设计实践。在您以这种方式设计系统的地方,不会发生此类问题。我建议阅读有关 DDD(领域驱动设计)
、Event Sourcing
、CQRS
、Bounded Context
等方面的作者。这可能会让你更清楚。像马丁福勒,格雷格杨。我会尝试在此处添加名称。
关于微服务架构与分布式事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53243468/
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
使用微 Controller 时,通常您必须对寄存器进行写入和读取,为了使代码更具可读性,您需要定义寄存器地址及其位。这有点好,但是当您的寄存器名称彼此非常相似时,它很快就会变得困惑,例如此处所示 #
微 Controller 背景下的“原子操作”是什么? 我正在研究 TI F28027 MCU。 The data sheet says that its operations are atomic
我正在用 PIC 微 Controller 做一个项目。我有一个 ADC 采样并将数据保存到 RAM 存储器,一旦 RAM 被填满,我需要使用 PIC 微 Controller 通过蓝牙发送它。 我的
如何确定微 Controller 中特定程序所需的堆栈内存? 例如,假设我有一个内部可能有许多子例程或线程的程序。在我开始执行程序之前,我想修复这个程序的堆栈大小。我如何标记堆栈的终点。 最佳答案 我
我知道 printf 和 sprintf 之间的基本功能差异。但是,我想知道它们之间一些与时间/延迟相关的差异。显然,我想在我的一个自定义构建 RTOS 的任务中使用它。你怎么看 ?我想知道更多它会如
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 5 年前。
我有一个一般性的问题。我在微 Controller 上记录错误。但是微 Controller 的资源比 Windows 计算机更有限。在我的例子中,我将 64 个错误代码保存在一个队列中,由 Free
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 6 年前。 Improve th
假设我有一个时钟速度为 20 Mhz 的 8 位定时器。计时器在多少时间内可以计数多远而不溢出。或者1秒内溢出多少次?我知道它可以数到 255 并且会溢出 最佳答案 时间和频率之间的关系是t = 1/
我正在开展一个全面的长期 C 编程项目,该项目需要模块化编程方法。作为设计的一部分,将创建库,因此我想确认头文件组织的正确/错误解释: 问题 假设您正在创建一个库。经过深思熟虑,您决定您希望构想的最终
1. #define timers ((dual_timers *)0x03FF6000) 这是 ARM 微 Controller 中使用的内存映射定义 结构定义在哪里 2. struct dua
我购买了 LinkSprite JPEG 彩色相机和 LPC1768 mbed 微 Controller 。通过“LinkSprite”相机,我可以拍摄 jpeg 格式的图像,根据他们提供的教程,我可
我有很多不同的时间来跟踪我的设计,但没有什么是 super 关键的。 10 毫秒 +/- 几毫秒根本不是什么大问题。但是可能有 10 个不同的定时器同时在不同的周期进行计数,显然我没有足够的专用定时器
是否可以通过串行端口与 PIC 单片机通信 Android 应用程序?我可以使用哪些低成本手机?对不起,我是哥伦比亚人。 最佳答案 不确定 PIC,但是 Arduino可能是一个很好的引用点,并且有一
今天我一直在思考以下问题: 在一台普通的 pc 中,当你分配一些内存时,你向操作系统请求它,它会跟踪哪些内存段被占用,哪些内存段没有被占用,并且不要让你弄乱其他程序的内存等。但是微 Controlle
我已经为微 Controller 的键盘开发了一个 c 驱动程序。我想改变它,例如,当我按下 1 时,它会显示 1,直到我按下另一个数字。截至目前,数字只有在我按下数字时才会改变,这意味着一旦我松开键
我有一个在线程之间共享的 volatile unsigned char array LedState[5] 变量。数组中的每个索引表示一个状态。根据每个状态,LED 将以不同的顺序闪烁。一个线程设置数
我有一个项目要对微 Controller PIC18F 进行编程,我必须将一个开关电路连接到微 Controller 板上,这个开关电路有一个电锁和一个蜂鸣器要连接到它。 锁最初是通电的。假设当我发送
我是一名优秀的程序员,十分优秀!