高可用性架构

Ste*_*han 5 sql database high-availability cassandra riak

我有这种情况:

您有一个24/7全天候运行的工厂生产线.停机时间非常昂贵.控制所有不同部件的软件必须使用共享形式的数据库存储.主要原因是要知道工厂处于哪种状态.例如,某些产品在使用同一套设备时可以混合使用,而其他产品则可以混合使用.

要求:

  • 我希望软件能够检测到工厂某一部分的错误必然导致一些机器停机超过1公里.因此plc中的stoing数据不是一种选择.
  • 工厂环境的更新和升级经常发生
  • 负载(以计算机术语表示)将非常低.

系统每天处理一些hunderd分配,进行计算/检查,然后发送工厂机器的指令.系统在大多数时候都会很无聊.最重要的要求是中央计算机系统必须正确且始终有效.

我正在考虑使用基于发电机的数据库(riak或cassandra),其中数据被写入多台机器,每台机器都有整个数据库

当一个系统发生故障时,它会逐渐下降.当表更改并且此主从属更难配置时,传统的sql数据库可能更难以升级.

你的解决方案是什么?

网络已经变得冗余和大多数其他单点故障.数据库系统至关重要,因为数据库停机时间意味着整个工厂的停机时间不仅仅是可接受的机器之一.

  • 如何解决共享状态问题.
  • 数据库中的复杂性不会成为问题.我将更像一个简单的键值存储来获取最新和正确的数据.

Ken*_*wns 3

我不认为这是一个 sql/nosql 问题。所有 Postgres、MySQL 和 MS SQL Server 都有某种集群或热备用选项。

配置是一次性的事情,但是如果您试图在一个为了运行事物而放弃关系的平台上做一些基本相关的事情,那么任何 NoSQL 选项都会让您从代码的顶部到底部感到头痛像亚马逊或脸书。配置是一次,编码是永久的。

所以我想说坚持使用经过验证的真实解决方案并让热复制继续进行。

这也为升级提供了解决方案。典型的顺序是“故障转移”到备用数据库,升级主数据库,翻转回主数据库,升级备用数据库,然后恢复。当然,具体情况还要根据具体情况而定。