本發(fā)明涉及云計算技術(shù)領(lǐng)域,特別是涉及一種云操作系統(tǒng)及其訪問方法。
背景技術(shù):
當前,云計算的研究如火如荼,也越來越深入到我們的日常的生活中,對于云操作系統(tǒng)的性能也提出了更高的要求。云操作系統(tǒng)的前端web系統(tǒng)和后端服務(wù)系統(tǒng)進行單獨部署,前端web系統(tǒng)包括服務(wù)器,服務(wù)器中包含有容器,該服務(wù)器用于對外提供可以訪問的IP地址,容器解析與用戶的請求對應(yīng)的調(diào)用指令,然后將調(diào)用指令發(fā)送至后端服務(wù)系統(tǒng)中。后端服務(wù)系統(tǒng)中的注冊管理中心依據(jù)調(diào)用指令和負載率情況,通過RPC調(diào)用方式調(diào)用對應(yīng)的服務(wù)提供方,服務(wù)提供方在接收到調(diào)用指令后,依據(jù)調(diào)用指令的要求在數(shù)據(jù)庫中調(diào)用與用戶的請求對應(yīng)的數(shù)據(jù),并返回至用戶,從而實現(xiàn)響應(yīng)用戶的請求的目的。
現(xiàn)有技術(shù)中,前端web系統(tǒng)通常部署在類似于tomcat的容器中,但是當發(fā)生不可抗拒的事件時,比如斷電或者操作系統(tǒng)故障,會造成容器所在的主機崩潰進而影響云操作系統(tǒng)的使用,甚至可能造成關(guān)鍵數(shù)據(jù)的丟失。由此可見,即使后臺服務(wù)依然運行,但由于容器無法正常工作,則用戶也不能訪問數(shù)據(jù)庫,嚴重影響用戶使用和用戶體驗。
由此可見,如何提高云操作系統(tǒng)的安全性和可靠性是本領(lǐng)域技術(shù)人員亟待解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種云操作系統(tǒng)及云操作系統(tǒng)的訪問方法,用于提高云操作系統(tǒng)的安全性和可靠性。
為解決上述技術(shù)問題,本發(fā)明提供一種云操作系統(tǒng),包括web前端服務(wù)系統(tǒng)和后端服務(wù)系統(tǒng),還包括Nginx服務(wù)器且所述web前端服務(wù)系統(tǒng)包括至少兩個互為冗余的服務(wù)器,
所述互為冗余的服務(wù)器中均包含容器,分別用于提供各自的真實IP地址;
Nginx服務(wù)器,用于通過Nginx架構(gòu)將所述互為冗余的服務(wù)器的真實IP地址構(gòu)建出直接面向用戶的虛擬IP地址,當接收到用戶的訪問請求時,根據(jù)當前所述互為冗余的服務(wù)器的運行狀態(tài)將所述訪問請求發(fā)送至目標容器;
所述后端服務(wù)器系統(tǒng),用于根據(jù)所述目標容器解析出的調(diào)用指令和當前各服務(wù)提供方的負載率調(diào)用對應(yīng)的目標服務(wù)提供方以訪問數(shù)據(jù)庫;
其中,所述真實IP地址和所述虛擬IP地址均對應(yīng)同一個數(shù)據(jù)庫。
優(yōu)選地,所述互為冗余的服務(wù)器為兩個,分別是主服務(wù)器和備份服務(wù)器;
其中,所述主服務(wù)器包含第一容器,用于提供第一真實IP地址;所述備份服務(wù)器包含第二容器,用于提供第二真實IP地址;所述Nginx服務(wù)器,用于通過Nginx架構(gòu)將所述第一真實IP地址和所述第二真實IP地址構(gòu)建出直接面向用戶的虛擬IP地址。
優(yōu)選地,所述Nginx服務(wù)器具體包括:
檢測單元,用于通過Keepalived模式檢測所述主服務(wù)器的心跳參數(shù)和所述備份服務(wù)器的心跳參數(shù);
第一確定單元,用于如果所述主服務(wù)器的心跳參數(shù)和所述備份服務(wù)器的心跳參數(shù)均存在,則選取負載率較低的服務(wù)器中的容器作為目標容器,并將所述訪問請求發(fā)送至所述目標容器;
第二確定單元,用于如果所述主服務(wù)器的心跳參數(shù)存在和所述備份服務(wù)器的心跳參數(shù)不存在,則選取所述第一容器作為目標容器,并將所述訪問請求發(fā)送至所述目標容器;
第三確定單元,用于如果所述主服務(wù)器的心跳參數(shù)不存在和所述備份服務(wù)器的心跳參數(shù)存在,則選取所述第二容器作為目標容器,并將所述訪問請求發(fā)送至所述目標容器。
優(yōu)選地,所述Nginx服務(wù)器還包括存儲單元,用于存儲所述第一真實IP地址、所述第二真實IP地址以及所述虛擬IP地址。
優(yōu)選地,所述Nginx服務(wù)器為兩個,且互為冗余。
為解決上述技術(shù)問題,本發(fā)明提供一種云操作系統(tǒng)的訪問方法,包括:
web前端服務(wù)系統(tǒng)中的互為冗余的服務(wù)器分別提供各自的真實IP地址;其中,所述互為冗余的服務(wù)器中均包含容器;
Nginx服務(wù)器通過Nginx架構(gòu)將所述互為冗余的服務(wù)器的真實IP地址構(gòu)建出直接面向用戶的虛擬IP地址,當接收到用戶的訪問請求時,根據(jù)當前所述互為冗余的服務(wù)器的運行狀態(tài)將所述訪問請求發(fā)送至目標容器;
后端服務(wù)器系統(tǒng)根據(jù)所述目標容器解析出的調(diào)用指令和當前各服務(wù)提供方的負載率調(diào)用對應(yīng)的目標服務(wù)提供方以訪問數(shù)據(jù)庫;
其中,所述真實IP地址和所述虛擬IP地址均對應(yīng)同一個數(shù)據(jù)庫。
優(yōu)選地,所述互為冗余的服務(wù)器為兩個,分別是主服務(wù)器和備份服務(wù)器;
其中,所述主服務(wù)器包含第一容器,用于提供第一真實IP地址;所述備份服務(wù)器包含第二容器,用于提供第二真實IP地址;所述Nginx服務(wù)器,用于通過Nginx架構(gòu)將所述第一真實IP地址和所述第二真實IP地址構(gòu)建出直接面向用戶的虛擬IP地址。
優(yōu)選地,所述Nginx服務(wù)器根據(jù)當前所述互為冗余的服務(wù)器的運行狀態(tài)將所述訪問請求發(fā)送至目標容器具體包括:
通過Keepalived模式檢測所述主服務(wù)器的心跳參數(shù)和所述備份服務(wù)器的心跳參數(shù);
如果所述主服務(wù)器的心跳參數(shù)和所述備份服務(wù)器的心跳參數(shù)均存在,則選取負載率較低的服務(wù)器中的容器作為目標容器,并將所述訪問請求發(fā)送至所述目標容器;
如果所述主服務(wù)器的心跳參數(shù)存在和所述備份服務(wù)器的心跳參數(shù)不存在,則選取所述第一容器作為目標容器,并將所述訪問請求發(fā)送至所述目標容器;
如果所述主服務(wù)器的心跳參數(shù)不存在和所述備份服務(wù)器的心跳參數(shù)存在,則選取所述第二容器作為目標容器,并將所述訪問請求發(fā)送至所述目標容器。
優(yōu)選地,還包括:存儲所述第一真實IP地址、所述第二真實IP地址以及所述虛擬IP地址。
優(yōu)選地,所述Nginx服務(wù)器為兩個,且互為冗余。
本發(fā)明所提供的云操作系統(tǒng)及其訪問方法,該系統(tǒng)通過在web前端服務(wù)系統(tǒng)中設(shè)置至少兩個服務(wù)器,兩個服務(wù)器均能夠提供各自的真實IP地址,再通過Nginx服務(wù)器將真實IP地址構(gòu)建為虛擬IP地址并提供給用戶,由于虛擬地址與各真實IP地址均對應(yīng)同一個數(shù)據(jù)庫,因此用戶可以通過虛擬地址訪問到對應(yīng)的數(shù)據(jù)庫。當一個服務(wù)器發(fā)生故障時,可以通過另外一個服務(wù)器實現(xiàn)用戶的訪問請求,由此可見,本系統(tǒng)可以降低web前端服務(wù)系統(tǒng)出現(xiàn)故障的風險,克服了現(xiàn)有技術(shù)中web前端不能容災控制和高可用的缺點,提高了云操作系統(tǒng)的可靠性。
附圖說明
為了更清楚地說明本發(fā)明實施例,下面將對實施例中所需要使用的附圖做簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種云操作系統(tǒng)的結(jié)構(gòu)圖;
圖2為本發(fā)明實施例提供的一種云操作系統(tǒng)的訪問方法的流程圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下,所獲得的所有其他實施例,都屬于本發(fā)明保護范圍。
本發(fā)明的核心是提供一種云操作系統(tǒng)及云操作系統(tǒng)的訪問方法,用于提高云操作系統(tǒng)的安全性和可靠性。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步的詳細說明。
圖1為本發(fā)明實施例提供的一種云操作系統(tǒng)的結(jié)構(gòu)圖。如圖1所示,該系統(tǒng)包括web前端服務(wù)系統(tǒng)10和后端服務(wù)系統(tǒng)20,還包括Nginx服務(wù)器100且web前端服務(wù)系統(tǒng)10包括至少兩個互為冗余的服務(wù)器101?;槿哂嗟姆?wù)器中均包含容器,分別用于提供各自的真實IP地址。Nginx服務(wù)器100,用于通過Nginx架構(gòu)將互為冗余的服務(wù)器101的真實IP地址構(gòu)建出直接面向用戶的虛擬IP地址,當接收到用戶的訪問請求時,根據(jù)當前互為冗余的服務(wù)器101的運行狀態(tài)將訪問請求發(fā)送至目標容器。
后端服務(wù)器系統(tǒng)20,用于根據(jù)目標容器解析出的調(diào)用指令和當前各服務(wù)提供方200的負載率調(diào)用對應(yīng)的目標服務(wù)提供方以訪問數(shù)據(jù)庫30。
其中,真實IP地址和虛擬IP地址均對應(yīng)同一個數(shù)據(jù)庫30。
可以理解的是,圖1只是一種具體的應(yīng)用場景,并不代表是由兩個服務(wù)器101,只要服務(wù)器101的個數(shù)為兩個或兩個以上即可。每個服務(wù)器101均包含有容器,容器的數(shù)量不作限定,可以為1個,也可以和現(xiàn)有技術(shù)中一樣包含多個。
如圖1所示,兩個服務(wù)器101互為冗余,每個服務(wù)器均提供各自的真實IP地址,通過該真實IP地址可以實現(xiàn)用戶與數(shù)據(jù)庫30的訪問過程。為了防止其中一個服務(wù)器101的突然故障導致用戶無法訪問數(shù)據(jù)庫30,本實施例中提供至少兩個服務(wù)器101,通過Nginx服務(wù)器100將兩個服務(wù)器101各自的真實IP地址構(gòu)建出一個虛擬IP地址,用戶通過虛擬IP地址訪問數(shù)據(jù)庫30,只不過Nginx服務(wù)器100在接收到用戶的請求時,需要解析訪問請求中的虛擬IP地址通過哪個服務(wù)器101實現(xiàn)訪問的過程,換句話說,該虛擬IP地址對應(yīng)兩個服務(wù)器101各自真實的IP地址,可以通過任意一個服務(wù)器101中的容器實現(xiàn)用戶的訪問請求。
考慮到每個服務(wù)器的運行狀態(tài)不同,例如負載率不同或者其中一個服務(wù)器出現(xiàn)故障,可能導致訪問的速率不同,因此Nginx服務(wù)器100根據(jù)每個服務(wù)器101的運行狀態(tài)確定一個合適的服務(wù)器101,即確定最終目標容器。目標容器在接收到的用戶的訪問請求后,解析該請求對應(yīng)的調(diào)用指令,并將調(diào)用指令發(fā)送給后端服務(wù)器系統(tǒng)20。可以理解的是,后端服務(wù)器系統(tǒng)20中的注冊管理中心依據(jù)調(diào)用指令和負載率情況,通過RPC調(diào)用方式調(diào)用對應(yīng)的服務(wù)提供方200,服務(wù)提供方200在接收到調(diào)用指令后,依據(jù)調(diào)用指令的要求在數(shù)據(jù)庫30中調(diào)用與用戶的訪問請求對應(yīng)的數(shù)據(jù),并返回至用戶,從而實現(xiàn)響應(yīng)用戶的訪問請求的目的。可以理解的是,注冊管理中心可以采用Zookeeper集群的形式,每個服務(wù)提供方200都向注冊中心注冊服務(wù),形成穩(wěn)定的注冊中心集群。每個服務(wù)提供方200可以采用jar包的方式部署運行,使用java命令啟動和關(guān)停服務(wù)即可。
可以理解的是,Nginx服務(wù)器100在使用過程中,首先編譯安裝Nginx所需要的依賴包,然后進行編譯安裝,本實施例不再贅述。
本實施例中,通過在web前端服務(wù)系統(tǒng)中設(shè)置至少兩個服務(wù)器,兩個服務(wù)器均能夠提供各自的真實IP地址,再通過Nginx服務(wù)器將真實IP地址構(gòu)建為虛擬IP地址并提供給用戶,由于虛擬地址與各真實IP地址均對應(yīng)同一個數(shù)據(jù)庫,因此用戶可以通過虛擬地址訪問到對應(yīng)的數(shù)據(jù)庫。當一個服務(wù)器發(fā)生故障時,可以通過另外一個服務(wù)器實現(xiàn)用戶的訪問請求,由此可見,本系統(tǒng)可以降低web前端服務(wù)系統(tǒng)出現(xiàn)故障的風險,克服了現(xiàn)有技術(shù)中web前端不能容災控制和高可用的缺點,提高了云操作系統(tǒng)的可靠性。
作為一種優(yōu)選的實施方式,互為冗余的服務(wù)器101為兩個,分別是主服務(wù)器和備份服務(wù)器;
其中,主服務(wù)器包含第一容器,用于提供第一真實IP地址;備份服務(wù)器包含第二容器,用于提供第二真實IP地址;Nginx服務(wù)器,用于通過Nginx架構(gòu)將第一真實IP地址和第二真實IP地址構(gòu)建出直接面向用戶的虛擬IP地址。
可以理解的是,web前端服務(wù)系統(tǒng)10中的服務(wù)器101的個數(shù)可以靈活設(shè)置,但是如果服務(wù)器101設(shè)置的過多,雖然能夠提高云操作系統(tǒng)的可靠性,但是導致Nginx服務(wù)器100的運算過多,在一定程度上消耗的時間較多,因此,本實施例中設(shè)置兩個服務(wù)器101。分別為主服務(wù)器和備份服務(wù)器,兩個服務(wù)器101中均存儲有對方的真實IP地址,因此,無論哪個主服務(wù)器故障或者備份服務(wù)器故障,均可以通過另一個服務(wù)器中的容器實現(xiàn)調(diào)用數(shù)據(jù)庫,其它實施方式參見上文描述,本實施例不再贅述。
作為優(yōu)選的實施方式,在上述實施例的基礎(chǔ)上,Nginx服務(wù)器具體包括:
檢測單元,用于通過Keepalived模式檢測主服務(wù)器的心跳參數(shù)和備份服務(wù)器的心跳參數(shù);
第一確定單元,用于如果主服務(wù)器的心跳參數(shù)和備份服務(wù)器的心跳參數(shù)均存在,則選取負載率較低的服務(wù)器中的容器作為目標容器,并將訪問請求發(fā)送至目標容器;
第二確定單元,用于如果主服務(wù)器的心跳參數(shù)存在和備份服務(wù)器的心跳參數(shù)不存在,則選取第一容器作為目標容器,并將訪問請求發(fā)送至目標容器;
第三確定單元,用于如果主服務(wù)器的心跳參數(shù)不存在和備份服務(wù)器的心跳參數(shù)存在,則選取第二容器作為目標容器,并將訪問請求發(fā)送至目標容器。
在上述實施例中,描述到Nginx服務(wù)器100根據(jù)服務(wù)器101的運行狀態(tài)確定目標容器,本實施例中,詳細說明Nginx服務(wù)器100根據(jù)何種運行狀態(tài)確定目標容器。首先,需要通過Keepalived模式檢測主服務(wù)器的心跳參數(shù)和備份服務(wù)器的心跳參數(shù)。
如果能夠同時檢測到主服務(wù)器和備份服務(wù)器的心跳參數(shù),則說明主服務(wù)器和備份服務(wù)器均存活,沒有故障,因此既可以通過將主服務(wù)器中的容器作為目標容器,也可以將備份服務(wù)器中的容器作為目標容器。但是,考慮到訪問的速率,本實施例中選取負載率較低的服務(wù)器中的容器作為目標容器,即如果主服務(wù)器的負載率較高,則選取備份服務(wù)器中的容器作為目標容器,如果備份服務(wù)器的負載了較高,則選取主服務(wù)器中的容器作為目標容器。
如果只能檢測到主服務(wù)器的心跳參數(shù),而檢測不到備份服務(wù)器的心跳參數(shù),則說明主服務(wù)器存活,而備份服務(wù)器故障。因此只能將主服務(wù)器中的容器作為目標容器。由于備份服務(wù)器出現(xiàn)故障,因此,此時不再需要考慮負載率的問題。
同樣的,如果只能檢測到備份服務(wù)器的心跳參數(shù),而檢測不到主服務(wù)器的心跳參數(shù),則說明備份服務(wù)器存活,而主服務(wù)器故障。因此只能將備份服務(wù)器中的容器作為目標容器。由于主服務(wù)器出現(xiàn)故障,因此,此時不再需要考慮負載率的問題。
可以理解的是,如果使用Keepalived模式,則需要相應(yīng)的安裝操作,本實施例不再贅述。
通過上述實施方式,在提高云操作系統(tǒng)的可靠性的基礎(chǔ)上,基于Keepalived模式能夠真正做到主服務(wù)器和備份服務(wù)器故障時IP地址瞬間無縫交接,進一步提高了云操作系統(tǒng)的可靠性。
作為優(yōu)選的實施方式,在上述實施例的基礎(chǔ)上,Nginx服務(wù)器100還包括存儲單元,用于存儲第一真實IP地址、第二真實IP地址以及虛擬IP地址。
在具體實施中,為了方便后續(xù)對照各個IP地址,因此,本實施例中,將第一真實IP地址、第二真實IP地址以及虛擬IP地址進行存儲??梢岳斫獾氖?,如果其中的IP地址發(fā)生變化,則可以及時更新,避免IP地址之間發(fā)生錯誤,而導致訪問失敗的問題。
作為優(yōu)選的實施方式,在上述實施例的基礎(chǔ)上,Nginx服務(wù)器為兩個,且互為冗余。
這里我們采用雙Nginx服務(wù)器的部署方式,因為采用單Nginx服務(wù)器部署方式雖然能實現(xiàn)前端web訪問界面的高可用,但是單Nginx服務(wù)器存在單點故障的問題,即當部署Nginx服務(wù)器發(fā)生故障時,也會造成web前端不能容災控制和高可用。采用雙Nginx服務(wù)器的部署,就在很大的程度上規(guī)避了該問題,畢竟兩臺Nginx服務(wù)器同時掛掉的概率要比一臺Nginx服務(wù)器掛掉的概率小的很多。安裝Nginx時需要根據(jù)部署環(huán)境設(shè)置相應(yīng)的虛擬IP地址,設(shè)置虛擬IP地址的過程可以在安裝的過程中在控制臺輸入,后臺動態(tài)設(shè)置部署參數(shù)即可。
以上實施例為云操作系統(tǒng)對應(yīng)的實施例,為了讓本領(lǐng)域技術(shù)人員更加清楚本發(fā)明的構(gòu)思,下文中給出云操作系統(tǒng)的訪問方法對應(yīng)的實施例。
圖2為本發(fā)明實施例提供的一種云操作系統(tǒng)的訪問方法的流程圖。如圖2所示,該方法包括:
S10:web前端服務(wù)系統(tǒng)中的互為冗余的服務(wù)器分別提供各自的真實IP地址。其中,互為冗余的服務(wù)器中均包含容器。
S11:Nginx服務(wù)器通過Nginx架構(gòu)將互為冗余的服務(wù)器的真實IP地址構(gòu)建出直接面向用戶的虛擬IP地址,當接收到用戶的訪問請求時,根據(jù)當前互為冗余的服務(wù)器的運行狀態(tài)將訪問請求發(fā)送至目標容器。
S12:后端服務(wù)器系統(tǒng)根據(jù)目標容器解析出的調(diào)用指令和當前各服務(wù)提供方的負載率調(diào)用對應(yīng)的目標服務(wù)提供方以訪問數(shù)據(jù)庫。
其中,真實IP地址和虛擬IP地址均對應(yīng)同一個數(shù)據(jù)庫。
可以理解的是,兩個服務(wù)器的個數(shù)可以靈活設(shè)置,只要服務(wù)器的個數(shù)為兩個或兩個以上即可。每個服務(wù)器均包含有容器,容器的數(shù)量不作限定,可以為1個,也可以和現(xiàn)有技術(shù)中一樣包含多個。兩個服務(wù)器互為冗余,每個服務(wù)器均提供各自的真實IP地址,通過該真實IP地址可以實現(xiàn)用戶與數(shù)據(jù)庫的訪問過程。
為了防止其中一個服務(wù)器的突然故障導致用戶無法訪問數(shù)據(jù)庫,本實施例中提供至少兩個服務(wù)器,通過Nginx服務(wù)器將兩個服務(wù)器各自的真實IP地址構(gòu)建出一個虛擬IP地址,用戶通過虛擬IP地址訪問數(shù)據(jù)庫,只不過Nginx服務(wù)器在接收到用戶的請求時,需要解析訪問請求中的虛擬IP地址通過哪個服務(wù)器實現(xiàn)訪問的過程,換句話說,該虛擬IP地址對應(yīng)兩個服務(wù)器各自的真實IP地址,可以通過任意一個服務(wù)器中的容器實現(xiàn)用戶的訪問請求。
考慮到每個服務(wù)器的運行狀態(tài)不同,例如負載率不同或者其中一個服務(wù)器出現(xiàn)故障,可能導致訪問的速率不同,因此Nginx服務(wù)器根據(jù)每個服務(wù)器的運行狀態(tài)確定一個合適的服務(wù)器,即確定最終目標容器。目標容器在接收到的用戶的訪問請求后,解析該請求對應(yīng)的調(diào)用指令,并將調(diào)用指令發(fā)送給后端服務(wù)器系統(tǒng)??梢岳斫獾氖?,后端服務(wù)器系統(tǒng)中的注冊管理中心依據(jù)調(diào)用指令和負載率情況,通過RPC調(diào)用方式調(diào)用對應(yīng)的服務(wù)提供方,服務(wù)提供方在接收到調(diào)用指令后,依據(jù)調(diào)用指令的要求在數(shù)據(jù)庫中調(diào)用與用戶的訪問請求對應(yīng)的數(shù)據(jù),并返回至用戶,從而實現(xiàn)響應(yīng)用戶的訪問請求的目的??梢岳斫獾氖牵怨芾碇行目梢圆捎肸ookeeper集群的形式,每個服務(wù)提供方都向注冊中心注冊服務(wù),形成穩(wěn)定的注冊中心集群。每個服務(wù)提供方可以采用jar包的方式部署運行,使用java命令啟動和關(guān)停服務(wù)即可。
可以理解的是,Nginx服務(wù)器在使用過程中,首先編譯安裝Nginx所需要的依賴包,然后進行編譯安裝,本實施例不再贅述。
本實施例中,通過在web前端服務(wù)系統(tǒng)中設(shè)置至少兩個服務(wù)器,兩個服務(wù)器均能夠提供各自的真實IP地址,再通過Nginx服務(wù)器將真實IP地址構(gòu)建為虛擬IP地址并提供給用戶,由于虛擬地址與各真實IP地址均對應(yīng)同一個數(shù)據(jù)庫,因此用戶可以通過虛擬地址訪問到對應(yīng)的數(shù)據(jù)庫。當一個服務(wù)器發(fā)生故障時,可以通過另外一個服務(wù)器實現(xiàn)用戶的訪問請求,由此可見,本方法可以降低web前端服務(wù)系統(tǒng)出現(xiàn)故障的風險,克服了現(xiàn)有技術(shù)中web前端不能容災控制和高可用的缺點,提高了云操作系統(tǒng)的可靠性。
作為優(yōu)選的實施方式,互為冗余的服務(wù)器為兩個,分別是主服務(wù)器和備份服務(wù)器;
其中,主服務(wù)器包含第一容器,用于提供第一真實IP地址;備份服務(wù)器包含第二容器,用于提供第二真實IP地址;Nginx服務(wù)器,用于通過Nginx架構(gòu)將第一真實IP地址和第二真實IP地址構(gòu)建出直接面向用戶的虛擬IP地址。
作為優(yōu)選的實施方式,Nginx服務(wù)器根據(jù)當前互為冗余的服務(wù)器的運行狀態(tài)將訪問請求發(fā)送至目標容器具體包括:
通過Keepalived模式檢測主服務(wù)器的心跳參數(shù)和備份服務(wù)器的心跳參數(shù);
如果主服務(wù)器的心跳參數(shù)和備份服務(wù)器的心跳參數(shù)均存在,則選取負載率較低的服務(wù)器中的容器作為目標容器,并將訪問請求發(fā)送至目標容器;
如果主服務(wù)器的心跳參數(shù)存在和備份服務(wù)器的心跳參數(shù)不存在,則選取第一容器作為目標容器,并將訪問請求發(fā)送至目標容器;
如果主服務(wù)器的心跳參數(shù)不存在和備份服務(wù)器的心跳參數(shù)存在,則選取第二容器作為目標容器,并將訪問請求發(fā)送至目標容器。
作為優(yōu)選的實施方式,還包括:存儲第一真實IP地址、第二真實IP地址以及虛擬IP地址。
作為優(yōu)選的實施方式,Nginx服務(wù)器為兩個,且互為冗余。
由于系統(tǒng)部分的實施例與方法部分的實施例相互對應(yīng),因此方法部分的實施例請參系統(tǒng)部分的實施例的描述,這里暫不贅述。
以上對本發(fā)明所提供的云操作系統(tǒng)及其訪問方法進行了詳細介紹。說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。
專業(yè)人員還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。