- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有两个系统,系统 A 将数据发送到系统 B。要求每个系统都可以独立于另一个系统运行,并且如果另一个系统宕机,则任何一个系统都不会崩溃。问题是在满足解耦要求的情况下,系统A与系统B通信的最佳方式是什么。
系统 B 当前有一个进程轮询数据库表中的数据并处理已插入的任何新行。
一个建议的设计是系统 A 只将数据插入系统 b 的数据库表,并让系统 B 通过现有进程处理新行。问题是这个方案是否满足两个系统解耦的要求?数据库是否被视为系统 B 的一部分,可能变得不可用并导致系统 A 崩溃?
另一种解决方案是系统 A 将数据放入 MQ 队列,并有一个进程从 MQ 读取数据,然后插入系统 B 的数据库。但这只是额外的开销吗?最终,MQ 队列是否比数据库表更容错?
最佳答案
一般来说,数据库共享是一种紧密耦合,除非可能出于速度目的,否则不是首选。不仅出于可用性目的,还因为系统 A 和 B 将在未来的几个时间点进行更改和升级,并且彼此之间的依赖性应该最小 - 消息传递是一种明显的依赖性,而共享数据库往往会咬你(或你的继承人)在最意想不到的时候在后面。如果你走数据库共享路线,至少要用专用表或 View 明确共享接口(interface)。
有四种常见的集成级别:
可以在各种情况下应用和组合,具有不同的可用性和可维护性。您在 enterprise integration patterns site 上有一个很好的概述.
与任何中央集成基础架构一样,MQ 应该托管在具有高可用性、完全故障转移等的环境中。还有其他队列解决方案允许您分配队列协调。
关于decoupling - 数据库好的系统解耦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1517381/
我们有两个系统,系统 A 将数据发送到系统 B。要求每个系统都可以独立于另一个系统运行,并且如果另一个系统宕机,则任何一个系统都不会崩溃。问题是在满足解耦要求的情况下,系统A与系统B通信的最佳方式是什
我有同一个第三方设备的两个 C 库。区别在于一个库(例如库 A)比另一个库(例如库 B)具有更多功能。我有两个使用该设备的大平台。平台 A 使用库 A,平台 B 使用库 B。 为了支持更多的平台和系统
我刚刚开始使用 Prism 和 Unity 学习 WPF MVVM。 将 View 与 View 模型解耦效果很好,但我不明白如何连接我的 View 模型和模型。 我觉得在我的 View 模型中创建一
大家好,我正在制作一个 Cocos2d-x 游戏,其中包含 gradle 文件,我一直在寻找提高构建时间的方法,我尝试谷歌搜索,甚至查看 Gradle 文档,但我似乎无法理解“到底是什么”解耦”项目是
我有一个相对简单的 DSL,我希望它比一堆手动编码的 java.util.regex.Pattern 语句 + 解析逻辑更可靠地处理。 引用最多的工具似乎是 ANTLR。我对它不熟悉,愿意尝试一下。但
有没有办法将 jsx 从组件的渲染函数移动到单独的文件?如果是这样,我如何在渲染函数中引用 jsx? 最佳答案 您可以使用 react-templates .它为您提供了标记和组件本身之间的准确分离,
我在这里使用了 django-environ 来设置环境变量,但它给了我 SECRET_KEY 错误。如何正确配置环境变量? 我还为此使用了 python-decouple 而不是 django-en
我正在尝试 Exercise 2 of Chapter 8.5在迈克尔·哈特尔的 Ruby on Rails Tutorial .练习如下: 按照第 8.3.3 节中的示例,浏览用户和身份验证请求规范
我被迫将我的 .env 文件保存在项目根目录之外的非标准路径中(完全在一个单独的目录中)。 假设我在 /var/projects/my_project 中有我的 Django 项目,尽管我在 /opt
我正在阅读有关依赖倒置和解耦的理论,但我看不出两者之间的区别。 依赖倒置谈论解耦功能组件,以便较高级别的组件不依赖于较低级别的组件。 解耦谈论同样的事情以及如何实现它。但随后我们的 IoC 容器让事情
我试图从heroku cli在heroku上部署django项目。因此,我创建了一个应用程序,然后从项目目录中运行了git push heroku master。然后我得到了错误: remote: -
我是一个真正的性能爱好者,但我也意识到执行自动化测试的重要性(直到更好的形式验证方法成为主流)。 缺点是,当您尝试针对可测试性进行设计时,您会开始引入接口(interface)来表示您的依赖项。如您所
我读过几篇文章(还有功能域建模一书),其中建议将域对象的状态与行为分离,但我无法理解这种方法相对于范围域模型的优势. 以下是覆盖域模型的示例: case class Account(id: Accou
我正在阅读这篇文章: http://danielribeiro.org/yes-you-can-have-low-coupling-in-a-symfony-standard-edition-appl
我有 300 多个类(class)。它们在某些方面是相关的。 为简单起见,所有关系都是 1:1。 这是一个示例图。 (在实际情况下,大约有 50 个关系对。) 注意:在某些情况下,某些关系可能不存在。
我的用户界面如下所示: +--------+---------------+ | model1 | model details | | model2 | here,
当我的 settings.py 有 ALLOWED_HOSTS = [] - 服务器工作正常。但是当我执行 ALLOWED_HOSTS = config('ALLOWED_HOSTS') - 它给出了
我是一名优秀的程序员,十分优秀!