[發明專利]一種集群選舉方法及系統在審
| 申請號: | 201611116204.7 | 申請日: | 2016-12-07 |
| 公開(公告)號: | CN106789197A | 公開(公告)日: | 2017-05-31 |
| 發明(設計)人: | 李文杰;范日明;林楷填;毛亮;黃仝宇;李旭泉;宋一兵;汪剛;侯玉清;劉雙廣 | 申請(專利權)人: | 高新興科技集團股份有限公司 |
| 主分類號: | H04L12/24 | 分類號: | H04L12/24 |
| 代理公司: | 廣州粵高專利商標代理有限公司44102 | 代理人: | 邱奕才,鄭永泉 |
| 地址: | 510630 廣東省廣*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 集群 選舉 方法 系統 | ||
技術領域
本發明涉及大數據運算領域,更具體地,涉及一種大數據運算的集群選舉方法及系統。
背景技術
現在的大數據運算各有各的集群處理模式,算法不統一。公司自研的系統甚至沒有做集群,導致當系統崩潰后無法正常工作,影響大數據處理的正常執行。而且現存很多老系統都沒有考慮高可用集群處理方案,或者只采用簡單的vrrp協議進行高可用處理。當虛擬化系統中的控制節點或者網絡節點因為各種原因停止服務時,系統就無法控制虛擬化系統的計算機網絡功能,只能等待服務的恢復。而使用vrrp的方案,一般只有兩臺機器執行熱備模式,容易發生腦裂導致ip沖突,無法正常服務。
發明內容
本發明為克服上述現有技術所述的至少一種缺陷(不足),提供一種使普通非高可用的系統實現高可用功能的集群選舉方法。
本發明還提供一種使普通非高可用的系統實現高可用功能的集群選舉系統。
為解決上述技術問題,本發明的技術方案如下:
一種集群選舉方法,包括:
從服務器無法獲得主服務器的心跳時,從服務器的狀態改為候選服務器,并向其余服務器發出請求選為主服務器的投票請求;
當候選服務器收到超過預設閾值數量的服務器投票,則選舉成為主服務器并更改狀態為主服務器;
當候選服務器在等待投票結果時其他服務器成為主服務器,則候選服務器更改狀態為從服務器;
當沒有任一候選服務器選舉為主服務器時,候選服務器重新發送投票請求直至有一候選服務器成為主服務器為止。
本發明在主服務器停止服務時,采用投票選舉的方式來重新選出主服務器,其他服務器作為從服務器,該方法在不影響原有系統功能前提下,改變原有系統的部署方案,使用分布式選舉協議來組成各種應用集群,使本來不具備高可用的系統具備了高可用能力,此方法對于簡單的應用系統非常適用,不需要在設計階段過多地考慮高可用方案,集中業務實現。
上述方案中,當候選服務器選舉成為主服務器并更改狀態為主服務器后,該新主服務器還向其他服務器發送主服務器心跳,其他服務器收到心跳后更改狀態為從服務器。新主服務器通過發出心跳方式來通知其他服務器,其他服務器可以及時將狀態更改為從服務器,使新的主服務器能夠及時接管服務,使系統恢復正常的工作狀態。
上述方案中,所述預設閾值數量為所有服務器的一半。
上述方案中,候選服務器更改狀態為從服務器后,主服務器和從服務器同步狀態信息。狀態信息的同步不但可以使系統能夠恢復到正常狀態,而且還能夠使系統恢復到停止服務前的狀態,保證信息的完整性。
一種集群選舉系統,包括服務器,服務器包括:
狀態更改模塊,用于當服務器無法獲得主服務器的心跳時,更改狀態為候選服務器;
投票請求模塊,用于向其余服務器發出請求選為主服務器的投票請求;
投票結果接收模塊,用于接收服務器投票結果,當收到超過預設閾值數量的服務器投票時選舉成為主服務器并通知狀態更改模塊更改狀態為主服務器;
狀態更改模塊還用于服務器選舉成為主服務器時更改狀態為主服務器;
主服務器通知模塊,用于獲知其他服務器成為主服務器并通知狀態更改模塊;
狀態更改模塊還用于當獲知其他服務器成為主服務器后更改狀態為從服務器。
本發明的系統在主服務器停止服務時,利用各個模塊基于投票選舉的方式來重新選出主服務器,其他服務器作為從服務器,該系統在不影響原有系統功能前提下,改變原有系統的部署方案,使用投票請求模塊中的分布式選舉協議來組成各種應用集群,使本來不具備高可用的系統具備了高可用能力,此系統對于簡單的應用系統非常適用,不需要在設計階段過多地考慮高可用方案,集中業務實現。
上述方案中,投票請求模塊還用于當狀態更改模塊將狀態改為候選服務器后的一定時間內未再次更改狀態時,重新向其余服務器發出投票請求。設定重新投票請求機制,可以使得系統可以自發性地重新發出投票請求直至重新選出新的主服務器為止,保證系統在停止服務后能選出新服務器來重新啟動系統的服務。
上述方案中,服務器還包括:
心跳發送模塊,用于在狀態更改模塊更改狀態為主服務器后,向其他服務器發送主服務器心跳;
狀態更改模塊還用于在收到新主服務器發送的心跳后更改狀態為從服務器。
設置心跳發送模塊用于向等待選舉結果的服務器發出通知,使其他服務器能夠結束投票請求的過程,重新修改狀態為從服務器,以確保及時重新啟動系統的服務。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于高新興科技集團股份有限公司,未經高新興科技集團股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611116204.7/2.html,轉載請聲明來源鉆瓜專利網。





