CN105187503B - 一种支持数据分区的服务连接方法及系统 - Google Patents
一种支持数据分区的服务连接方法及系统 Download PDFInfo
- Publication number
- CN105187503B CN105187503B CN201510485016.0A CN201510485016A CN105187503B CN 105187503 B CN105187503 B CN 105187503B CN 201510485016 A CN201510485016 A CN 201510485016A CN 105187503 B CN105187503 B CN 105187503B
- Authority
- CN
- China
- Prior art keywords
- division code
- service
- layer
- module
- required parameter
- 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.)
- Active
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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/567—Integrating service provisioning from a plurality of service providers
-
- 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
Abstract
本发明涉及一种支持数据分区的服务连接方法及系统,包括以下步骤:前台展示层向任一服务分发层发送服务请求;服务分发层根据服务请求计算请求访问的分区的分区代码,把分区代码加入请求参数中,将请求参数根据负载均衡策略转发给中间件层;中间件层根据请求参数中的分区代码连接分区代码指定的分区数据库;分区数据库执行其内部的业务代码,并返回执行结果给前台展示层。本发明实现了集群节点可以相互替换,以及进行负载均衡分发请求;集群中可以在线删除或增加节点,对于计算能力的平滑扩展提供支持;为电信运营商业务支撑系统向低成本建设过渡提供支持。
Description
技术领域
本发明涉及软件中间件技术领域,特别涉及一种支持数据分区的服务连接方法及系统。
背景技术
电信运营商的业务支撑系统中,普遍使用了传统的软件中间件系统,该系统是为集中提供服务并运行于可靠的小型机平台而设计的。随着计算机软硬件技术的发展,使用基于x86PC级硬件以及Linux软件系统也可能提供同样甚至更高运算能力的服务,并为能提供平滑扩展计算能力做好准备。
同时由于电信运营商的业务逻辑庞大繁杂且变更频繁,基于这些业务逻辑的代码也因此非常繁多,这为业务向更新的技术平台移植造成了困难。
为兼顾“平滑扩展计算能力”和“避免大规模移植代码”两点要求,我们尝试基于传统中间件软件平台搭建可平滑增删节点的中间件集群。由于x86PC级硬件的单点可靠性较小型机系统要低,要解决的关键问题是在节点失效时能使使用集群服务的外部系统尽量不受影响。为能是集群节点能相互替代并负载分担,要求各节点能部署完全一致,但现有的系统中仍然使用传统的数据库,并且业务数据水平切分到多个数据库实例中(数据分区)。
现有系统中中间件层对于数据分区的支持,是为每个分区分配固定的中间件实例,即一个中间件实例只固定访问其中一个分区数据库。
发明内容
本发明所要解决的技术问题是提供一种能使一个中间件实例访问任一分区数据库的支持数据分区的服务连接方法及系统。
本发明解决上述技术问题的技术方案如下:一种支持数据分区的服务连接方法,包括以下步骤:
前台展示层向任一服务分发层发送服务请求;
服务分发层根据服务请求计算请求访问的分区的分区代码,把分区代码加入请求参数中,将请求参数根据负载均衡策略转发给中间件层;
中间件层根据请求参数中的分区代码连接分区代码指定的分区数据库;
分区数据库执行其内部的业务代码,并返回执行结果给前台展示层。
本发明的有益效果是:本发明实现了集群节点可以相互替换,以及进行负载均衡分发请求;集群中可以在线删除或增加节点,对于计算能力的平滑扩展提供支持;为电信运营商业务支撑系统向低成本建设过渡提供支持。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述中间件层根据请求参数中的分区代码连接分区代码指定的分区数据库具体为:
解析请求参数,得到请求访问的分区的分区代码;
从预设的中间件服务配置文件中获取与服务请求对应的数据库标签及数据库连接参数,根据数据库标签、数据库连接参数和分区代码建立对应分区的数据库连接。
进一步,所述中间件层根据请求参数中的分区代码连接分区代码指定的分区数据库中还包括:中间件层调用分区数据库中与请求参数对应的业务模块,并向业务模块中传入请求参数及数据库连接参数。
进一步,所述中间件层根据请求参数中的分区代码连接分区代码指定的分区数据库中还包括:所述中间件层将分区数据库返回的执行结果进行封装。
进一步,所述解析请求参数,得到请求访问的分区的分区代码进一步为:如果请求参数中包含分区代码,则使用该包含的分区代码;否则,从预设的中间件服务配置文件中获取默认的分区代码。
进一步,一种支持数据分区的服务连接系统,包括发送模块、计算模块、连接模块和执行模块;
所述发送模块,用于使前台展示层向任一服务分发层发送服务请求;
所述计算模块,用于使服务分发层根据服务请求计算请求访问的分区的分区代码,把分区代码加入请求参数中,将请求参数根据负载均衡策略转发给中间件层;
所述连接模块,用于使中间件层根据请求参数中的分区代码连接分区代码指定的分区数据库;
所述执行模块,用于分区数据库执行其内部的业务代码,并返回执行结果给前台展示层。
进一步,所述连接模块包括解析模块和获取建立模块;
所述解析模块,用于解析请求参数,得到请求访问的分区的分区代码;
所述获取建立模块,用于从预设的中间件服务配置文件中获取与服务请求对应的数据库标签及数据库连接参数,根据数据库标签、数据库连接参数和分区代码建立对应分区的数据库连接。
进一步,所述连接模块还包括:调用模块,用于使中间件层调用分区数据库中与请求参数对应的业务模块,并向业务模块中传入请求参数及数据库连接参数。
进一步,所述连接模块还包括:封装模块,用于使所述中间件层将分区数据库返回的执行结果进行封装。
进一步,所述解析模块进一步用于:如果请求参数中包含分区代码,则使用该包含的分区代码;否则,从预设的中间件服务配置文件中获取默认的分区代码。
附图说明
图1为本发明方法步骤流程图;
图2为本发明系统结构图。
附图中,各标号所代表的部件列表如下:
1、发送模块,2、计算模块,3、连接模块,3-1、解析模块,3-2、获取建立模块,3-3、调用模块,3-4、封装模块,4、执行模块。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
实施例1
如图1所示,一种支持数据分区的服务连接方法,包括以下步骤:
前台展示层向任一服务分发层发送服务请求;
服务分发层根据服务请求计算请求访问的分区的分区代码,把分区代码加入请求参数中,将请求参数根据负载均衡策略转发给中间件层;
中间件层根据请求参数中的分区代码连接分区代码指定的分区数据库;
分区数据库执行其内部的业务代码,并返回执行结果给前台展示层。
所述中间件层根据请求参数中的分区代码连接分区代码指定的分区数据库具体为:
解析请求参数,得到请求访问的分区的分区代码;
从预设的中间件服务配置文件中获取与服务请求对应的数据库标签及数据库连接参数,根据数据库标签、数据库连接参数和分区代码建立对应分区的数据库连接。
所述中间件层根据请求参数中的分区代码连接分区代码指定的分区数据库中还包括:中间件层调用分区数据库中与请求参数对应的业务模块,并向业务模块中传入请求参数及数据库连接参数。
所述中间件层根据请求参数中的分区代码连接分区代码指定的分区数据库中还包括:所述中间件层将分区数据库返回的执行结果进行封装。
所述解析请求参数,得到请求访问的分区的分区代码进一步为:如果请求参数中包含分区代码,则使用该包含的分区代码;否则,从预设的中间件服务配置文件中获取默认的分区代码。
如图2所示,一种支持数据分区的服务连接系统,包括发送模块1、计算模块2、连接模块3和执行模块4;
所述发送模块1,用于使前台展示层向任一服务分发层发送服务请求;
所述计算模块2,用于使服务分发层根据服务请求计算请求访问的分区的分区代码,把分区代码加入请求参数中,将请求参数根据负载均衡策略转发给中间件层;
所述连接模块3,用于使中间件层根据请求参数中的分区代码连接分区代码指定的分区数据库;
所述执行模块4,用于分区数据库执行其内部的业务代码,并返回执行结果给前台展示层。
所述连接模块3包括解析模块3-1和获取建立模块3-2;
所述解析模块3-1,用于解析请求参数,得到请求访问的分区的分区代码;
所述获取建立模块3-2,用于从预设的中间件服务配置文件中获取与服务请求对应的数据库标签及数据库连接参数,根据数据库标签、数据库连接参数和分区代码建立对应分区的数据库连接。
所述连接模块3还包括:调用模块3-3,用于使中间件层调用分区数据库中与请求参数对应的业务模块,并向业务模块中传入请求参数及数据库连接参数。
所述连接模块3还包括:封装模块3-4,用于使所述中间件层将分区数据库返回的执行结果进行封装。
所述解析模块3-1进一步用于:如果请求参数中包含分区代码,则使用该包含的分区代码;否则,从预设的中间件服务配置文件中获取默认的分区代码。
“前台展示层”接入任意一个服务分发层,服务分发层则通过每一个从前台展示层发送的服务请求中的数据,计算请求需要访问的分区,把分区代号加入请求参数中,根据负载均衡策略转发给中间件服务,中间件则根据传入参数中的分区代码连接指定的分区数据库,并执行要求的业务代码,然后原路返回执行结果。
在中间件系统中,业务模块是实际处理业务逻辑的部分,其不参与数据库分区的选择,而只是使用中间件框架提供的数据库连接,这样的设计使得可以使用统一的框架层来进行分区选择。
中间件框架层选择分区并建立数据库连接的过程如下:
1.解析服务请求中的输入参数;
2.检测服务输入参数中是否包含了分区代码,如果包含,则使用传入的分区代码,如果未包含,则使用SvcConfig中的默认分区代码;
3.从SvcConfig中取出本服务名称对应的数据库标签加上上一步骤取得的分区代码,再从SvcConfig中取出对应的数据库连接参数,并建立对应分区的数据库连接;
4.调用对应的业务模块,并传入对应的分区数据库连接以及服务入参,等待执行结果;
5.把业务模块返回数据封装并返回给调用者。
注:SvcConfig(中间件服务配置)是以文件形式保存在服务器磁盘中的配置信息,包含服务与数据库标签的对应;默认分区代码;全部可用数据库的具体连接参数与数据库标签加分区代码的对应。
在入参中定义如下的报文格式以传输分区代码:
①入参数据的根节点,标识起始位置;
②HEADER节点中包含的数据,是给中间层转发服务请求使用的;
③DB_ID是用于分区路由的分区代码;
④BODY中包含的数据为业务参数,与具体业务相关。
本发明应用于在传统的软件中间件技术的IT系统中,在把中间件部署为集群模式时,为支持以下的中间件集群特性提供支持:
1.各节点部署一致,包括应用程序和配置;
2.集群节点支持服务请求的负载均衡;
3.各节点可相互替换;
4.后端数据库为分区(水平切分数据模式)存储。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种支持数据分区的服务连接方法,其特征在于,包括以下步骤:
前台展示层向任一服务分发层发送服务请求;
服务分发层根据服务请求计算请求访问的分区的分区代码,把分区代码加入请求参数中,将请求参数根据负载均衡策略转发给中间件层;
中间件层根据请求参数中的分区代码连接分区代码指定的分区数据库;
分区数据库执行其内部的业务代码,并返回执行结果给前台展示层;
所述中间件层根据请求参数中的分区代码连接分区代码指定的分区数据库具体为:
解析请求参数,得到请求访问的分区的分区代码;
从预设的中间件服务配置文件中获取与服务请求对应的数据库标签及数据库连接参数,根据数据库标签、数据库连接参数和分区代码建立对应分区的数据库连接;
中间件层调用分区数据库中与请求参数对应的业务模块,并向业务模块中传入请求参数及数据库连接参数。
2.根据权利要求1所述的支持数据分区的服务连接方法,其特征在于,所述中间件层根据请求参数中的分区代码连接分区代码指定的分区数据库中还包括:所述中间件层将分区数据库返回的执行结果进行封装。
3.根据权利要求1或2所述的支持数据分区的服务连接方法,其特征在于,所述解析请求参数,得到请求访问的分区的分区代码进一步为:如果请求参数中包含分区代码,则使用该包含的分区代码;否则,从预设的中间件服务配置文件中获取默认的分区代码。
4.一种支持数据分区的服务连接系统,其特征在于,包括发送模块(1)、计算模块(2)、连接模块(3)和执行模块(4);
所述发送模块(1),用于使前台展示层向任一服务分发层发送服务请求;
所述计算模块(2),用于使服务分发层根据服务请求计算请求访问的分区的分区代码,把分区代码加入请求参数中,将请求参数根据负载均衡策略转发给中间件层;
所述连接模块(3),用于使中间件层根据请求参数中的分区代码连接分区代码指定的分区数据库;
所述执行模块(4),用于分区数据库执行其内部的业务代码,并返回执行结果给前台展示层;
所述连接模块(3)包括解析模块(3-1)和获取建立模块(3-2);
所述解析模块(3-1),用于解析请求参数,得到请求访问的分区的分区代码;
所述获取建立模块(3-2),用于从预设的中间件服务配置文件中获取与服务请求对应的数据库标签及数据库连接参数,根据数据库标签、数据库连接参数和分区代码建立对应分区的数据库连接;
所述连接模块(3)还包括:调用模块(3-3),用于使中间件层调用分区数据库中与请求参数对应的业务模块,并向业务模块中传入请求参数及数据库连接参数。
5.根据权利要求4所述的支持数据分区的服务连接系统,其特征在于,所述连接模块(3)还包括:封装模块(3-4),用于使所述中间件层将分区数据库返回的执行结果进行封装。
6.根据权利要求4或5所述的支持数据分区的服务连接系统,其特征在于,所述解析模块(3-1)进一步用于:如果请求参数中包含分区代码,则使用该包含的分区代码;否则,从预设的中间件服务配置文件中获取默认的分区代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510485016.0A CN105187503B (zh) | 2015-08-07 | 2015-08-07 | 一种支持数据分区的服务连接方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510485016.0A CN105187503B (zh) | 2015-08-07 | 2015-08-07 | 一种支持数据分区的服务连接方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105187503A CN105187503A (zh) | 2015-12-23 |
CN105187503B true CN105187503B (zh) | 2018-11-09 |
Family
ID=54909343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510485016.0A Active CN105187503B (zh) | 2015-08-07 | 2015-08-07 | 一种支持数据分区的服务连接方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105187503B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107689977B (zh) * | 2016-08-05 | 2021-12-07 | 厦门雅迅网络股份有限公司 | 分布式缓存和推送的路由方法及其系统 |
CN106485338A (zh) * | 2016-10-15 | 2017-03-08 | 深圳市前海安测信息技术有限公司 | 医疗信息化预约挂号系统及方法 |
CN106485081A (zh) * | 2016-10-15 | 2017-03-08 | 深圳市前海安测信息技术有限公司 | 医院自助式缴费系统及方法 |
CN107395406B (zh) * | 2017-07-12 | 2020-12-25 | 广州市百果园信息技术有限公司 | 在线系统的在线状态数据处理方法、装置及系统 |
CN107743152B (zh) * | 2017-12-07 | 2020-09-22 | 南京易捷思达软件科技有限公司 | 一种OpenStack云平台中负载均衡器的高可用的实现方法 |
WO2021218177A1 (zh) * | 2020-04-30 | 2021-11-04 | 平安科技(深圳)有限公司 | 页面数据生成方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102201010A (zh) * | 2011-06-23 | 2011-09-28 | 清华大学 | 无共享架构的分布式数据库系统及其实现方法 |
CN103177059A (zh) * | 2011-12-23 | 2013-06-26 | Sap股份公司 | 用于数据库计算引擎的分离处理路径 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8930651B2 (en) * | 2007-10-05 | 2015-01-06 | Imation Corp. | Archiving system with partitions of individual archives |
-
2015
- 2015-08-07 CN CN201510485016.0A patent/CN105187503B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102201010A (zh) * | 2011-06-23 | 2011-09-28 | 清华大学 | 无共享架构的分布式数据库系统及其实现方法 |
CN103177059A (zh) * | 2011-12-23 | 2013-06-26 | Sap股份公司 | 用于数据库计算引擎的分离处理路径 |
Also Published As
Publication number | Publication date |
---|---|
CN105187503A (zh) | 2015-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105187503B (zh) | 一种支持数据分区的服务连接方法及系统 | |
CN103297381B (zh) | 一种基于插件的业务访问方法及其系统 | |
CN109756366A (zh) | 基于caas的智能网scp云服务实现系统 | |
CN101827302B (zh) | 多业务统一处理方法及统一业务平台 | |
US20150067135A1 (en) | Member-oriented hybrid cloud operating system architecture and communication method thereof | |
CN105956481B (zh) | 一种数据处理方法及其装置 | |
CN110019125A (zh) | 数据库管理的方法和装置 | |
JP2002528932A (ja) | インテリジェント・ネットワークにおけるリアルタイム呼処理サービスを提供する方法および装置 | |
CN103607424B (zh) | 一种服务器连接方法及服务器系统 | |
CN105045897B (zh) | 支持数据库扩容的业务处理系统及方法 | |
CN108255614A (zh) | 一种基于微服务架构的接口调用系统及方法 | |
CN106385435A (zh) | 一种业务系统的服务治理方法和系统 | |
CN110658794A (zh) | 一种制造执行系统 | |
CN111193803A (zh) | 基于spring cloud的微服务构建方法及spring cloud微服务架构 | |
CN111797173B (zh) | 联盟链共享系统、方法、装置、电子设备及存储介质 | |
CN112866421A (zh) | 基于分布式缓存以及nsq的智能合约运行方法及装置 | |
CN112650545A (zh) | 一种配置管理系统、方法及存储介质 | |
CN106713353A (zh) | 一种地理信息服务的智能化无缝聚合方法及系统 | |
CN110781441A (zh) | 基于微服务化架构的新零售业务中台 | |
CN111221861A (zh) | 一种本地缓存与数据库数据同步方法和装置 | |
CN112351106B (zh) | 一种含事件网格的服务网格平台及其通信方法 | |
CN100484014C (zh) | 智能网中的分布式集群业务管理系统及业务管理方法 | |
CN110138753A (zh) | 分布式消息服务系统、方法、设备及计算机可读存储介质 | |
CN109347661A (zh) | 消费者vnf的实例化方法及装置 | |
CN112860462A (zh) | 一种实现iot平台基座互联互通的方法、装置及系统 |
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 |