CN112380155A - 基于云的轨道交通综合数据总线通信方法及系统 - Google Patents
基于云的轨道交通综合数据总线通信方法及系统 Download PDFInfo
- Publication number
- CN112380155A CN112380155A CN201910912070.7A CN201910912070A CN112380155A CN 112380155 A CN112380155 A CN 112380155A CN 201910912070 A CN201910912070 A CN 201910912070A CN 112380155 A CN112380155 A CN 112380155A
- Authority
- CN
- China
- Prior art keywords
- message
- data structure
- partition
- data
- cloud
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于云的轨道交通综合数据总线系统通信方法及系统,具体包括:维护一个主题数据结构,所述主题数据结构内包括至少一个分区数据结构;所述分区数据结构为有序列的消息序列;所述消息为用于传递信息的数据结构;其中,所述分区数据结构在所属主题数据结构内具有唯一的分区编号,所述消息在所属的分区数据结构内具有唯一的消息编号;消息的生产者将消息传发送至相应的主题数据结构中,所有订阅了该主题的消费者都可以从该主题数据结构中获取消息。因此,本发明具有如下优点:1.在提升数据总线吞吐量的同时做到低延时;2.通过消息持久化,实现灵活的消息处理;3.支持消息有序和消息无序等多种需求。
Description
技术领域
本发明涉及一种通信方法及系统,属于轨道交通技术领域,具体是涉及一种基于云的轨道交通综合数据总线通信方法及系统。
背景技术
在轨道交通行业当中,生产运行设备与系统的信息化不断推进,导致日常运营所产生的数据量不断扩大,产生了大量的结构、半结构、准结构和非结构数据。应用系统越来越多的向一体化和大集成的方式在发展,越来越多的系统之间需要进行数据交换和集成,目前还没有一种在此前提下,提供比较好的大量、实时数据交换服务的技术,因此也不能实现跨业务系统的数据总线实时传输和通畅的进行数据交换。
现有轨道交通综合数据总线常见基于传统数据总线技术,通过完全遵照JMS规范实现在不同系统之间传递语义准确的信息。在过去数据体量小的前提下,业务间集成程度低的场景下该架构适用,但随着科技的进步,运行设备产生的数据不断扩大,系统间的交互更加频繁,该架构的弊端显现出来。
此外,传统数据总线技术吞吐量低,通过调优等手段也无法承载当前环境下大量设备数据,需通过增加资源改善,但在解决吞吐量的同时增加运营成本,消息持久化能力弱,可靠性低。
发明内容
本发明主要是解决现有技术所存在的上述的技术问题,提供了一种基于云的轨道交通综合数据总线通信方法及系统。该方法及系统在传统的数据总线基础上,能够在同等资源下提升吞吐量,以此解决轨道交通数据的增长带来的问题,同时保证消息持久化,实现灵活的消息处理,并且还能满足各业务系统对消息有序和无序的两种需求。
本发明的上述技术问题主要是通过下述技术方案得以解决的:
一种基于云的轨道交通综合数据总线通信方法,包括:采用主题-分区-消息的三级结构来分散负载,具体包括:
维护一个主题数据结构,所述主题数据结构内包括至少一个分区数据结构;所述分区数据结构为有序列的消息序列;所述消息为用于传递信息的数据结构;其中,所述分区数据结构在所属主题数据结构内具有唯一的分区编号,所述消息在所属的分区数据结构内具有唯一的消息编号;
消息的生产者将消息传发送至相应的主题数据结构中,所有订阅了该主题的消费者都可以从该主题数据结构中获取消息。
优选的,上述的一种基于云的轨道交通综合数据总线通信方法,
使用消费者组名来标记消费者,所述消费者组名与主题数据结构中的相应分区关联;所述消费者组记录主题数据结构内各分区的偏移量,并按偏移量读取和消费消息;
消费者组下的消费者实例仅关联的分区编号接收消息。
优选的,上述的一种基于云的轨道交通综合数据总线通信方法,
数据的每次写入操作仅将数据写入到操作系统的页缓存中。
优选的,上述的一种基于云的轨道交通综合数据总线通信方法,
使用零拷贝技术,在内核驱动程序处理I/O数据的时候,不再需要进行上下文的切换,节省了内核缓冲区与用户态应用程序缓冲区只建的数据拷贝,同时利用直接存储器访问技术执行I/O操作,因此也避免了OS内核缓冲区之间的数据拷贝;底层操作系统提供的sendfile系统调用实现了零拷贝技术,使用以sendfile为代表的零拷贝技术加强网络间的数据传输效率。
优选的,上述的一种基于云的轨道交通综合数据总线通信方法,写入操作采用追加写入的方式以避免磁盘随机写操作。
优选的,上述的一种基于云的轨道交通综合数据总线通信方法,所有数据在被写入文件系统的持久化日志中之后才会返回结果给客户端通知它们消息已被成功写入。
一种基于云的轨道交通综合数据总线通信系统,包括:
主题维护模块,维护一个主题数据结构,所述主题数据结构内包括至少一个分区数据结构;所述分区数据结构为有序列的消息序列;所述消息为用于传递信息的数据结构;其中,所述分区数据结构在所属主题数据结构内具有唯一的分区编号,所述消息在所属的分区数据结构内具有唯一的消息编号;
消息分发模块,用于生产者产生的消息发送至相应的主题数据结构中,并通知所有订阅了该主题的消费者从该主题数据结构中获取消息。
优选的,上述的一种基于云的轨道交通综合数据总线通信系统,包括:所述主题维护模块使用消费者组名来标记消费者,所述消费者组名与主题数据结构中的相应分区关联;所述消费者组记录主题数据结构内各分区的偏移量,并按偏移量读取和消费消息;
消费者组下的消费者实例仅关联的分区编号接收消息因此,本发明具有如下优点:1.在提升数据总线吞吐量的同时做到低延时;2.通过消息持久化,实现灵活的消息处理;3.支持消息有序和消息无序等多种需求。
附图说明
附图1是本发明实施例的一种数据总线架构图;
附图2是本发明实施例的一种基于队列的消息引擎模型;
附图3是本发明实施例的一种基于发布/订阅的消息引擎模型;
附图4是本发明实施例的主题和分区示意图;
附图5是本发明实施例的无零拷贝数据传输示意图;
附图6是本发明实施例的零拷贝数据传输示意图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:
本发明的主要目的是在传统的数据总线基础上,在同等资源下提升吞吐量,以此解决轨道交通数据的增长带来的问题,同时保证消息持久化,实现灵活的消息处理。同时满足各业务系统对消息有序和无序的两种需求。
为满足轨道交通系统需求,数据总线需同时支持两种消息引擎模型:消息队列模型、发布/订阅模型。数据总线架构图1所示。基于该模型,图2为消息队列模型,图3为发布/订阅模型,下面分别介绍。
如图2所示,消息队列模型是基于队列提供消息传输服务的,多用于进程间通信以及线程间通信。该模型定义了消息队列、发送者和接收者提供了一种点对点的消息传递方式,即发送者发送每条消息到队列的指定位置,接收者从指定位置获取消息。一旦消息被消费,就会从队列中移除该消息。每条消息由一个发送者生产出来,且只被一个消费者处理—发送者和消费者之间是一对一的关系。
如图3所示,发布/订阅模型,与消息队列模型不同,它有主题的概念:一个主题可以理解为逻辑语义相近的消息的容器。该模型定义了类似于生产者/消费者这样的角色,即发布者和订阅者。发布者将消息生产出来发送到指定的主题中,所有订阅了该主题的订阅者都可以接收到该主题下的所有消息。通常具有相同订阅主题的所有订阅者将接收到同样的消息。
本实施例中,引入主题、分区、消费者组概念,以此解决轨道交通综合数据总线的实际需求问题。
如图4所示,为主题和分区示意图。一个主题可以理解为逻辑语义相近的消息的容器。出于性能的考虑,不采用主题-消息的两级结构,而采用主题-分区-消息的三级结构来分散负载。主题是由多个分区组成的,分区时不可修改的有序消息序列,每个分区有自己专属的分区号,分区上的每条消息都会被分配一个唯一的序列号,通过分区内有序可解决个别业务系统对消息有序的需求,并且根据分区间无序还可实现消息无序,在保证功能的同时也提高了。消费者使用一个消费者组名来标记自己,主题的每条消息都只会被发送到每个订阅它的消费者组的一个消费者实例上。一个消费者组可能有若干个消费者实例,对于同一个消费者组而言,主题的每条消息只能被发送到消费者组下的一个消费者实例上,主题的同一条消息可以被发送到多个消费者组。即可满足同一业务内消费数据的竞争关系,又可满足不同业务间消费数据的平等关系。
本实施例中,在消费者组记录主题数据结构内各分区的偏移量,并按偏移量读取和消费消息;消费者组保存了消费数据的偏移量,对消费者组Group A而言,Group A消费主题Test,Test内有三个分区:0、1、2,消费者组记录了消费Test主题每个分区的偏移量,也就是消费到了哪条,这样确保了同一组内的消费者实例不会重复消费,同时也确保了不同消费者组间可以消费到同一条消息;
本实施例的一种实施方式中,同一条消息不会被发送给同一主题的多个分区,仅当数据发送不成功等原因时才会尝试发送给其他分区。
基于以上设计,本实施例提供的一种基于云的轨道交通综合数据总线通信方法,包括:采用主题-分区-消息的三级结构来分散负载,具体包括:
维护一个主题数据结构,所述主题数据结构内包括至少一个分区数据结构;所述分区数据结构为有序列的消息序列;所述消息为用于传递信息的数据结构;其中,所述分区数据结构在所属主题数据结构内具有唯一的分区编号,所述消息在所属的分区数据结构内具有唯一的消息编号;
消息的生产者将消息传发送至相应的主题数据结构中,所有订阅了该主题的消费者都可以从该主题数据结构中获取消息。
本实施例中,使用消费者组名来标记消费者,所述消费者组名与主题数据结构中的相应分区关联;消费者组下的消费者实例仅关联的分区编号接收消息;其中,主题数据结构中的同一条消息可以被发送到多个分区数据结构中。
对于数据总线而言,吞吐量是至关重要的性能指标。并且为了支撑轨道交通行业的数据增长,提升吞吐量显得尤为重要。为了提升写入操作,改变对磁盘的使用方法,每次写入操作都只是把数据写入到操作系统的页缓存中,然后由操作系统自行决定什么时候把页缓存中的数据写回磁盘上。
如图5所示,为无零拷贝数据传输,如图6所示,为零拷贝数据传输技术。本实施例中使用零拷贝技术:首先在内核驱动程序处理I/O数据的时候,它不在需要进行上下文的切换,节省了内核缓冲区与用户态应用程序缓冲区只建的数据拷贝,同时利用直接存储器访问技术执行I/O操作,因此也避免了OS内核缓冲区之间的数据拷贝。底层操作系统提供的sendfile系统调用实现了零拷贝技术,使用以sendfile为代表的零拷贝技术加强网络间的数据传输效率。
因为操作系统页缓存是在内存中分配的,所以消息写入的速度非常快,读取消息时大部分消息很有可能依然保存在页缓存中,因此可以直接命中缓存,不用到底层的物理磁盘上获取消息,从而极大地提升了消息读取的吞吐量;数据总线不必直接与底层的文件系统打交道,繁琐的I/O操作交由操作系统来处理;写入操作采用追加写入的方式,避免了磁盘随机写操作。
对于已经处理过的消息在未来的某个时间点可能需要重新处理一次,即所谓的消息重演。消息持久化便可以很方便地实现这样的需求。所有数据都会立即被写入文件系统的持久化日志中,之后才会返回结果给客户端通知它们消息已被成功写入。这样相较于其它系统,即实时保存了数据,又减少了程序对于内存的消耗。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (8)
1.一种基于云的轨道交通综合数据总线通信方法,其特征在于,包括:采用主题-分区-消息的三级结构来分散负载,具体包括:
维护一个主题数据结构,所述主题数据结构内包括至少一个分区数据结构;所述分区数据结构为有序列的消息序列;所述消息为用于传递信息的数据结构;其中,所述分区数据结构在所属主题数据结构内具有唯一的分区编号,所述消息在所属的分区数据结构内具有唯一的消息编号;
消息的生产者将消息传发送至相应的主题数据结构中,所有订阅了该主题的消费者都可以从该主题数据结构中获取消息。
2.根据权利要求1所述的一种基于云的轨道交通综合数据总线通信方法,其特征在于,
使用消费者组名来标记消费者,所述消费者组名与主题数据结构中的相应分区关联;所述消费者组记录主题数据结构内各分区的偏移量,并按偏移量读取和消费消息;
消费者组下的消费者实例仅关联的分区编号接收消息。
3.根据权利要求1所述的一种基于云的轨道交通综合数据总线通信方法,其特征在于,数据的每次写入操作仅将数据写入到操作系统的页缓存中。
4.根据权利要求1所述的一种基于云的轨道交通综合数据总线通信方法,其特征在于,使用零拷贝技术,在内核驱动程序处理I/O数据的时候,不再需要进行上下文的切换,节省了内核缓冲区与用户态应用程序缓冲区只建的数据拷贝,同时利用直接存储器访问技术执行I/O操作,因此也避免了OS内核缓冲区之间的数据拷贝;底层操作系统提供的sendfile系统调用实现了零拷贝技术,使用以sendfile为代表的零拷贝技术加强网络间的数据传输效率。
5.根据权利要求1所述的一种基于云的轨道交通综合数据总线通信方法,其特征在于,写入操作采用追加写入的方式以避免磁盘随机写操作。
6.根据权利要求1所述的一种基于云的轨道交通综合数据总线通信方法,其特征在于,所有数据在被写入文件系统的持久化日志中之后才会返回结果给客户端通知它们消息已被成功写入。
7.一种基于云的轨道交通综合数据总线通信系统,其特征在于,包括:
主题维护模块,维护一个主题数据结构,所述主题数据结构内包括至少一个分区数据结构;所述分区数据结构为有序列的消息序列;所述消息为用于传递信息的数据结构;其中,所述分区数据结构在所属主题数据结构内具有唯一的分区编号,所述消息在所属的分区数据结构内具有唯一的消息编号;
消息分发模块,用于生产者产生的消息发送至相应的主题数据结构中,并通知所有订阅了该主题的消费者从该主题数据结构中获取消息。
8.根据权利要求7所述的一种基于云的轨道交通综合数据总线通信系统,其特征在于,包括:所述主题维护模块使用消费者组名来标记消费者,所述消费者组名与主题数据结构中的相应分区关联;所述消费者组记录主题数据结构内各分区的偏移量,并按偏移量读取和消费消息;
消费者组下的消费者实例仅关联的分区编号接收消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910912070.7A CN112380155A (zh) | 2019-09-25 | 2019-09-25 | 基于云的轨道交通综合数据总线通信方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910912070.7A CN112380155A (zh) | 2019-09-25 | 2019-09-25 | 基于云的轨道交通综合数据总线通信方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112380155A true CN112380155A (zh) | 2021-02-19 |
Family
ID=74585987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910912070.7A Pending CN112380155A (zh) | 2019-09-25 | 2019-09-25 | 基于云的轨道交通综合数据总线通信方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112380155A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102955717A (zh) * | 2012-11-05 | 2013-03-06 | 北京奇虎科技有限公司 | 在分布式消息处理系统中的消息管理设备和方法 |
CN105095365A (zh) * | 2015-06-26 | 2015-11-25 | 北京奇虎科技有限公司 | 一种信息流数据的处理方法和装置 |
US20180060143A1 (en) * | 2016-08-26 | 2018-03-01 | Vmware, Inc. | Distributed shared log storage system having an adapter for heterogenous big data workloads |
CN109002484A (zh) * | 2018-06-25 | 2018-12-14 | 北京明朝万达科技股份有限公司 | 一种用于顺序消费数据的方法及系统 |
-
2019
- 2019-09-25 CN CN201910912070.7A patent/CN112380155A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102955717A (zh) * | 2012-11-05 | 2013-03-06 | 北京奇虎科技有限公司 | 在分布式消息处理系统中的消息管理设备和方法 |
CN105095365A (zh) * | 2015-06-26 | 2015-11-25 | 北京奇虎科技有限公司 | 一种信息流数据的处理方法和装置 |
US20180060143A1 (en) * | 2016-08-26 | 2018-03-01 | Vmware, Inc. | Distributed shared log storage system having an adapter for heterogenous big data workloads |
CN109002484A (zh) * | 2018-06-25 | 2018-12-14 | 北京明朝万达科技股份有限公司 | 一种用于顺序消费数据的方法及系统 |
Non-Patent Citations (2)
Title |
---|
裴鹏飞: "支持事务的分布式消息队列中间件的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
谭亮等: "基于Spark_Streaming的实时交通数据处理平台", 《计算机系统应用》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9917913B2 (en) | Large message support for a publish-subscribe messaging system | |
CN107391271B (zh) | 一种基于消息队列系统的延时任务触发方法和装置 | |
CN110535787B (zh) | 消息消费方法、装置及可读存储介质 | |
CN102906726B (zh) | 协处理加速方法、装置及系统 | |
US8321614B2 (en) | Dynamic scheduling interrupt controller for multiprocessors | |
US20170192819A1 (en) | Method and electronic device for resource allocation | |
CN101006727B (zh) | 分布式多媒体服务器系统和多媒体信息发布方法 | |
US8082307B2 (en) | Redistributing messages in a clustered messaging environment | |
CN110968586A (zh) | 分布式事务处理方法及装置 | |
CN103218329A (zh) | 数字信号处理数据传输 | |
CN112579148B (zh) | 基于业务代理的业务消息处理方法、装置及电子设备 | |
CN111475759A (zh) | 一种消息推送平台、方法、装置、服务器和存储介质 | |
CN103209214A (zh) | 一种基于NoSQL的消息中间件的实现方法 | |
CN101470636B (zh) | 一种消息的读写方法和装置 | |
CN111177363B (zh) | 一种群组消息的写入方法、装置、服务器和存储介质 | |
CN112527844A (zh) | 数据处理方法及装置、数据库架构 | |
CN105681426A (zh) | 异构系统 | |
CN113259408B (zh) | 数据传输方法和系统 | |
CN102510407A (zh) | 一种对博客进行读、写操作的方法及系统 | |
CN111831713A (zh) | 一种数据处理方法、装置及设备 | |
CN112380155A (zh) | 基于云的轨道交通综合数据总线通信方法及系统 | |
CN108616398B (zh) | 一种基于dns负载均衡技术的容器动态缩容方法 | |
CN102073539B (zh) | 队列请求处理方法和装置 | |
CN210804421U (zh) | 一种服务器系统 | |
CN113971428A (zh) | 数据处理方法、系统、设备、程序产品及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210219 |
|
RJ01 | Rejection of invention patent application after publication |