CN104484236B - 一种ha访问自适应的方法 - Google Patents

一种ha访问自适应的方法 Download PDF

Info

Publication number
CN104484236B
CN104484236B CN201410709886.7A CN201410709886A CN104484236B CN 104484236 B CN104484236 B CN 104484236B CN 201410709886 A CN201410709886 A CN 201410709886A CN 104484236 B CN104484236 B CN 104484236B
Authority
CN
China
Prior art keywords
node
access
state
accessed
global state
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
Application number
CN201410709886.7A
Other languages
English (en)
Other versions
CN104484236A (zh
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.)
Shuguang Cloud Computing Group Co ltd
Original Assignee
Shuguang Cloud Computing Group 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 Shuguang Cloud Computing Group Co Ltd filed Critical Shuguang Cloud Computing Group Co Ltd
Priority to CN201410709886.7A priority Critical patent/CN104484236B/zh
Publication of CN104484236A publication Critical patent/CN104484236A/zh
Application granted granted Critical
Publication of CN104484236B publication Critical patent/CN104484236B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明提供一种HA访问自适应的方法,该方法让使用者调用同步接口或异步接口访问节点,返回节点id;根据返回节点id,访问节点id的设备,若成功,则用该设备提供服务;否则将节点id和访问错误码作为形参传入反馈接口。这样让使用者访问简单,降低网络负担。

Description

一种HA访问自适应的方法
技术领域
本发明涉及一种访问节点技术,具体涉及一种HA访问自适应的方法。
背景技术
在分布式系统中,互备方式是一种常用的高可用机制,即主设备提供服务,其他节点作为热备节点随时准备接管主设备。这是由于一方面分布式系统涉及到的节点比较多,故障率本身就比单节点高,另外一点分布式系统一般期望获得更高的可用性。这种互备方式中最常用的是主从互备,即当主设备发生故障时,从设备接管主设备工作继续提供服务。这种方式对访问者来说是一个挑战,因为同一时刻即有可能是主设备在提供服务,也有可能是从设备在提供服务。
一种比较简单的实现方法是使用者采用轮询的方式,即不管当前究竟是哪个设备在提供服务,都从头开始进行尝试,直到碰到正在提供服务的节点。
轮询方式实现逻辑简单,易于理解,但是其弊端也是显而易见的。首先,如果使用者直接轮询访问,那每个使用者都要做类似工作,代码冗余度会非常高;其次如果对轮询进行封装,为了做到灵活、通用,每个使用者可能需要注册比较多的函数以达到私有目的;这对使用者来说都是一种负担,很不友好。此外也是最重要的缺点,由于轮询,增加了访问延迟,同时由于无效消息的发送,大大加重了网络负担。
发明内容
为了克服上述现有技术的不足,本发明提供一种HA访问自适应的方法,该方法对外提供一套接口,具体包括获取需要访问的节点id的同步接口和异步接口,以及反馈接口,使用者只需通过三个接口即可达到HA访问的自适应。
为了实现上述发明目的,本发明采取如下技术方案:
一种HA访问自适应的方法,该方法具体步骤如下:
(1)使用者调用同步接口或异步接口访问节点,返回节点id;
(2)使用者根据返回节点id,若访问节点id的设备成功,则用该设备提供服务;否则将节点id和访问错误码作为形参传入反馈接口。
本发明提供的优选技术方案中,所述同步接口访问节点的具体步骤如下:
A、调用同步接口获取访问主节点id;
B、根据主节点id查找HA访问结构并加读锁;
C、若HA访问结构的全局状态为OK,则找到状态为ACTIVE的节点并返回节点id;否则在信号量上睡眠,等待结构被修复线程修复;
D、修复完成被唤醒后继续查看全局状态并查找ACTIVE节点,再返回节点id。
本发明提供的第二优选技术方案中,所述异步接口访问节点的具体步骤如下:
A、调用异步接口获取访问节点id;
B、根据主节点id查找HA访问结构并加读锁;
C、若HA访问结构的全局状态为OK,则获取ACTIVE节点并返回节点id;否则分配异步wait结构并设置回调函数,将wait结构挂入HA访问结构的wait结构队列并返回特定错误码,修复线程进行修复;
D、使用者看到特定错误码则继续处理其他任务;
E、HA结构修复完成后调用回调函数重新投递任务,使用者则可以继续处理该任务。
本发明提供的第三优选技术方案中,所述反馈接口的执行方式,具体步骤如下:
A、反馈接口接收节点id和访问错误码;
B、判断访问错误码是否为系统定义的特定错误码,若是则将全局状态置为RECOVERY,挂入修复链表list_ha,触发修复线程进行修复;
C、修复完成后,再重新访问节点id的设备。
本发明提供的第四优选技术方案中,所述修复线程修复全局状态为RECOVERY状态,修复过程即向组内所有节点发送消息,并将应答接管主节点工作的节点设置为ACTIVE状态,其余设置为STANDBY状态,并修改全局状态为OK,唤醒等待队列的同步或异步等待者。
本发明提供的第五优选技术方案中,该方法的主要数据结构包括:读写锁rwlock、全局状态gstate、所有主从节点id、节点状态nodestates、修复链表list_ha和等待队列waitq。
本发明提供的第六优选技术方案中,所述全局状态包括OK和RECOVERY两种状态,OK表示可用,RECOVERY表示正在修复;所述节点状态包括ACTVIE和STANDBY两种状态,当全局状态为OK时,有且只有一个节点状态为ACTIVE,其余皆为STANDBY状态。
与现有技术相比,本发明的有益效果在于:
本发明只需要通过三个接口即可达到HA访问的自适应,代码冗余度大大降低,不需要注册较多的函数来达到私有目的
具有很好的扩展性,由于使用者不用了解自动定位细节,所以自适应方法内部进行调整不影响外网使用者。
降低使用者的访问延迟,同时没有了不必要的消息发送,大大降低了网络负担。
附图说明
图1是同步接口访问节点的流程图
图2是异步接口访问节点的流程图
具体实施方式
下面结合附图对本发明作进一步详细说明。
系统内有A、B两个节点互为热备(即其中一个出现故障,另外一个代替它继续提供服务),使用者访问A节点,使用者调用HA的同步接口或异步接口,获取访问节点id。
使用者根据访问节点id,访问节点id的设备(让它提供A的服务),如果访问出错,节点id直接返回拒绝服务或者网络错误,错误码为ERR,使用者需要调用HA的反馈接口将ERR传入,告诉HA需要A提供服务的访问出错,错误码为ERR。
HA模块会根据错误码(只有网络错及拒绝服务错误才会将A加入探测列表)判断是否需要对A重新探测,如果需要重新探测,则利用挂载点list_ha将A结构挂入修复队列,同时置全局状态为RECOVERY。待修复线程重新探测出A节点的服务由哪个节点承担后,置全局状态为OK。
由图1所示,调用同步接口的具体步骤如下:
A、调用同步接口获取访问主节点id;
B、根据主节点id找到HA访问结构并给访问结构加读锁;
C、若HA访问结构的全局状态为OK,则找到状态为ACTIVE的节点并返回节点id;否则分配wait结构,挂入访问结构的waitq队列
D、修复完成被唤醒后继续查看全局状态并查找ACTIVE节点,再返回节点id。
由图2所示,调用异步接口的具体步骤如下:
A、调用异步接口获取访问节点id;
B、根据主节点id查找HA访问结构并加读锁;
C、若HA访问结构的全局状态为OK,则获取ACTIVE节点并返回节点id;否则分配异步wait结构并设置回调函数,将wait结构挂入HA访问结构的waitq队列并返回特定错误码,修复线程进行修复;
D、使用者看到特定错误码则继续处理其他任务;
E、HA结构修复完成后调用回调函数重新投递任务,使用者则可以继续处理该任务。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员依然可以对本发明的具体实施方式进行修改或者等同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围之内。

Claims (6)

1.一种HA访问自适应的方法,其特征在于,该方法具体步骤如下:
(1)调用同步接口或异步接口访问节点,返回节点id;
(2)根据返回节点id,访问节点id的设备,若成功,则用该设备提供服务;否则将节点id和访问错误码作为形参传入反馈接口;
所述反馈接口的执行方式,具体步骤如下:
A、反馈接口接收节点id和访问错误码;
B、判断访问错误码是否为系统定义的特定错误码,若是则将全局状态置为RECOVERY,挂入修复链表list_ha,触发修复线程进行修复;
C、修复完成后,再重新访问节点id的设备;
所述特定错误码包括拒绝服务和网络错误。
2.根据权利要求1所述HA访问自适应的方法,其特征在于,所述同步接口访问节点包括如下步骤如下:
A、调用同步接口获取访问主节点id;
B、根据主节点id查找HA访问结构并加读锁;
C、若HA访问结构的全局状态为OK,则找到状态为ACTIVE的节点返回节点id;否则在信号量上睡眠,等待结构被修复线程修复;
D、修复完成被唤醒后继续查看全局状态并查找ACTIVE节点,再返节点id。
3.根据权利要求1所述HA访问自适应的方法,其特征在于,所述异步接口访问节点的具体步骤如下:
A、调用异步接口获取访问节点id;
B、根据主节点id查找HA访问结构并加读锁;
C、若HA访问结构的全局状态为OK,则获取ACTIVE节点并返回节点id;
否则分配异步wait结构并设置回调函数,将wait结构挂入HA访问结构的waitq队列并返回特定错误码,修复线程进行修复;
D、使用者看到特定错误码则继续处理其他任务;
E、HA结构修复完成后调用回调函数重新投递任务,使用者则继续处理该任务。
4.根据权利要求2或3任一所述HA访问自适应的方法,其特征在于,所述修复线程修复全局状态为RECOVERY状态,修复过程即向组内所有节点发送消息,并将应答接管主节点工作的节点设置为ACTIVE状态,其余设置为STANDBY状态,并修改全局状态为OK,唤醒等待队列的同步或异步等待者。
5.根据权利要求1所述HA访问自适应的方法,其特征在于,该方法的主要数据结构包括:读写锁rwlock、全局状态gstate、所有主从节点id、节点状态nodestates、修复链表list_ha和等待队列waitq。
6.根据权利要求5所述HA访问自适应的方法,其特征在于,所述全局状态包括OK和RECOVERY两种状态,OK表示可用,RECOVERY表示正在修复;所述节点状态包括ACTVIE和STANDBY两种状态,当全局状态为OK时,有且只有一个节点状态为ACTIVE,其余皆为STANDBY状态。
CN201410709886.7A 2014-11-28 2014-11-28 一种ha访问自适应的方法 Active CN104484236B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410709886.7A CN104484236B (zh) 2014-11-28 2014-11-28 一种ha访问自适应的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410709886.7A CN104484236B (zh) 2014-11-28 2014-11-28 一种ha访问自适应的方法

Publications (2)

Publication Number Publication Date
CN104484236A CN104484236A (zh) 2015-04-01
CN104484236B true CN104484236B (zh) 2017-11-03

Family

ID=52758780

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410709886.7A Active CN104484236B (zh) 2014-11-28 2014-11-28 一种ha访问自适应的方法

Country Status (1)

Country Link
CN (1) CN104484236B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105760519B (zh) * 2016-02-26 2020-08-28 北京鲸鲨软件科技有限公司 一种集群文件系统及其文件锁分配方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102594852A (zh) * 2011-01-04 2012-07-18 中国移动通信集团公司 数据访问方法、节点及系统
CN103701822A (zh) * 2013-12-31 2014-04-02 曙光云计算技术有限公司 访问控制方法
CN103747076A (zh) * 2013-12-31 2014-04-23 曙光云计算技术有限公司 云平台的访问方法和装置
CN103747091A (zh) * 2014-01-16 2014-04-23 电信科学技术第一研究所 一种嵌入式设备的分布式数据同步系统及方法
CN103905537A (zh) * 2014-03-20 2014-07-02 冶金自动化研究设计院 分布式环境下管理工业实时数据存储的系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073658A1 (en) * 2002-10-10 2004-04-15 Cisco Technology, Inc. System and method for distributed diagnostics in a communication system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102594852A (zh) * 2011-01-04 2012-07-18 中国移动通信集团公司 数据访问方法、节点及系统
CN103701822A (zh) * 2013-12-31 2014-04-02 曙光云计算技术有限公司 访问控制方法
CN103747076A (zh) * 2013-12-31 2014-04-23 曙光云计算技术有限公司 云平台的访问方法和装置
CN103747091A (zh) * 2014-01-16 2014-04-23 电信科学技术第一研究所 一种嵌入式设备的分布式数据同步系统及方法
CN103905537A (zh) * 2014-03-20 2014-07-02 冶金自动化研究设计院 分布式环境下管理工业实时数据存储的系统

Also Published As

Publication number Publication date
CN104484236A (zh) 2015-04-01

Similar Documents

Publication Publication Date Title
CN103731343B (zh) 基于lpc2468的mvb‑wtb网关及其工作方法
ITTO20010196A1 (it) Sistema e procedimento per gestire risorse di memorizzazione in un ambiente di elaborazione a grappolo.
CN106254100A (zh) 一种数据容灾方法、装置和系统
WO2010103670A1 (en) Storage apparatus and method for controlling the same
CN103218313B (zh) 用于实现缓存描述符交互的方法和电子设备
CN103441863A (zh) 一种空管自动化系统中的双服务器热备系统及控制方法
CN105577430A (zh) 一种高端容错服务器的节点管理方法
CN103731328B (zh) 基于Linux共享内存实现家庭网关数据通信的系统及方法
CN103746889B (zh) 半竞争式rs-485总线多主通讯系统及其工作方法
CN103353860B (zh) 内存管理方法及装置
WO2016107443A1 (zh) 一种快照处理方法及相关设备
CN104541248A (zh) 计算系统对屏障命令的处理
TW201324175A (zh) 具有省電管理功能之通用序列匯流排裝置以及省電管理方法
CN102137161B (zh) 基于光纤通道的文件级数据共享存储系统
CN102811152A (zh) 一种多主总线网络通讯实时交易数据交换实现方法
CN104484236B (zh) 一种ha访问自适应的方法
CN104618152A (zh) 一种会话表老化方法及系统
TWI498037B (zh) 服務資訊管理方法及服務資訊管理系統
CN105512005B (zh) 控制/远程节点与总线监控节点同步工作的电路及方法
CN105471652B (zh) 大数据一体机及其冗余管理单元
CN106027661A (zh) 数据集群存储终端
CN106027305A (zh) 一种基于arm的相同ip的双机热备的方法
CN104410517B (zh) 一种配置回退的方法和设备
CN205240980U (zh) 一种小型电梯远程监控系统及故障报警系统
CN106874150A (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
CB02 Change of applicant information

Address after: 100193 Beijing, Haidian District, northeast Wang West Road, building 8, building 36, floor 5

Applicant after: Shuguang Cloud Computing Group Co.,Ltd.

Address before: 100193 Beijing, Haidian District, northeast Wang West Road, building 8, building 36, floor 5

Applicant before: DAWNING CLOUD COMPUTING TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 100193 5 floor, 36 building, No. 8 Northeast Road, Haidian District, Beijing.

Patentee after: Shuguang Cloud Computing Group Co.,Ltd.

Country or region after: China

Address before: 100193 5 floor, 36 building, No. 8 Northeast Road, Haidian District, Beijing.

Patentee before: Shuguang Cloud Computing Group Co.,Ltd.

Country or region before: China

CP03 Change of name, title or address