CN102724222A - 基于esb的流量控制方法 - Google Patents
基于esb的流量控制方法 Download PDFInfo
- Publication number
- CN102724222A CN102724222A CN2011100776324A CN201110077632A CN102724222A CN 102724222 A CN102724222 A CN 102724222A CN 2011100776324 A CN2011100776324 A CN 2011100776324A CN 201110077632 A CN201110077632 A CN 201110077632A CN 102724222 A CN102724222 A CN 102724222A
- Authority
- CN
- China
- Prior art keywords
- signal
- esb
- pond
- service
- flow control
- 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
Abstract
本发明公开了一种基于ESB的流量控制方法,属于计算机技术领域,该方法包括以下步骤:S1、定期向信号池发放流量控制信号,以保证信号池中有预设数量的信号,所述信号池包括全局信号池和服务信号池,所述全局信号池中存储全局流量控制信号,所述服务信号池中存储单个服务流量控制信号;S2、当企业服务总线ESB接收到服务请求时,对ESB进行全局流量控制,然后对ESB进行单个服务流量控制。本发明避免了ESB系统运行中出现ESB系统全局或个别服务访问频度峰值过高给生产系统带来不稳定因素,并能有效提高流量控制的精确性,减少流量控制本身对系统资源的占用。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种基于ESB的流量控制的方法。
背景技术
ESB(Enterprise Service Bus,企业服务总线)作为SOA(Service-oriented architecture,面向服务架构)落地平台在企业中的应用越来越多,ESB作为服务提供者和服务消费者之间的中介将企业中各种各样的应用集成一起来。
企业应用作为ESB服务一旦发布到ESB后,可供企业内所有其他应用调用,此时,服务质量控制的问题就突出出来。为了保证服务的质量,通过流量控制的机制来保证服务请求不会在单位时间内产生过多请求,影响服务提供方对其他应用系统提供服务。同时随着接入的服务越来越多,企业不希望某个特定的实时性要求不高的服务由于突发的大交易量,导致影响其他服务的服务质量。所以需要对此类服务进行流量控制。例如:一个数据备份服务,通常此类服务的实时性要求不高,但可能会占用较多的CPU或网络资源,从而导致生产环境中其他应用的服务质量下降。再例如:一个接入到ESB的企业旧有的CRM(客户关系管理)系统,其本身设计或运行环境由于初期的规划并没有预见到接入ESB后的访问量,所以必须将其单位时间内访问量控制在可接受的阀值内,从而避免由于过多的访问导致CRM系统崩溃。
同时,ESB作为企业信息系统中的服务提供者和服务消费者之间的中介,本身也是一个软件。随着时间的推移,ESB集成的应用会越来越多,本身占用系统资源也会越来越多,如果有其他系统和ESB平台运行在同一环境中,ESB平台占用过多资源会对其他系统正常运行造成影响,为了避免这种情况的出现,需要对ESB平台进行全局流量控制。
通常的流量控制方法都会为服务设定一个阀值,在服务提供者被请求服务时,ESB查看服务提供者在本周期内是否已经达到了预定阀值,如果已经达到预定阀值则会阻塞本次服务请求或告知服务消费者服务提供者繁忙。
另外,现有流量控制方法通常是当服务接受访问时,ESB通过查看服务提供者的服务历史记录,来计算当前周期内该服务流量是否达到预定阀值,这种计算方法首先要求每次服务调用都要记录本次调用时间,以便再次调用时作为计算流量是否达到预定阀值的依据。这种方法有两个缺点:1)计算方法复杂,尤其服务并发的情况下的计算更加复杂,计算本身也占用时间,很难达到精确流量控制的效果,经常和预定阀值有误差;2)由于要记录历史记录,复杂的计算会相对增加对系统资源的占用。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:提高流量控制的精确度,并且减少流量控制过程中对系统资源的占用。
(二)技术方案
为了解决上述技术问题,本发明提供了一种基于ESB的流量控制方法,该方法包括以下步骤:
S1、定期向信号池发放流量控制信号,以保证信号池中有预设数量的信号,所述信号池包括全局信号池和服务信号池,所述全局信号池中存储全局流量控制信号,所述服务信号池中存储单个服务流量控制信号;
S2、当企业服务总线ESB接收到服务请求时,对ESB进行全局流量控制,然后对ESB进行单个服务流量控制。
其中,步骤S1具体包括步骤:
S101,查询所述信号池中可用信号的数量;
S102,判断所述信号池内可用信号的数量a是否小于预定阀值b;如果a<b,则先执行步骤S103,再执行步骤S104,否则直接执行步骤S104;
S103,向信号池内发放b-a个信号,以使得信号池中可用信号的数量a增加到预定阀值b;
S104,等待预设周期后回到S101步骤重新进行新一轮信号发放。
其中,步骤S2具体为:ESB接收到服务请求时,首先检查是否需要全局流量控制,如果需要全局流量控制,则从全局信号池中申请信号,申请到信号或不需要全局流量控制时,检查被请求的服务是否需要服务流量控制;如果需要服务流量控制,则从服务信号池中申请信号,申请到信号或不需要服务流量控制时,则调用被请求的服务。
优选地,申请信号的方式为:
从全局信号池或服务信号池中申请可用信号;如果申请到可用信号,则全局信号池或服务信号池内可用信号数量减1;如果申请不到可用信号,则等待指定时间后继续申请,直到申请到可用信号。
(三)有益效果
本发明通过流量控制信号发放和申请的方式达到了对ESB系统进行全局流量控制或单个服务流量控制的目的,避免了系统运行中出现ESB系统全局或个别服务访问频度峰值过高给生产系统带来不稳定因素,并有效提高流量控制的精确性,减少流量控制本身对系统资源的占用。
附图说明
图1为本发明的方法流程图;
图2是图1中步骤S1的流程图;
图3为图1中步骤S2的流程图。
具体实施方式
下面结合附图和实施用例,对本发明的具体实施方式作进一步详细描述。以下实施用例用于说明本发明,但不用来限制本发明的范围。
如背景技术中所提到的,传统的方法,通常是计算服务消费历史统计数据的方式来计算当前流量是否达到阀值,这种方法计算复杂,而且通常会有统计数据相对实际数据滞后的缺陷,而本发明的流量控制信号发放和申请的方式,不依赖于服务消费历史数据,因此克服了传统方法的缺陷。下面具体描述本发明。
图1为本发明的方法流程图,包括以下步骤:
S1、定期向信号池发放流量控制信号(以下简称为信号),以保证信号池中有预设数量的信号,所述信号池包括全局信号池和服务信号池,所述全局信号池中存储全局流量控制信号,所述服务信号池中存储单个服务流量控制信号;全局流量控制信号的作用:用于控制ESB全局总流量,当ESB系统(可以简称为ESB)需要全局流量控制时,只有申请到全局流量控制信号,注册到ESB上的服务才被允许提供相应的功能。单个服务流量控制信号作用:用于控制单个服务流量,当ESB系统需要单个服务流量控制时,只有申请到此项单个服务(该项单个服务已注册到ESB上)的流量控制信号,此项单个服务才提供相应的功能。
S2、当ESB接收到服务请求时,通过全局流量控制逻辑对ESB进行全局流量控制,然后通过单个服务流量控制逻辑对ESB进行单个服务流量控制。
图2为步骤S1的具体流程图,如图2所示,包括以下步骤:
S101,查询信号池中可用信号的数量;
S102,判断信号池内可用信号的数量a是否比预定阀值b小;如果a<b,则执行步骤S103,否则直接执行步骤S104;
S103,向信号池内发放b-a个信号,以使得信号池中可用信号的数量a增加到预定阀值,如:对于全局信号池,预定阀值为1000,此时全局信号池中可用信号数量为550,则向全局信号池内发放1000-550=450个信号,对于服务信号池也如此;
S104,信号发放完毕或不需要发放信号时,等待预设周期(例如1秒)后回到S101步骤重新进行新一轮信号发放。
图3为本发明流量控制(包括全局流量控制和单个服务流量控制)流程图,如图3所示,包括以下步骤:
步骤S201,ESB接收到一个服务请求(例如来自服务消费者ConsumerA的服务请求),此服务请求要求注册到ESB上的服务ServiceA提供相应的功能;
步骤S202,判断是否需要全局流量控制,如果需要,执行步骤S203,否则执行步骤S205;
步骤S203,从全局信号池申请全局流量控制信号,至此完成了全局流量控制流程;
步骤S204,判断是否申请到了信号,如果申请到信号则执行步骤S205,否则指定等待时间(如200毫秒)后回到步骤203重新申请信号;
步骤S205,判断是否需要服务ServiceA流量控制,如果需要则执行步骤S206,否则执行步骤S208;
步骤S206,从服务ServiceA信号池申请单个服务流量控制信号;
步骤S207,判断是否从服务ServiceA信号池申请到了信号,如果申请到信号或不需要服务流量控制时则执行步骤S208,否则等待指定时间后,执行步骤S206重新申请信号;
步骤S208,从服务ServiceA信号池申请到信号后,执行服务(ServiceA)来提供相应的服务。
上述步骤S203~S204为全局流量控制流程,步骤S205~S208为单个服务流量控制流程。
本发明通过服务消费者请求服务,ESB获得可执行信号,从而达到对ESB系统或单个服务流量控制的目的,避免ESB系统运行中出现ESB系统或个别服务访问频度峰值过高给生产系统带来不稳定因素,并有效提高流量控制的精确性,减少流量控制本身对系统资源的占用。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (4)
1.一种基于ESB的流量控制方法,其特征在于,该方法包括以下步骤:
S1、定期向信号池发放流量控制信号,以保证信号池中有预设数量的信号,所述信号池包括全局信号池和服务信号池,所述全局信号池中存储全局流量控制信号,所述服务信号池中存储单个服务流量控制信号;
S2、当企业服务总线ESB接收到服务请求时,首先对ESB进行全局流量控制,然后对ESB进行单个服务流量控制。
2.如权利要求1所述的方法,其特征在于,步骤S1具体包括步骤:
S101,查询所述信号池中可用信号的数量;
S102,判断所述信号池内可用信号的数量a是否小于预定阀值b;如果a<b,则先执行步骤S103,再执行步骤S104,否则直接执行步骤S104;
S103,向信号池内发放b-a个信号,以使得信号池中可用信号的数量a增加到预定阀值b;
S104,等待预设周期后回到S101步骤重新进行新一轮信号发放。
3.如权利要求1或2所述的方法,其特征在于,步骤S2具体为:ESB接收到服务请求时,首先检查是否需要全局流量控制,如果需要全局流量控制,则从全局信号池中申请全局流量控制信号,申请到全局流量控制信号或不需要全局流量控制时,检查被请求的服务是否需要服务流量控制;如果需要服务流量控制,则从服务信号池中申请单个服务流量控制信号,申请到单个服务流量控制信号或不需要服务流量控制时,则调用被请求的服务。
4.如权利要求3所述的方法,其特征在于,申请信号的方式为:
从全局信号池或服务信号池中申请可用信号,如果申请到可用信号,则全局信号池或服务信号池内可用信号数量减1;如果申请不到可用信号,则等待指定时间后继续申请,直到申请到可用信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100776324A CN102724222A (zh) | 2011-03-29 | 2011-03-29 | 基于esb的流量控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100776324A CN102724222A (zh) | 2011-03-29 | 2011-03-29 | 基于esb的流量控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102724222A true CN102724222A (zh) | 2012-10-10 |
Family
ID=46949884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100776324A Pending CN102724222A (zh) | 2011-03-29 | 2011-03-29 | 基于esb的流量控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102724222A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107623577A (zh) * | 2016-07-14 | 2018-01-23 | 深圳市远行科技股份有限公司 | 服务调用流量控制方法及装置 |
CN112822080A (zh) * | 2020-12-31 | 2021-05-18 | 中国人寿保险股份有限公司上海数据中心 | 一种基于soa架构的总线系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1536815A (zh) * | 2003-04-03 | 2004-10-13 | 华为技术有限公司 | 采用令牌漏桶进行报文限流的方法 |
CN1787483A (zh) * | 2004-12-10 | 2006-06-14 | 华为技术有限公司 | 一种流量控制方法 |
CN101350765A (zh) * | 2007-07-20 | 2009-01-21 | 中国科学院声学研究所 | 一种网络流量检测方法 |
-
2011
- 2011-03-29 CN CN2011100776324A patent/CN102724222A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1536815A (zh) * | 2003-04-03 | 2004-10-13 | 华为技术有限公司 | 采用令牌漏桶进行报文限流的方法 |
CN1787483A (zh) * | 2004-12-10 | 2006-06-14 | 华为技术有限公司 | 一种流量控制方法 |
CN101350765A (zh) * | 2007-07-20 | 2009-01-21 | 中国科学院声学研究所 | 一种网络流量检测方法 |
Non-Patent Citations (1)
Title |
---|
姬楷: "基于SOA的企业服务总线研究及其应用", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107623577A (zh) * | 2016-07-14 | 2018-01-23 | 深圳市远行科技股份有限公司 | 服务调用流量控制方法及装置 |
CN107623577B (zh) * | 2016-07-14 | 2022-10-14 | 深圳市远行科技股份有限公司 | 服务调用流量控制方法及装置 |
CN112822080A (zh) * | 2020-12-31 | 2021-05-18 | 中国人寿保险股份有限公司上海数据中心 | 一种基于soa架构的总线系统 |
CN112822080B (zh) * | 2020-12-31 | 2022-09-16 | 中国人寿保险股份有限公司上海数据中心 | 一种基于soa架构的总线系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8656404B2 (en) | Statistical packing of resource requirements in data centers | |
Yang et al. | An algorithm in SwinDeW-C for scheduling transaction-intensive cost-constrained cloud workflows | |
US20150007185A1 (en) | Task Execution By Idle Resources In Grid Computing System | |
CN102037681A (zh) | 对于管理系统的计算资源进行管理的方法和装置 | |
US10037501B2 (en) | Energy management costs for a data center | |
CN103902333A (zh) | 移动终端自动卸载应用的方法及移动终端 | |
CN104113576A (zh) | 一种客户端的更新方法及装置 | |
CN110138883B (zh) | 混合云资源分配方法和装置 | |
CN103595566B (zh) | 一种检测空闲ip地址的方法及装置 | |
CN101227416A (zh) | 一种通信网络中链路带宽分配方法 | |
CN104301257B (zh) | 一种资源分配方法、装置及设备 | |
US20090083750A1 (en) | Method and apparatus for controlling message traffic license | |
JP5868442B2 (ja) | 因果関係のプログラム実行容量修正への結論付け、およびプログラム実行容量の動的な修正 | |
WO2013082742A1 (zh) | 资源调度方法、装置和系统 | |
CN104281489A (zh) | Soa架构下的多线程请求方法及系统 | |
CN102904942B (zh) | 服务资源控制系统和服务资源控制方法 | |
CN112235373A (zh) | 基于应用ai的云桌面调度系统及其调度方法 | |
CN106383671A (zh) | 一种块设备存储集群扩容系统及方法 | |
CN102724222A (zh) | 基于esb的流量控制方法 | |
CN114443310A (zh) | 资源调度方法、装置、设备、介质和程序产品 | |
US8140552B2 (en) | Method and apparatus for optimizing lead time for service provisioning | |
CN102222036A (zh) | 一种自动化测试方法和设备 | |
CN102811154B (zh) | 资源获取方法与网络服务器系统 | |
CN113238875A (zh) | 一种基于队列的请求频次控制系统及控制方法 | |
CN109308219B (zh) | 任务处理方法、装置及分布式计算机系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20121010 |