CN105681426A - 异构系统 - Google Patents
异构系统 Download PDFInfo
- Publication number
- CN105681426A CN105681426A CN201610044809.3A CN201610044809A CN105681426A CN 105681426 A CN105681426 A CN 105681426A CN 201610044809 A CN201610044809 A CN 201610044809A CN 105681426 A CN105681426 A CN 105681426A
- Authority
- CN
- China
- Prior art keywords
- queue
- http request
- request
- processing module
- data
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种异构系统,包括多个服务器及仲裁模块:仲裁模块在接收到http请求后,将http请求发送至闲置的服务器;每个服务器均包括http?restful接口、消息队列及流处理模块,闲置的服务器的http?restful接口在获取http请求后,将http请求的请求数据发送至消息队列;流处理模块包括入口模块及多个业务处理模块,消息队列将请求数据推送至订阅http请求的入口模块,入口模块对请求数据进行数据处理,并将处理后的请求数据发送至业务处理模块,每个业务处理模块均对请求数据执行业务处理操作。本发明提供了一种异构的、基于消息传递的、完全异步的流水线化的服务端架构系统。
Description
技术领域
本发明涉及一种异构系统,特别是涉及一种易于横向扩展的、能够流水线化并行的、异步的异构系统。
背景技术
现有的软件系统,在遇到硬件资源瓶颈的时候,其扩展都比较困难,其并行度也比较低,至多只能做到单机并行,多硬件并行时往往会带来同步的瓶颈,其流程大多是同步的,不能方便的使用异步方法来提高系统资源的利用率。比如网络请求的数量达到最大连接数后,只能通过添加新的nat(网络地址转换)映射和负载均衡来分散到其他的主机,而这台添置的主机与其他的主机之间总存在这一些需要共享和同步的资源。而且在并发方面,由于单机上的同步代价较低,一般会选择只在单机上实现业务间的并行,而主机间无法与其他主机实现业务级别的并行。同时,由于某些业务逻辑是需要在会话期间得到响应的,否则会当作失败处理,使得这部分业务无法异步实现,只好选择同步处理,使得处理过程中即使遇到cpu(中央处理单元)资源无关的等待时,也只好选择同步等待,从而浪费了cpu的宝贵计算时间。
发明内容
本发明要解决的技术问题是为了克服现有技术中在系统架构方面的扩展性、资源利用性和并发程度不足的缺陷,提供一种异构系统。
本发明是通过下述技术方案来解决上述技术问题的:
本发明提供了一种异构系统,其特点在于,包括多个服务器以及一仲裁模块:
所述仲裁模块用于在接收到http(超文本传输协议)请求后,将所述http请求发送至一闲置的服务器;
每个服务器均包括httprestful(一种架构样式的网络系统)接口、消息队列以及流处理模块,所述闲置的服务器的httprestful接口用于在获取所述http请求后,将所述http请求的请求数据发送至所述消息队列;
所述流处理模块包括入口模块及多个业务处理模块,所述消息队列用于将所述请求数据推送至订阅所述http请求的入口模块,所述入口模块用于对所述请求数据进行数据处理,并将处理后的所述请求数据发送至所述业务处理模块,每个业务处理模块均用于对所述请求数据执行业务处理操作。
较佳地,所述消息队列包括请求队列及待推送队列,所述请求队列用于存储所述http请求的请求数据,所述待推送队列用于从最后一个业务处理模块中接收业务处理操作的处理结果。
较佳地,当有外部程序订阅所述http请求的推送通知时,所述待推送队列还用于将所述处理结果输出至所述外部程序。
较佳地,所述httprestful接口还用于将所述http请求按照不同的业务类型发送至不同的消息队列。
较佳地,所述httprestful接口为异步接口。
较佳地,所述数据处理包括格式化处理以及数据验证。
较佳地,所述业务处理操作包括推送操作及写入操作。
本发明的积极进步效果在于:本发明提供了一种异构的、基于消息传递的、完全异步的流水线化的服务端架构系统,提高了服务器的利用率;提高了均衡负载的有效性;通过模仿cpu的流水线化,显示稀有的单硬件资源并行,从而提高吞吐量;通过完全的异步,使得硬件资源的并发更加充分,从而提高硬件的利用率;通过基于消息队列和流处理模块实现的异构系统,在需要扩展硬件资源,如服务器的时候,只需要在新的服务器上部署相应的消息队列或者流处理模块即可,不需要考虑复杂的同步问题,使得整个系统易于横向扩展。
附图说明
图1为本发明的较佳实施例的异构系统的模块示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
如图1所示,本发明的异构系统包括多个服务器1以及一仲裁模块2,所述仲裁模块2用于在接收到用户的http请求后,将所述http请求发送至一闲置的服务器;
每个服务器均包括httprestful接口11、消息队列12以及流处理模块13,所述闲置的服务器的httprestful接口11用于在获取所述http请求后,将所述http请求的请求数据发送至所述消息队列12;
所述流处理模块13包括入口模块131及多个业务处理模块132,所述消息队列12用于将所述请求数据推送至订阅所述http请求的入口模块131,所述入口模块131用于对所述请求数据进行数据处理,并将处理后的所述请求数据发送至所述业务处理模块132,每个业务处理模块132均用于对所述请求数据执行业务处理操作。
所述消息队列12具体可包括请求队列121及待推送队列122,所述请求队列121用于存储所述http请求的请求数据,所述待推送队列122用于从最后一个业务处理模块132中接收业务处理操作的处理结果,当有外部程序订阅所述http请求的推送通知时,所述待推送队列122还用于将所述处理结果输出至所述外部程序。
具体地,在本发明中,所述httprestful接口11为异步接口,其按照标准的restful架构来设计,主要为外部系统提供内部服务的接口,供外部调用。所述httprestful接口11具有异步特性,在接收到所述http请求时,相应的web(网页)接口不需要处理复杂的业务流程,只需要将所述http请求的请求内容按照不同的业务类型发送至不同的消息队列即可,然后所述httprestful接口的处理程序只需要等待相应的结果队列为其异步推送的结果消息即可。对于需要在会话期间得到结果的请求,此处的异步等待不可省略,但对于无需会话间返回的原生异步业务,此处的等待可以直接跳过,然后返回调用正常的返回值即可。
所述消息队列12具体可包括请求队列121及待推送队列122,其中所述请求队列121会成为所述流处理模块13的数据源,对于订阅了相应http请求业务的流处理模块,这类消息会推送给相应的流处理模块,其消息来源(即http请求)是所述httprestful接口11;所述待推送队列122则在外部程序订阅了相应的推送通知时,所述待推送队列122中的消息会推送到指定的接收者处,其消息来源(即业务处理结果)是所述流处理模块13中相应业务的最后一个业务处理模块132。
所述流处理模块13具体可包括所述入口模块131及若干所述业务处理模块132,优选地,还可以包括拓扑,拓扑的任务是建立所述入口模块131和所述业务处理模块132、所述业务处理模块132和所述业务处理模块132之间的逻辑结构;所述入口模块132负责从数据源读取http请求的请求数据,经过简单的处理和验证再交由所述业务处理模块132执行业务处理;所述业务处理模块132的任务是,将业务处理的流程打散为不同的模块,方便重用已有的模块,当然最主要的是,打散之后可以实现并行和流水线化。对于不需要并发或者无冗余硬件的环境,流水线化可以实现吞吐量的激增。
所述仲裁模块2的任务是做均衡负载,将http请求分散到不同的httprestful接口上,得益于完全的异步结构,服务器之间几乎不需要同步,使得所述仲裁模块2只需要根据服务器集群的负载情况来选择当前负载最轻的服务器作为闲置的服务器,并将所述http请求下发至闲置的服务器即可。
在本发明中,所述httprestful接口11在接收到所述仲裁模块2发送来的http请求后,会按照http请求表征的业务类型的不同将所述http请求发送到相对应的消息队列。如果需要在会话间返回,那么消息的内容会带上返回的消息队列名称。之后,所述httprestful接口11的处理程序会订阅这个制定的待推送队列并睡眠,直到业务处理结果通知到达或者超时,然后返回业务处理结果或者超时状态;如果不需要在会话期间返回,所述httprestful接口就直接返回成功状态即可。此处保障了完全的异步,使得cpu的计算时间得到有效的利用。
所述消息队列12会保持两类队列,请求队列121及待推送队列122,所述请求队列121会推送http请求的数据源给订阅了的入口模块131,所述待推送队列122则会由所述流处理模块13的最后一个环节得到业务处理结果后,将所述http请求的业务处理结果推送到数据源中指定的待推送队列中。
所述流处理模块13的拓扑由异构系统的应用者指定,而后所述入口模块131订阅了存储有http请求的数据源的所述请求队列121,在得到http请求的请求数据后交由所述流处理模块13处理,所述流处理模块13根据应用场景的不同,会将业务处理结果推送至所述待推送队列122,或者发送消息通知,或者写入缓存、数据库等。
进一步,所述仲裁模块2会得到不同服务器的一个特别大的流处理模块的通知,这个通知会轮询的将本服务器的状态信息发送至所述仲裁模块,这样所述仲裁模块就能很方便的知道哪一台服务器是最空闲的,从而实现合理的均衡负载,将新来的http请求发送至闲置的服务器。
而利用本发明的上述异构系统实现的流水线化的异步方案具体如下:
将用户的http请求提交至所述仲裁模块2,所述仲裁模块2根据系统的资源占用情况,将http请求下发至闲置的服务器;
所述业务处理模块132会根据当前服务器的实际情况,定时向所述仲裁模块2回报性能报告,为所述仲裁模块2提供均衡负载的判断依据;
所述httprestful接口11在得到所述http请求后,会将请求数据发送至所述消息队列12,根据会话是否需要等待结果,选择等待指定的待推送队列,或者直接返回成功状态;
所述入口模块131主要用来过滤http请求的请求数据的数据源,转换数据格式和验证数据合法性,然后将请求数据交给相关联的所述业务处理模块132;
所述业务处理模块132根据拓扑,在处理完本模块的内容后,将业务处理结果交给由拓扑指定的下一个业务处理模块,直到到达拓扑逻辑的末端,然后发送最终的业务处理结果至所述待推送队列122或者其他数据存储位置。
对于本发明的异构系统的扩展,由于整个架构是异构的和松散的,任何一个业务处理模块的相应能力不足,都可以在新加入的服务器上部署新的拷贝,然后订阅相关的数据源,就可以加强这一业务处理模块的处理能力,消息的唯一性和一致性由消息队列维护,维护的方式可以是唯一的guid(全局唯一标识符)。
对于本发明的异构系统的流水线化,由于整个业务处理被分散到了不同的模块,模块间只要不具备硬件竞争,就可以由拓扑指定为流水线化的,比如cpu的取址、译码、访存、执行和写回,这样的一个流程可以在拓扑上实现流水线化的并发。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (7)
1.一种异构系统,其特征在于,包括多个服务器以及一仲裁模块:
所述仲裁模块用于在接收到http请求后,将所述http请求发送至一闲置的服务器;
每个服务器均包括httprestful接口、消息队列以及流处理模块,所述闲置的服务器的httprestful接口用于在获取所述http请求后,将所述http请求的请求数据发送至所述消息队列;
所述流处理模块包括入口模块及多个业务处理模块,所述消息队列用于将所述请求数据推送至订阅所述http请求的入口模块,所述入口模块用于对所述请求数据进行数据处理,并将处理后的所述请求数据发送至所述业务处理模块,每个业务处理模块均用于对所述请求数据执行业务处理操作。
2.如权利要求1所述的异构系统,其特征在于,所述消息队列包括请求队列及待推送队列,所述请求队列用于存储所述http请求的请求数据,所述待推送队列用于从最后一个业务处理模块中接收业务处理操作的处理结果。
3.如权利要求2所述的异构系统,其特征在于,当有外部程序订阅所述http请求的推送通知时,所述待推送队列还用于将所述处理结果输出至所述外部程序。
4.如权利要求1所述的异构系统,其特征在于,所述httprestful接口还用于将所述http请求按照不同的业务类型发送至不同的消息队列。
5.如权利要求1所述的异构系统,其特征在于,所述httprestful接口为异步接口。
6.如权利要求1所述的异构系统,其特征在于,所述数据处理包括格式化处理以及数据验证。
7.如权利要求1所述的异构系统,其特征在于,所述业务处理操作包括推送操作及写入操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610044809.3A CN105681426B (zh) | 2016-01-22 | 2016-01-22 | 异构系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610044809.3A CN105681426B (zh) | 2016-01-22 | 2016-01-22 | 异构系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105681426A true CN105681426A (zh) | 2016-06-15 |
CN105681426B CN105681426B (zh) | 2019-04-09 |
Family
ID=56302248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610044809.3A Active CN105681426B (zh) | 2016-01-22 | 2016-01-22 | 异构系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105681426B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106993039A (zh) * | 2017-03-31 | 2017-07-28 | 深圳市金溢科技股份有限公司 | 通信方法、信息管理子系统、云平台及停车场管理系统 |
CN107608804A (zh) * | 2017-09-21 | 2018-01-19 | 山东浪潮云服务信息科技有限公司 | 一种任务处理系统及方法 |
CN107800790A (zh) * | 2017-10-24 | 2018-03-13 | 宁波森浦信息技术有限公司 | 一种统一数据服务系统及方法 |
CN108848037A (zh) * | 2018-05-31 | 2018-11-20 | 平安医疗科技有限公司 | 业务请求处理方法、装置、计算机设备和存储介质 |
CN111818131A (zh) * | 2020-06-17 | 2020-10-23 | 天津异乡好居网络科技有限公司 | 一种消息推送调度系统及方法 |
CN114449037A (zh) * | 2021-12-29 | 2022-05-06 | 航天信息股份有限公司 | 一种异步通信推送系统 |
CN114510299A (zh) * | 2020-11-16 | 2022-05-17 | 北京有限元科技有限公司 | 处理人工智能业务的方法、装置以及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741850A (zh) * | 2009-12-25 | 2010-06-16 | 北京邮电大学 | 面向混合网络服务的多任务并发执行系统及方法 |
US20130013688A1 (en) * | 2011-07-07 | 2013-01-10 | Cisco Technology, Inc. | System and method for providing a message and an event based video services control plane |
CN104780226A (zh) * | 2015-05-06 | 2015-07-15 | 成都麦子信息技术有限公司 | 一种在线教育平台 |
-
2016
- 2016-01-22 CN CN201610044809.3A patent/CN105681426B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741850A (zh) * | 2009-12-25 | 2010-06-16 | 北京邮电大学 | 面向混合网络服务的多任务并发执行系统及方法 |
US20130013688A1 (en) * | 2011-07-07 | 2013-01-10 | Cisco Technology, Inc. | System and method for providing a message and an event based video services control plane |
CN104780226A (zh) * | 2015-05-06 | 2015-07-15 | 成都麦子信息技术有限公司 | 一种在线教育平台 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106993039A (zh) * | 2017-03-31 | 2017-07-28 | 深圳市金溢科技股份有限公司 | 通信方法、信息管理子系统、云平台及停车场管理系统 |
CN107608804A (zh) * | 2017-09-21 | 2018-01-19 | 山东浪潮云服务信息科技有限公司 | 一种任务处理系统及方法 |
CN107800790A (zh) * | 2017-10-24 | 2018-03-13 | 宁波森浦信息技术有限公司 | 一种统一数据服务系统及方法 |
CN108848037A (zh) * | 2018-05-31 | 2018-11-20 | 平安医疗科技有限公司 | 业务请求处理方法、装置、计算机设备和存储介质 |
CN111818131A (zh) * | 2020-06-17 | 2020-10-23 | 天津异乡好居网络科技有限公司 | 一种消息推送调度系统及方法 |
CN114510299A (zh) * | 2020-11-16 | 2022-05-17 | 北京有限元科技有限公司 | 处理人工智能业务的方法、装置以及存储介质 |
CN114449037A (zh) * | 2021-12-29 | 2022-05-06 | 航天信息股份有限公司 | 一种异步通信推送系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105681426B (zh) | 2019-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105681426A (zh) | 异构系统 | |
US9307017B2 (en) | Member-oriented hybrid cloud operating system architecture and communication method thereof | |
US8756329B2 (en) | System and method for parallel multiplexing between servers in a cluster | |
CN107018042B (zh) | 用于在线服务系统的追踪方法及追踪系统 | |
JP6310461B2 (ja) | 分散型データグリッドクラスタにおけるスケーラブルなメッセージバスをサポートするシステムおよび方法 | |
CN101707543B (zh) | 一种支持多任务类型的企业媒体总线系统和方法 | |
JP6336988B2 (ja) | 使用要求の小バッチ処理のためのシステムおよび方法 | |
CN106663033B (zh) | 在事务中间件机器环境支持绕域和代理模型并更新服务信息以跨域消息传送的系统和方法 | |
US20150347305A1 (en) | Method and apparatus for outputting log information | |
WO2021190087A1 (zh) | 任务执行方法、装置、系统和服务器 | |
EP2321937A2 (en) | Load balancing for services | |
CN110427270B (zh) | 一种面向rdma网络下分布式连接算子的动态负载均衡方法 | |
CN112866421B (zh) | 基于分布式缓存以及nsq的智能合约运行方法及装置 | |
US8832215B2 (en) | Load-balancing in replication engine of directory server | |
CN108616398B (zh) | 一种基于dns负载均衡技术的容器动态缩容方法 | |
CN105976245A (zh) | 一种模拟交易系统及方法 | |
WO2024037629A1 (zh) | 区块链的数据整合方法、装置、计算机设备及存储介质 | |
CN110532106A (zh) | 进程间的通讯方法、装置、设备和存储介质 | |
KR101956320B1 (ko) | 트랜잭셔널 미들웨어 머신 환경에서 단일 포인트 병목을 방지하는 시스템 및 방법 | |
CN115878301A (zh) | 一种数据库网络负载性能的加速框架、加速方法及设备 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN106131162B (zh) | 一种基于iocp机制实现网络服务代理的方法 | |
CN114371935A (zh) | 网关处理方法、网关、设备及介质 | |
JP2009123202A (ja) | データを処理するためのプロセッサ‐サーバ・ハイブリッド・システムおよび方法 | |
JP2013543169A (ja) | ミドルウェアマシン環境を含むシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |