物联网,数据库系统和数据分发,第二部分

这个由两部分组成的系列文章的第一部分中,我介绍了物联网中需要收集数据的位置:公共云或私有云中的边缘设备,网关和服务器。我还讨论了这些系统的特点以及选择合适的数据库管理系统技术的含义。

在本文中,我将讨论遗留数据分布模式以及物联网如何引入您或您选择的数据库系统供应商需要适应的新模式。

从历史上看,数据库系统中有一些常见的数据分布模式:高可用性,数据库集群和分片。

我谈到了分片在第一部分。逻辑数据库内容跨两个或更多物理数据库的分布。从逻辑上讲,它仍然是一个数据库,数据库系统负责维护逻辑数据库的整体性和一致性。数据库系统之间的数据分布方式差别很大。某些系统委托(或至少允许委派)应用程序的责任(例如,“将这些数据放在碎片三上”)。其他系统处于另一端,部署智能代理,用于监视数据的查询方式和客户端,以及在分片之间移动数据以合并一起查询的数据,和/或将数据移动到分片与使用该数据的客户最为接近。数据库系统应该将应用程序与物理实现隔离开来。见图2。

高可用性的目的正如其名称所暗示的那样:创建冗余并针对存储数据库的系统的损失提供弹性。在高可用性系统中,有一个主/主数据库和一个或多个副本/备用数据库,整个系统在主系统出现故障时可以故障切换到该数据库。作为服务提供高可用性的数据库系统需要从主服务器复制更改(例如,插入,更新和删除操作)到副本。如果主设备出现故障,则提供一种方法将副本提升为主设备。每个数据库系统执行这些功能的具体机制都不相同。参见图3a和3b。

数据库集群的目的是促进分布式计算和/或可伸缩性。集群不使用主控和备用的概念; 集群中数据库系统的每个实例都是与其他实例的对等设备,并协同工作在数据库的内容上。数据库系统集群有两种主要的体系结构。参见图4a和4b。

如图4a所示,当使用集群并且不像分片时,每个分片包含整个逻辑数据库的一小部分,集群中的每个数据库系统实例都会维护整个数据库的副本。本地读取速度非常快。插入,更新和删除操作必须复制到集群中的每个其他节点,这会拖累性能,但总体系统性能(即集群中集群的性能)更好,因为有N个节点正在执行这些操作。尽管如此,这种架构最适合于读取繁重的使用模式与写入繁重的使用模式。

高可用性有时与分片相结合,其中每个分片都有一个主数据库和一个备用数据库以及数据库系统。由于所有碎片都代表一个逻辑数据库,因此承载碎片的节点的故障将导致整个逻辑数据库不可用。向分片数据库添加高可用性可提高逻辑数据库的可用性,从而使其免受节点故障的影响。

边缘设备上数据库的复制为数据分发增添了新的皱纹。回想一下,高可用性(取决于体系结构),整个数据库的内容在节点之间复制,每个数据库是另一个数据库的镜像。但是,物联网云服务器数据库系统需要接收来自多个边缘设备的复制数据。单个逻辑云数据库需要保存多个边缘设备数据库的内容。换句话说,云数据库服务器的数据库不是任何一个边缘设备数据库的镜像,它是许多的聚合。见图5。

此外,对于高可用性上下文中的复制,发送节点始终是主节点,接收节点始终是副本。在物联网上下文中,接收器绝对不是边缘设备的复制品。

另外,为了在集群环境中进行复制,如图4a所示,数据库系统必须确保集群中每个数据库的一致性。这意味着一个两阶段提交和同步复制。换句话说,可以保证事务在集群中的每个节点上或集群中的任何节点上都能成功执行。但是,从边缘到云端的数据复制既不需要同步复制,也不需要同步复制。

因此,IoT系统中复制数据的发送者和接收者之间的关系与主数据库和备份数据库集群中节点对等点之间的关系不同,因此数据库系统必须支持这种唯一关系。

在本系列的第一部分中,我主张:“如果您要收集数据,则需要在某处收集数据。”但是,并不总是需要在边缘实际收集数据。有时,边缘设备只是数据的生产者,不需要本地存储数据,因此不需要数据库。在这种情况下,您可以考虑另一种用于移动数据的备选方案:数据分发服务(DDS)。这是由对象管理组织定义的一项标准,旨在“实现可伸缩,实时,可靠,高性能和可互操作的数据交换”。有DDS的商业和开源实现。通俗地说,DDS是发布 - 订阅中间件 它将数据从发布者(例如边缘物联网设备)传输到订阅者(例如网关和/或服务器)。

DDS不仅限于在边缘设备上没有本地存储的情况。另一个用例是在两个不同的数据库系统之间复制数据。例如,一个用于边缘设备和SAP HANA的嵌入式数据库。或者,在NoSQL数据库和传统的关系数据库管理系统之间。

总之,设计物联网技术的体系结构包括考虑各种硬件组件的特性和能力以及选择适当的数据库系统技术的含义。设计师还需要决定在哪里收集数据,需要处理数据(例如,提供对工业环境的命令和控制,或者进行分析以找到可操作的信息等)以及需要移动哪些数据什么时候。这些考虑因素反过来会为数据库系统和复制/分发解决方案的选择提供信息。

所有物联网议程网络贡献者均对其帖子的内容和准确性负责。对作者的意见并不一定表达物联网议程的想法。

本文的版权归 Eianaro 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏网络产品使用分享

【腾讯云的1001种玩法】利用 Auto Scaling 节省30%成本

公有云提供了很多免费的高级功能,很多中小用户以为自己用不上。实际上稍微研究一下,就能享受很多便利和节省不少成本。 本方案就是利用弹性伸缩(auto-scalin...

9070
来自专栏云计算

微服务的模式 - 同步与异步

微服务是一种架构范例。在这种架构中,多个小型独立组件协同工作,从而构成一个系统。尽管它的操作复杂性较高,但这种范式已经被迅速采用。这是因为它有助于...

1.3K4
来自专栏北京马哥教育

手把手教你无代码基础实现Linux运维管理平台

老早之前就想做一个运维管理平台的项目了,但是一直没沉下来去做,上半年的时候毕设选择了这个课题,想着逼自己一把,不管做出来的怎么样,先把它搞起来..... dj...

3265
来自专栏FreeBuf

看我如何发现Google云平台漏洞并获得$7500赏金

本文讲述了一名乌拉圭17岁高中生,因对信息安全感兴趣,通过学习研究,独立发现谷歌云平台漏洞并获得$7500美金(此前,他曾发现了价值$10000美金的谷歌主机头...

4618
来自专栏猿人谷

三种Linux服务器监控技术的对比

本文介绍三种Linux服务器监控技术的优缺点,其中有SNMP代理(客户端)方式、SSH方式、安装私有代理(客户端)方式等内容。 Linux系统的强大的功能和绚丽...

2317
来自专栏Java架构

如何通过 Java 线程堆栈来进行性能瓶颈分析?

3046
来自专栏风中追风

分布式基础_All-In-One到SOA的分布式架构演进

在诞生之初始,应用与数据库是部署在同一台机器上,这时的用户量、数据量规模都比较小,这样的架构既简单实用、便于维护,成本又低,成为了这个时代的主流架构方式。随着用...

3859
来自专栏技术翻译

共享MongoDB主机的五大好处

共享主机是在云中部署MongoDB的最具成本效益且易于设置的选项之一,并被全球数千家公司用于托管其数据库。在这篇文章中,我们概述了使用共享MongoDB主机的五...

1640
来自专栏架构师之路

小小的IP,大大的耦合,你痛过吗?

什么是耦合? 耦合,是架构中,本来不相干的代码、模块、服务、系统因为某些原因联系在一起,各自独立性差,影响则相互影响,变动则相互变动的一种架构状态。 感官上,...

4616
来自专栏杨建荣的学习笔记

运维平台中的脚本管理

截止目前,元数据的工作完成了一些阶段性的内容,当然还有非常多的需要细化的东西,从优先级层面来说,可以暂时放一放。 现在迫切需要的是一些能用起来的功能,比如结合业...

4715

扫码关注云+社区

领取腾讯云代金券