首页 理论教育 物流信息云平台的数据处理和传输技术

物流信息云平台的数据处理和传输技术

时间:2023-05-21 理论教育 版权反馈
【摘要】:(一)云存储技术1.数据存储技术数据存储技术主要是指管理文件存储、读取、修改的一系列技术,主要是为了以文件系统的形式实现分布式环境下的数据存储,同时兼顾高效可靠的性能需求。云计算的文件系统和数据处理方法是目前云计算中比较主流的数据存储技术。基于云计算架构的云存储系统中涉及的云存储管理技术是目前比较主流的云存储管理技术。存储虚拟化已经成为云存储中不可或缺的技术之一。

物流信息云平台的数据处理和传输技术

(一)云存储技术

1.数据存储技术

数据存储技术主要是指管理文件存储、读取、修改的一系列技术,主要是为了以文件系统的形式实现分布式环境下的数据存储,同时兼顾高效可靠的性能需求。

云计算的文件系统和数据处理方法是目前云计算中比较主流的数据存储技术。云计算的文件系统和数据处理方法为数据存储提供了一套较为成熟的解决方案,其中包括设置用于提供客户端接口并记录存储到数据节点中的数据的路径目录节点,和连接所述目录节点,用于存储数据的数据节点。目录节点生成数据存储列表,并将数据和所述数据存储列表发送到数据存储列表中的第一数据节点;当前数据节点接收数据,并在接收到预定大小的数据块后,将接收到的数据块及所述数据存储列表发送到下一数据节点;直至获得预定数量的冗余存储份数。该方法通过目录节点对数据进行存储、读取、修改,并通过冗余存储保证数据的可靠性和存储的高效性。

2.存储管理技术

云存储系统中往往存储着海量的数据,且数据分布在各个存储服务器上,如果没有很好的存储管理系统,云存储系统的效率、可靠性等都会大大降低,甚至无法使用。存储管理系统主要负责存储系统的动态扩展管理,如增加或减少存储服务器;故障维护,如果出现服务器宕机,应立即启用备份服务器,维护备份数据等;负载监控,监控存储服务器的负载情况,并及时进行存储调整;数据的复制、分区、备份、恢复等功能;安全管理,主要是控制用户的读写权限。

基于云计算架构的云存储系统中涉及的云存储管理技术是目前比较主流的云存储管理技术。基于云计算构架的云存储系统由主服务器、存储服务器、监控服务器组成,其中主服务器和监控服务器构成该系统中的存储管理子系统。存储服务器之间并联,存储服务器通过网络与用户终端连接,存储服务器同时连接主服务器,存储服务器通过监控节点连接监控服务器,监控服务器另外连接主服务器,主服务器通过网络与用户终端连接。该存储管理系统具有高效、安全、易操作的优点。其中主服务器主要用于索引存储服务器以及对存储服务器进行管理。监控服务器主要是对各个存储服务器的状态进行监控,如果发现存储服务器宕机,则启动备份的存储服务器,并更新主服务器的索引状态。这样,用户只需要两次寻址就可以准确定位到每个数据的存储地址。用户直接与存储服务器进行连接,并不通过主服务器访问存储服务器,这样既提高数据访问的效率,又防止了主服务器成为数据访问效率的瓶颈。为保证数据的可靠性,存储服务器中的每份数据都会有三份以上的备份副本,分别存储于不同的存储服务器中,这些存储信息也是在主服务器中进行维护,并且由监控服务器进行监控的。当用户修改某份数据的时候,只有其所有副本都更新完毕,更新操作才算完成。

3.存储虚拟化技术

虚拟化技术在异构集群存储系统中起着关键性的作用,是数据中心虚拟化的核心技术。虚拟化技术可以将集群中的空闲资源进行虚拟地划分、组合,从而动态地满足客户的数据存储要求。此外,虚拟平台的池化技术可以动态满足系统变化,提高存储系统的可扩展性

目前很多IaaS框架的云存储模块都提供了存储虚拟化技术,如CloudStack、OpenShift及vSphere等。存储虚拟化已经成为云存储中不可或缺的技术之一。

4.网络传输技术

存储服务器之间的数据传输采用NFS/CIF数据传输协议,该协议可以实现异构平台间的数据无障碍传输,在分布式平台上已经比较成熟且表现良好。不过它有一个弱点就是传输效率不是太高,但这在Internet环境下也是无法避免的。如果可以拥有自己的专用网络,就可以使用iSCSI协议,该协议在集群环境下效率较高。如果费用允许,甚至可以采用高速光纤通道,这会使得数据传输的效率在更大程度上增加,但成本会非常昂贵。

(二)分布式缓存技术

分布式缓存中还包括如下关键性的技术,来保证缓存的高可靠性、一致性,以及高吞吐、低延时的访问服务。

1.数据存储策略

数据存储策略是缓存系统的关键技术。缓存利用内存来提高数据访问效率,但是内存又是一个极不安全的空间,一旦断电,内存中的数据就会被擦除。因此,无论是单机还是分布式环境,都需要对缓存数据进行持久化操作,防止缓存数据丢失。另外,一台服务器的缓存数据一般不会太大,可以选择固态硬盘(Solid State Disk,SSD)作为存储介质,与硬盘相比访问效率明显提高;如果缓存数据非常巨大,也可以将其持久化到硬盘中。数据存储功能模块可以提供一套自适应的数据存储技术,提供内存/SSD/硬盘的三级缓存策略。

2.数据可靠性与一致性

分布式缓存通过多副本机制来保证数据的可靠性,但是多副本带来的一个弊端就是缓存数据一致性难以保证。这里主要有两种解决方案:NRW多副本机制和主从备份机制。

NRW多副本机制中,N是一个数据的副本数,R是读取操作时至少需要读取的副本数,W是写入操作时至少需要同步写入的副本数。当分布式缓存的访问模型满足R+W>N时,就能保证数据访问的可靠性和一致性,但是系统的访问性能和可用性会受到影响;相反,如果R、W值偏小,又会使得数据一致性与可靠性减小,因此NRW理论一定要在真实环境中经过一定量的模型训练,找到最合适的NRW值。

主从备份机制可以较好地保证数据的一致性,以及在缓存服务器中的缓存数据的高可靠性,提高网络服务质量。主从备份机制的设计中需要考虑不同数据的访问频率和负载特点,设计适当的分布式缓存策略。

3.负载均衡

负载均衡主要是指各个缓存服务器的数据负载的均衡,一方面可以使分布式环境中的缓存节点均匀地负载缓存数据,同时也保证了不会因为部分缓存服务器的宕机导致大量缓存数据的丢失。目前比较主流的技术有负荷分配技术和基于一致性哈希的负载均衡策略。

分布式缓存系统中的负荷分配技术,根据节点的状态信息和负荷处理所有服务器节点分配负荷权重,根据各服务器节点的负荷权重生成路由信息,提高系统的可用性、运行效率及稳定性,从而提高集群的并发访问能力。

基于一致性哈希的负载均衡策略原理是通过哈希散列算法,将缓存数据散列到环状编号排列的服务器集群中。较为均匀地将负载数据分布到各个服务器节点。如果需要达到更为均匀的负载分布,可以采用虚拟节点的思想,即一致性哈希的环状结构上的节点为虚拟节点,并非直接对应物理节点,而是将其用散列算法分配若干个(视集群规模而定)虚拟节点对应一个物理节点,这样就能更好地实现缓存数据的均匀分布。(www.xing528.com)

4.路由数据一致性

分布式缓存系统中为了最快、最准地定位各个缓存数据的位置,一般会有一张全局路由表。而为了提高路由效率,各缓存节点上会保存该全局路由表的副本,因此需要实时保证路由数据的一致性。为了达到路由数据的一致性,该表采用分布式同步锁系统存放,保证了路由表在数据更新时,其他服务器无法读取数据,只有当路由表更新完毕后,分布式系统释放锁,各个服务器才可以重新读取路由表数据进行路由。同时,为了在路由数据发生更新时,所有服务器节点同时更新本地路由表,需要定时发送路由交换信息,保证路由数据变更在所有服务器节点中迅速生效。

5.故障检测及服务器控制

分布式缓存集群中各个服务器的状态需要进行实时监控,保证缓存数据的可靠性和及时性。现有的技术主要提供了一种分布式缓存控制方法,能够支持多种数据访问协议,并可根据缓存服务器的状态信息,对所使用的缓存服务器进行灵活切换,实现对分布式缓存的灵活控制。

(三)消息中间件技术

1.高级消息队列技术

为了提供可靠的数据传输,消息中间件使用队列的方式进行消息管理,数据按照用户自定义的尺寸,被拆分成若干的消息放入消息队列,消息中间件以同步或异步的方式进行消息的发送和接收。为了进一步保证数据传输的可靠性,消息中间件还提供诸如消息优先级、断点续传、可靠消息队列、内存队列、流量控制、遇见连接等附加技术。

另外,超大规模的应用往往被部署到不同的计算节点上,分布式的部署应用常常是出于平衡多计算节点计算负载的考虑。因为消息中间件所负责传输的消息是应用的输入,所以需要首先在消息的分发上做到负载均衡。所谓消息的分发,就是指在同时有多个可用的目的队列的情况下,将消息投到最适合的消息队列中。在分布式消息中间件架构中,如RabbitMQ,支持分布式的应用。当有多个可用的目的队列时,RabbitMQ默认会开启轮询模式,将消息按次序依次发给不同的消息队列。这样的机制可以在绝大多数场景下平衡应用模块之间的消息负载。但也有个别情况仍会导致消息负载的不均衡,这时RabbitMQ可以提供非常智能的队列管理,保证将消息只分发到消息个数小于某个阈值的消息队列中去。相比于轮询法,后者更体现了消息中间件在智能消息队列技术上的设计空间。

2.跨平台的API设计

消息中间件消息传输使用标准的IP包封装,使其能够提供跨平台的数据通信和信息交换。消息中间件通过提供非常丰富的API,为几乎每种平台都提供相应的接口,因此各种主流平台都可以找到相应的接口,从而完成跨平台的数据通信和消息交换。

在消息中间件架构中,JMS是较为常用的Java平台下的消息中间件API,许多产品都会尽可能地支持JMS的API。而如MOM4j、Apusic Message Queue、ActiveMQ等用Java开发的消息中间件系统,具有很强的跨平台和操作系统的特性。在客户端开发方面,主流的消息中间件系统往往会支持多种开发语言,服务端系统提供各语言的API接口,客户端的开发只需要面向这些接口就行。以金蝶的Apusic为例,它提供了Java、.NET、C/C++的接口,同时它也提供Oracle、MySQL、SQL Server等的数据库服务专用接口。

跨平台的API接口在为用户提供统一的消息中间件解决方案的同时,又尽可能地兼容了用户的使用环境。但要将不同语言、不同平台下的API做到一致,对开发者而言是个不小的挑战。

3.异步通信机制

分布式环境的对象调用,往往需要涉及大量的网络传输,这样的同步调用会带来大量消息阻塞。相比于传统的分布式对象调用,消息中间件通过消息队列实现异步通信机制,大大提高了通信效率,从而提高了平台的数据处理效率。

在IBM的消息中间件WebSphere MQ中,异步通信机被认为是通信的首选方式。因为一套可靠的消息中间件系统足以保证消息传输的准确和可靠性,并不需要收发端通过同步握手、确认反馈来保证通信质量。而消息的收发端作为应用的主体,本身的职责在于完成各自的业务,如果在业务系统中减少了对消息传输QoS的确认功能,则可以增加代码的内聚性。

要实现异步的通信机制,消息中间件客户端与业务系统主体是线程独立的,业务系统的线程运行并不完全依赖于消息中间件的消息。如同WebSphere所强调的,异步通信在速度较快的情况下,效果可以与同步通信相当。而异步通信实现同步应用的效果,其实是分别从收发端各进行一次异步通信。因为异步通信数据对消息中间件系统的网络压力较小,用它实现的同步应用往往在性能上较直接的同步通信更胜一筹。

4.远程过程调用通信机制

RPC(远程过程调用)是专门用于进程间远程调用的通信方式。它的特点在于发送方的消息将启动接收方程序的某个过程,在接收方运行出结果后再调用发送方的进程继续执行。

远程过程调用通信的工作过程需要发送方和接收方分别设立两个专门用于远程过程调用通信的队列,也就是在客户端启动后,会创建一个专为远程调用异步回收消息服务的独占消息队列。之后,在需要发送一个远程调用的通信请求前,客户端发送的消息中需要指定依赖的异步回收队列和它的关联号,相当于消息队列的注册。客户端发送请求给异步消息队列,接收端接收到一个请求,完成请求的计算并将结果返回给客户端指定的异步回收队列。之后,客户端在回收队列接收到反馈消息,检测反馈消息的关联号。如果关联号与请求的关联号相符,则客户端接收该反馈消息,否则客户端将忽略该消息。

5.分布式环境下的进程间通信

在云环境中,单个服务应用可能分布在不同的物理机上运行,如何实现高效的进程间通信是较为迫切的需求。经过相应的扩展,消息中间件不但可以实现分布式环境中应用间的同、异步通信,还可以采用其核心思想,实现分布式环境下的进程间通信,从而更加高效地完成分布式环境下的信息交换,同时提高分布式环境的灵活性。

实现进程间的通信是基于消息中间件能将消息传输模块高度隔离这一设计优势上的。由于在一般的消息中间件系统中,消息的路由信息都位于应用层的数据之中,不同的进程可以申请到不同的消息队列,这样消息中间件就可以区分不同的进程。而在进程看来,与其他进程的通信只需要指定目的进程在消息中间件系统中的对应消息队列即可,通信方式和远程通信一样。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈