CN108874540A - 一种面向cpu密集型的vrp云服务系统的请求处理方法和系统 - Google Patents

一种面向cpu密集型的vrp云服务系统的请求处理方法和系统 Download PDF

Info

Publication number
CN108874540A
CN108874540A CN201810562146.3A CN201810562146A CN108874540A CN 108874540 A CN108874540 A CN 108874540A CN 201810562146 A CN201810562146 A CN 201810562146A CN 108874540 A CN108874540 A CN 108874540A
Authority
CN
China
Prior art keywords
message
vrp
message queue
winding displacement
iterations
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
Application number
CN201810562146.3A
Other languages
English (en)
Inventor
王新刚
张家瑞
张曼钰
高琪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Yun Bird Technology Co Ltd
Original Assignee
Beijing Yun Bird Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Yun Bird Technology Co Ltd filed Critical Beijing Yun Bird Technology Co Ltd
Priority to CN201810562146.3A priority Critical patent/CN108874540A/zh
Publication of CN108874540A publication Critical patent/CN108874540A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种面向CPU密集型的VRP云服务系统的请求处理方法和系统,其中该方法包括:消息产生步骤,将各个请求的业务系统的不同请求统一接收,再根据客户预先的设置,产生格式统一的求解消息,同时将求解消息推送到消息队列中;消息队列处理步骤,采用消息队列RabbitMQ进行处理;待解消息获取步骤,以消息消费者的角色启动,当空闲时从消息队列中主动拉取消息来求解;VRP系统启动和计算步骤,基于客户的求解问题复杂度,计算出合理的迭代次数作为计算参数;求解结果消息产生步骤,将VRP系统的求解结果组织成统一的结果消息推送到消息队列中;消息队列消费中间件处理步骤,定时从消息队列中拉取排线结果,然后推送到排线后端。从而,提高了服务系统的高可用性,并且提高了服务系统的CPU利用率。

Description

一种面向CPU密集型的VRP云服务系统的请求处理方法和系统
技术领域
本发明属计算机技术应用领域,具体涉及一种面向CPU密集型的VRP云服务系统的请求处理方法和系统。
背景技术
车辆路径问题(Vehicle Routing Problem,VRP),车辆路径问题是一种组合优化问题,它由Dantzig和Ramser在1959年共同提出。VRP是指一定数量的客户,各自有不同数量的货物需求,配送中心向客户提供货物,由一个车队负责分送货物,组织适当的行车路线,目标是使得客户的需求得到满足,并能在一定的约束下,达到诸如路程最短、成本最小、耗费时间最少等目的。VRP在交通、分配资源和后勤补给方面有很重要的应用。
但是,目前在VRP服务系统领域,服务请求需要占用大量的CPU时间,服务结果不能实时返回,并且对于大规模的并发请求场景,服务器也不能全量实时处理。
类似的服务调用场景通用的解决方案是采用异步的方式来完成,当大量的服务请求到来时,可能导致VRP系统服务不可用,而且对于不同规模的服务请求采用固定迭代次数限制,在一定程度上也会浪费大量的CPU资源。
发明内容
本发明的目的在于提供一种面向CPU密集型的VRP云服务系统的请求处理方法和系统,通过额外的双向队列缓冲机制,从而基于双向消息队列和根据问题规模动态配置迭代次数的机制来解决算力有限的问题。
为实现上述目的,本发明提供如下技术方案。
一种面向CPU密集型的VRP云服务系统的请求处理方法,包括:消息产生步骤,将各个请求的业务系统的不同请求统一接收,再根据客户预先的设置,产生格式统一的求解消息,同时将求解消息推送到消息队列中;消息队列处理步骤,采用消息队列RabbitMQ进行处理;待解消息获取步骤,以消息消费者的角色启动,当空闲时从消息队列中主动拉取消息来求解;VRP系统启动和计算步骤,基于客户的求解问题复杂度,计算出合理的迭代次数作为计算参数;求解结果消息产生步骤,将VRP系统的求解结果组织成统一的结果消息推送到消息队列中;消息队列消费中间件处理步骤,定时从消息队列中拉取排线结果,然后推送到排线后端。
进一步地,在所述待解消息获取步骤中,包括智能排线worker,并且可以通过启动更多的智能排线worker来应对更多的排线请求。
进一步地,在所述VRP系统启动和计算步骤中,可基于配送订单的数量,计算出合理的迭代次数作为计算参数。
进一步地,在所述VRP系统启动和计算步骤中,所采用的迭代次数规则如下:
M<=50时,T=5000;
50<M<=100时,T=10000;
100<M<=500时,T=20000;
500<M<=1000时,T=30000;
其中,M是订单数量,T是迭代次数。
本发明还提供一种面向CPU密集型的VRP云服务系统的请求处理系统,包括:消息产生模块,将各个请求的业务系统的不同请求统一接收,再根据客户预先的设置,产生格式统一的求解消息,同时将求解消息推送到消息队列中;消息队列,采用消息队列RabbitMQ;待解消息获取模块,以消息消费者的角色启动,当空闲时从消息队列中主动拉取消息来求解;VRP系统启动和计算模块,基于客户的求解问题复杂度,计算出合理的迭代次数作为计算参数;求解结果消息产生模块,将VRP系统的求解结果组织成统一的结果消息推送到消息队列中;消息队列消费中间件模块,定时从消息队列中拉取排线结果,然后推送到排线后端。
进一步地,在所述待解消息获取模块中,包括智能排线worker,并且可以通过启动更多的智能排线worker来应对更多的排线请求。
进一步地,其特征在于,在所述VRP系统启动和计算模块中,可基于配送订单的数量,计算出合理的迭代次数作为计算参数。
进一步地,在所述VRP系统启动和计算模块中,所采用的迭代次数规则如下:
M<=50时,T=5000;
50<M<=100时,T=10000;
100<M<=500时,T=20000;
500<M<=1000时,T=30000;
其中,M是订单数量,T是迭代次数。
与现有技术相比,本发明的核心是让VRP服务系统在高稳定性的前提下释放最大的CPU算力。因此,本发明具有如下有益效果:通过采用闲时拉取的机制,很好的保护了智能排线worker的稳定性;并且当有大量排线请求时,队列很好的缓冲了排线请求压力,智能排线worker有条不紊的进行排线处理;通过根据问题规模动态配置迭代次数,解决了算力有限的问题,避免了固定设置一个最大迭代次数值对于小规模问题的计算浪费;从而,提高了服务系统的高可用性,并且提高了服务系统的CPU利用率。
附图说明
图1是本发明的VRP云服务系统的请求处理流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
如图所示,本发明的面向CPU密集型的VRP云服务系统的请求处理方法,包括如下步骤。
①消息产生步骤
将各个请求的业务系统的不同请求统一接收,再根据客户预先的一些设置,产生格式统一的求解消息,同时求解消息会被推送到消息队列中。
②消息队列处理步骤
采用了开源的消息队列RabbitMQ进行处理。
③待解消息获取(待排线消息获取)步骤
该步骤会以消息消费者的角色启动,当空闲时从消息队列中主动拉取消息来求解,采用闲时拉取的机制,很好的保护了智能排线worker的稳定性。当有大量排线请求时,队列很好的缓冲了排线请求压力,智能排线worker有条不紊的进行排线处理。还可以通过启动更多的worker来应对更多的排线请求。
④VRP系统启动和计算(启动&计算)步骤
该步骤基于客户的求解问题复杂度,主要是配送订单的数量。计算出合理的迭代次数作为计算参数。
目前的迭代次数规则(订单数量M,迭代次数T):
M<=50时,T=5000;
50<M<=100时,T=10000;
100<M<=500时,T=20000;
500<M<=1000时,T=30000;
根据需要,可继续加入一些车辆种类数量和订单距离离散程度的参数来综合决定迭代次数。从而,避免了固定设置一个最大迭代次数值对于小规模问题的计算浪费。
⑤求解结果消息产生(产生结果返回消息)步骤
该步骤会把VRP系统的求解结果组织成统一的结果消息推送到消息队列中。
⑥消息队列消费中间件处理步骤
该步骤定时从消息队列中拉取排线结果,然后推送到排线后端(PHP)/排线后台服务(PHP)。
相应地,本发明的面向CPU密集型的VRP云服务系统的请求处理系统,包括如下模块。
①消息产生模块
将各个请求的业务系统的不同请求统一接收,再根据客户预先的一些设置,产生格式统一的求解消息,同时求解消息会被推送到消息队列中。
②消息队列模块
采用了开源的消息队列RabbitMQ。
③待解消息获取(待排线消息获取)模块
该模块会以消息消费者的角色启动,当空闲时从消息队列中主动拉取消息来求解,采用闲时拉取的机制,很好的保护了智能排线worker的稳定性。当有大量排线请求时,队列很好的缓冲了排线请求压力,智能排线worker有条不紊的进行排线处理。还可以通过启动更多的worker来应对更多的排线请求。
④VRP系统启动和计算(启动&计算)模块
该模块基于客户的求解问题复杂度,主要是配送订单的数量。计算出合理的迭代次数作为计算参数。
目前的迭代次数规则(订单数量M,迭代次数T):
M<=50时,T=5000;
50<M<=100时,T=10000;
100<M<=500时,T=20000;
500<M<=1000时,T=30000;
根据需要,可继续加入一些车辆种类数量和订单距离离散程度的参数来综合决定迭代次数。从而,避免了固定设置一个最大迭代次数值对于小规模问题的计算浪费。
⑤求解结果消息产生(产生结果返回消息)模块
该模块会把VRP系统的求解结果组织成统一的结果消息推送到消息队列中。
⑥消息队列消费中间件
该模块定时从消息队列中拉取排线结果,然后推送到排线后端(PHP)/排线后台服务(PHP)。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (8)

1.一种面向CPU密集型的VRP云服务系统的请求处理方法,包括:消息产生步骤,将各个请求的业务系统的不同请求统一接收,再根据客户预先的设置,产生格式统一的求解消息,同时将求解消息推送到消息队列中;消息队列处理步骤,采用消息队列RabbitMQ进行处理;待解消息获取步骤,以消息消费者的角色启动,当空闲时从消息队列中主动拉取消息来求解;VRP系统启动和计算步骤,基于客户的求解问题复杂度,计算出合理的迭代次数作为计算参数;求解结果消息产生步骤,将VRP系统的求解结果组织成统一的结果消息推送到消息队列中;消息队列消费中间件处理步骤,定时从消息队列中拉取排线结果,然后推送到排线后端。
2.根据权利要求1所述的请求处理方法,其特征在于,在所述待解消息获取步骤中,包括智能排线worker,并且可以通过启动更多的智能排线worker来应对更多的排线请求。
3.根据权利要求1所述的请求处理方法,其特征在于,在所述VRP系统启动和计算步骤中,可基于配送订单的数量,计算出合理的迭代次数作为计算参数。
4.根据权利要求2所述的请求处理方法,其特征在于,在所述VRP系统启动和计算步骤中,所采用的迭代次数规则如下:
M<=50时,T=5000;
50<M<=100时,T=10000;
100<M<=500时,T=20000;
500<M<=1000时,T=30000;
其中,M是订单数量,T是迭代次数。
5.一种面向CPU密集型的VRP云服务系统的请求处理系统,包括:消息产生模块,将各个请求的业务系统的不同请求统一接收,再根据客户预先的设置,产生格式统一的求解消息,同时将求解消息推送到消息队列中;消息队列,采用消息队列RabbitMQ;待解消息获取模块,以消息消费者的角色启动,当空闲时从消息队列中主动拉取消息来求解;VRP系统启动和计算模块,基于客户的求解问题复杂度,计算出合理的迭代次数作为计算参数;求解结果消息产生模块,将VRP系统的求解结果组织成统一的结果消息推送到消息队列中;消息队列消费中间件模块,定时从消息队列中拉取排线结果,然后推送到排线后端。
6.根据权利要求1所述的请求处理系统,其特征在于,在所述待解消息获取模块中,包括智能排线worker,并且可以通过启动更多的智能排线worker来应对更多的排线请求。
7.根据权利要求1所述的请求处理系统,其特征在于,在所述VRP系统启动和计算模块中,可基于配送订单的数量,计算出合理的迭代次数作为计算参数。
8.根据权利要求7所述的请求处理系统,其特征在于,在所述VRP系统启动和计算模块中,所采用的迭代次数规则如下:
M<=50时,T=5000;
50<M<=100时,T=10000;
100<M<=500时,T=20000;
500<M<=1000时,T=30000;
其中,M是订单数量,T是迭代次数。
CN201810562146.3A 2018-06-04 2018-06-04 一种面向cpu密集型的vrp云服务系统的请求处理方法和系统 Pending CN108874540A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810562146.3A CN108874540A (zh) 2018-06-04 2018-06-04 一种面向cpu密集型的vrp云服务系统的请求处理方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810562146.3A CN108874540A (zh) 2018-06-04 2018-06-04 一种面向cpu密集型的vrp云服务系统的请求处理方法和系统

Publications (1)

Publication Number Publication Date
CN108874540A true CN108874540A (zh) 2018-11-23

Family

ID=64336447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810562146.3A Pending CN108874540A (zh) 2018-06-04 2018-06-04 一种面向cpu密集型的vrp云服务系统的请求处理方法和系统

Country Status (1)

Country Link
CN (1) CN108874540A (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101235296A (zh) * 2008-01-02 2008-08-06 中南大学 异常工况下基于蚁群算法的焦炉作业优化调度方法
CN101477642A (zh) * 2008-12-31 2009-07-08 中山大学 基于蚁群算法的飞机进港调度方法
CN104065540A (zh) * 2014-07-11 2014-09-24 网之易信息技术(北京)有限公司 一种数据监控系统和方法
CN104378221A (zh) * 2013-08-14 2015-02-25 沈阳中科博微自动化技术有限公司 应用于集成电路生产线监控系统的异步调用方法
CN104616070A (zh) * 2015-01-15 2015-05-13 北京农业信息技术研究中心 一种物流配送路径规划方法及装置
CN104700251A (zh) * 2015-03-16 2015-06-10 华南师范大学 一种车辆调度问题的改进最大-最小蚁群优化方法及系统
CN104978521A (zh) * 2014-04-10 2015-10-14 北京启明星辰信息安全技术有限公司 一种实现恶意代码标注的方法及系统
CN105825358A (zh) * 2016-03-16 2016-08-03 上海久耶供应链管理有限公司 货物配送的车辆调度方法
CN107172601A (zh) * 2017-04-20 2017-09-15 努比亚技术有限公司 一种应用消息管理平台及方法
CN107545323A (zh) * 2017-08-17 2018-01-05 深圳大学 商品的物流配送方法、装置、设备及存储介质
CN108052398A (zh) * 2017-12-12 2018-05-18 苏州比可网络科技有限公司 一种订单处理状态的反馈方法及聚合支付平台

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101235296A (zh) * 2008-01-02 2008-08-06 中南大学 异常工况下基于蚁群算法的焦炉作业优化调度方法
CN101477642A (zh) * 2008-12-31 2009-07-08 中山大学 基于蚁群算法的飞机进港调度方法
CN104378221A (zh) * 2013-08-14 2015-02-25 沈阳中科博微自动化技术有限公司 应用于集成电路生产线监控系统的异步调用方法
CN104978521A (zh) * 2014-04-10 2015-10-14 北京启明星辰信息安全技术有限公司 一种实现恶意代码标注的方法及系统
CN104065540A (zh) * 2014-07-11 2014-09-24 网之易信息技术(北京)有限公司 一种数据监控系统和方法
CN104616070A (zh) * 2015-01-15 2015-05-13 北京农业信息技术研究中心 一种物流配送路径规划方法及装置
CN104700251A (zh) * 2015-03-16 2015-06-10 华南师范大学 一种车辆调度问题的改进最大-最小蚁群优化方法及系统
CN105825358A (zh) * 2016-03-16 2016-08-03 上海久耶供应链管理有限公司 货物配送的车辆调度方法
CN107172601A (zh) * 2017-04-20 2017-09-15 努比亚技术有限公司 一种应用消息管理平台及方法
CN107545323A (zh) * 2017-08-17 2018-01-05 深圳大学 商品的物流配送方法、装置、设备及存储介质
CN108052398A (zh) * 2017-12-12 2018-05-18 苏州比可网络科技有限公司 一种订单处理状态的反馈方法及聚合支付平台

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
袁先亮: "大规模网点物流路径规划系统的研究与应用", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊 )》 *

Similar Documents

Publication Publication Date Title
CN106094748B (zh) 基于mes系统的机械产品装配车间物料呼叫与配送管理方法
CN103164279B (zh) 云计算资源分配方法和系统
CN106681835B (zh) 资源分配的方法和资源管理器
CN107025139A (zh) 一种基于云计算的高性能计算调度框架
CN106453146B (zh) 私有云计算资源的分配方法、系统、设备和可读存储介质
CN102904961A (zh) 一种云计算资源调度方法及系统
CN104331792A (zh) 一种物流配送云管理系统
CN105516024B (zh) 一种基于队列的任务流量监控方法及系统
CN106209682A (zh) 业务调度方法、装置和系统
CN106603711B (zh) 通信方法、系统及消息服务器
RU2011143868A (ru) Способ, устройство и система связи
CN101909048A (zh) 一种集中式转码处理方法和装置
CN104731657A (zh) 一种资源调度方法和系统
CN104735095A (zh) 一种云计算平台作业调度方法及装置
CN103095684A (zh) 获取关注用户聚合信息的方法、装置及系统
CN112860974A (zh) 计算资源的调度方法、装置、电子设备和存储介质
CN114500543B (zh) 一种基于分布式的弹性边缘采集系统及其应用方法
CN103067486B (zh) 基于PaaS平台的大数据处理方法
US10097656B2 (en) Control method and apparatus for publish/subscribe systems
CN102143386A (zh) 一种基于图形处理器的的流媒体服务器加速方法
CN113986534A (zh) 任务调度方法、装置、计算机设备和计算机可读存储介质
CN104657834A (zh) 基于移动互联网的物流管理系统
CN114155026A (zh) 一种资源分配方法、装置、服务器及存储介质
CN116643844B (zh) 面向电力超算云资源自动扩展的智能化管理系统及方法
CN114567519A (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: 20181123

RJ01 Rejection of invention patent application after publication