国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于分布式存儲(chǔ)系統(tǒng)的消息處理方法及系統(tǒng)與流程

      文檔序號(hào):12829251閱讀:308來源:國知局
      基于分布式存儲(chǔ)系統(tǒng)的消息處理方法及系統(tǒng)與流程

      本發(fā)明實(shí)施例涉及分布式存儲(chǔ)系統(tǒng)技術(shù)領(lǐng)域,尤其涉及一種基于分布式存儲(chǔ)系統(tǒng)的消息處理方法及系統(tǒng)。



      背景技術(shù):

      分布式存儲(chǔ)系統(tǒng)包括多個(gè)獨(dú)立的存儲(chǔ)服務(wù)器,各存儲(chǔ)服務(wù)器均可以對(duì)用戶發(fā)送的請(qǐng)求消息進(jìn)行處理。

      在現(xiàn)有技術(shù)中,當(dāng)客戶端需要獲取分布式存儲(chǔ)系統(tǒng)提供的服務(wù)時(shí),客戶端在分布式存儲(chǔ)系統(tǒng)中隨機(jī)選擇一個(gè)存儲(chǔ)服務(wù)器,并向選擇的存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息,并由該存儲(chǔ)服務(wù)器對(duì)客戶端發(fā)送的服務(wù)請(qǐng)求消息進(jìn)行處理;然而,當(dāng)存儲(chǔ)服務(wù)器出現(xiàn)故障或者存儲(chǔ)服務(wù)器與客戶端之間的通信鏈路出現(xiàn)故障時(shí),客戶端可能依然會(huì)在分布式存儲(chǔ)系統(tǒng)中隨機(jī)選擇該存在故障的存儲(chǔ)服務(wù)器,并向該存在故障存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息,導(dǎo)致客戶端發(fā)送的請(qǐng)求消息無法被正常處理,對(duì)客戶端的業(yè)務(wù)造成影響。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明實(shí)施例提供一種基于分布式存儲(chǔ)系統(tǒng)的消息處理方法及系統(tǒng),用于提高分布式存儲(chǔ)系統(tǒng)對(duì)客戶端業(yè)務(wù)處理的可靠性。

      第一方面,本發(fā)明實(shí)施例提供一種基于分布式存儲(chǔ)系統(tǒng)的消息處理方法,應(yīng)用于分布式存儲(chǔ)系統(tǒng),所述分布式存儲(chǔ)系統(tǒng)包括多個(gè)存儲(chǔ)服務(wù)器,所述方法包括:

      攔截客戶端向所述分布式存儲(chǔ)系統(tǒng)發(fā)送的服務(wù)請(qǐng)求消息;

      獲取所述客戶端與各所述存儲(chǔ)服務(wù)器之間的通信狀態(tài);

      根據(jù)所述客戶端與各所述存儲(chǔ)服務(wù)器之間的通信狀態(tài),在所述多個(gè)存儲(chǔ)服務(wù)器中確定第一存儲(chǔ)服務(wù)器,所述客戶端與所述第一存儲(chǔ)服務(wù)器之間的通信狀態(tài)為正常狀態(tài);

      向所述第一存儲(chǔ)服務(wù)器發(fā)送所述服務(wù)請(qǐng)求消息,以使所述第一存儲(chǔ)服務(wù)器對(duì)所述服務(wù)請(qǐng)求消息進(jìn)行處理。

      第二方面,本發(fā)明實(shí)施例提供一種基于分布式存儲(chǔ)系統(tǒng)的消息處理系統(tǒng),應(yīng)用于分布式存儲(chǔ)系統(tǒng),所述分布式存儲(chǔ)系統(tǒng)包括多個(gè)存儲(chǔ)服務(wù)器,所述系統(tǒng)包括:

      攔截模塊,用于攔截客戶端向所述分布式存儲(chǔ)系統(tǒng)發(fā)送的服務(wù)請(qǐng)求消息;

      獲取模塊,用于獲取所述客戶端與各所述存儲(chǔ)服務(wù)器之間的通信狀態(tài);

      確定模塊,用于根據(jù)所述客戶端與各所述存儲(chǔ)服務(wù)器之間的通信狀態(tài),在所述多個(gè)存儲(chǔ)服務(wù)器中確定第一存儲(chǔ)服務(wù)器,所述客戶端與所述第一存儲(chǔ)服務(wù)器之間的通信狀態(tài)為正常狀態(tài);

      發(fā)送模塊,用于向所述第一存儲(chǔ)服務(wù)器發(fā)送所述服務(wù)請(qǐng)求消息,以使所述第一存儲(chǔ)服務(wù)器對(duì)所述服務(wù)請(qǐng)求消息進(jìn)行處理。

      本發(fā)明實(shí)施例提供的基于分布式存儲(chǔ)系統(tǒng)的消息處理方法及系統(tǒng),通過攔截客戶端向分布式存儲(chǔ)系統(tǒng)發(fā)送的服務(wù)請(qǐng)求消息,獲取客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài),并根據(jù)客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài),在多個(gè)存儲(chǔ)服務(wù)器中確定第一存儲(chǔ)服務(wù)器,客戶端與第一存儲(chǔ)服務(wù)器之間的通信狀態(tài)為正常狀態(tài);向第一存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息,以使第一存儲(chǔ)服務(wù)器對(duì)服務(wù)請(qǐng)求消息進(jìn)行處理。在上述過程中,在客戶端向分布式存儲(chǔ)系統(tǒng)發(fā)送服務(wù)請(qǐng)求消息時(shí),消息處理系統(tǒng)對(duì)服務(wù)請(qǐng)求消息進(jìn)行攔截,并根據(jù)客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài)選擇一個(gè)通信狀態(tài)為正常狀態(tài)的第一存儲(chǔ)服務(wù)器,并向第一存儲(chǔ)服務(wù)器發(fā)送攔截得到的服務(wù)請(qǐng)求消息,避免了客戶端向通信狀態(tài)為異常狀態(tài)的存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息,進(jìn)而避免了通信狀態(tài)為異常狀態(tài)的存儲(chǔ)服務(wù)器對(duì)客戶端的業(yè)務(wù)造成的不良影響,提高了分布式存儲(chǔ)系統(tǒng)對(duì)客戶端業(yè)務(wù)處理的可靠性。

      附圖說明

      為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

      圖1為本發(fā)明提供的基于分布式存儲(chǔ)系統(tǒng)的消息處理方法的應(yīng)用場景示意圖;

      圖2為本發(fā)明提供的基于分布式存儲(chǔ)系統(tǒng)的消息處理方法的流程示意圖一;

      圖3為本發(fā)明提供的基于分布式存儲(chǔ)系統(tǒng)的消息處理方法的流程示意圖二;

      圖4為本發(fā)明提供的基于分布式存儲(chǔ)系統(tǒng)的消息處理系統(tǒng)的結(jié)構(gòu)示意圖一;

      圖5為本發(fā)明提供的基于分布式存儲(chǔ)系統(tǒng)的消息處理系統(tǒng)的結(jié)構(gòu)示意圖二。

      具體實(shí)施方式

      為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

      圖1為本發(fā)明提供的基于分布式存儲(chǔ)系統(tǒng)的消息處理方法的應(yīng)用場景示意圖,請(qǐng)參照?qǐng)D1,在分布式存儲(chǔ)系統(tǒng)中包括m個(gè)存儲(chǔ)服務(wù)器,分別記為存儲(chǔ)服務(wù)器101-1、存儲(chǔ)服務(wù)器101-2以及存儲(chǔ)服務(wù)器101-m等,該分布式存儲(chǔ)系統(tǒng)可供n個(gè)客戶端使用,該n個(gè)客戶端分別記為客戶端102-1、客戶端102-2以及客戶端102-n等;該n個(gè)客戶端可以通過無線和/或有線網(wǎng)絡(luò)與分布式存儲(chǔ)系統(tǒng)中的任意一個(gè)存儲(chǔ)服務(wù)器進(jìn)行交互,以獲取該存儲(chǔ)服務(wù)器提供的服務(wù)。下面,通過具體實(shí)施例對(duì)本發(fā)明提供的基于分布式存儲(chǔ)系統(tǒng)的消息處理方法及系統(tǒng)進(jìn)行詳細(xì)說明。

      圖2為本發(fā)明提供的基于分布式存儲(chǔ)系統(tǒng)的消息處理方法的流程示意圖一,該方法的執(zhí)行主體為基于分布式存儲(chǔ)系統(tǒng)的消息處理系統(tǒng),請(qǐng)參照?qǐng)D2,該方法可以包括:

      s201、攔截客戶端向分布式存儲(chǔ)系統(tǒng)發(fā)送的服務(wù)請(qǐng)求消息;

      s202、獲取客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài);

      s203、根據(jù)客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài),在多個(gè)存儲(chǔ)服務(wù)器中確定第一存儲(chǔ)服務(wù)器,客戶端與第一存儲(chǔ)服務(wù)器之間的通信狀態(tài)為正常狀態(tài);

      s204、向第一存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息,以使第一存儲(chǔ)服務(wù)器對(duì)服務(wù)請(qǐng)求消息進(jìn)行處理。

      在本發(fā)明實(shí)施例中,客戶端與存儲(chǔ)服務(wù)器之間的通信狀態(tài)包括客戶端與存儲(chǔ)服務(wù)器之間的通信鏈路狀態(tài)、以及存儲(chǔ)服務(wù)器的狀態(tài),客戶端與存儲(chǔ)服務(wù)器之間的通信狀態(tài)分為正常狀態(tài)和異常狀態(tài);若客戶端與存儲(chǔ)服務(wù)器之間的通信狀態(tài)為正常狀態(tài),則客戶端與存儲(chǔ)服務(wù)器之間的通信鏈路狀態(tài)為正常狀態(tài),且存儲(chǔ)服務(wù)器也為正常狀態(tài);若客戶端與存儲(chǔ)服務(wù)器之間的通信狀態(tài)為異常狀態(tài),則客戶端與存儲(chǔ)服務(wù)器之間的通信鏈路狀態(tài)為異常狀態(tài),或者,存儲(chǔ)服務(wù)器為異常狀態(tài)。

      在實(shí)際應(yīng)用過程中,基于分布式存儲(chǔ)系統(tǒng)的消息處理系統(tǒng)(下文簡稱消息處理系統(tǒng))設(shè)置在客戶端與分布式存儲(chǔ)系統(tǒng)之間,優(yōu)選的,消息處理系統(tǒng)設(shè)置在客戶端側(cè),當(dāng)客戶端需要獲取分布式存儲(chǔ)系統(tǒng)提供的服務(wù),并向分布式存儲(chǔ)系統(tǒng)發(fā)送服務(wù)請(qǐng)求消息時(shí),消息處理系統(tǒng)攔截客戶端向分布式存儲(chǔ)系統(tǒng)發(fā)送的服務(wù)請(qǐng)求消息。

      在消息處理系統(tǒng)攔截到客戶端向分布式存儲(chǔ)系統(tǒng)發(fā)送的服務(wù)請(qǐng)求消息后,獲取客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài),在通信狀態(tài)為正常狀態(tài)的存儲(chǔ)服務(wù)器中確定第一存儲(chǔ)服務(wù)器,并向第一存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息,以使第一存儲(chǔ)服務(wù)器對(duì)服務(wù)請(qǐng)求消息進(jìn)行處理。

      在上述過程中,為了提高消息處理系統(tǒng)獲取客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài)的速度,可以在消息處理系統(tǒng)中設(shè)置一個(gè)通信狀態(tài)列表,該通信狀態(tài)列表用于存儲(chǔ)最新的客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài);消息處理系統(tǒng)可以實(shí)時(shí)或周期性的獲取客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài),并根據(jù)客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài)更新通信狀態(tài)列表,當(dāng)消息處理系統(tǒng)需要獲取客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài)時(shí),直接在通信狀態(tài)列表中獲取即可。

      進(jìn)一步的,通信狀態(tài)列表中也可以只存儲(chǔ)通信狀態(tài)為正常狀態(tài)的存儲(chǔ)服務(wù)器的標(biāo)識(shí),消息處理系統(tǒng)實(shí)時(shí)或周期性的獲取客戶端與各存儲(chǔ)服務(wù)器之間 的通信狀態(tài),當(dāng)消息處理系統(tǒng)確定客戶端與一存儲(chǔ)服務(wù)器之間的通信狀態(tài)為正常狀態(tài)時(shí),則在通信狀態(tài)列表中保留、或者增加該存儲(chǔ)服務(wù)器的標(biāo)識(shí),當(dāng)消息處理系統(tǒng)確定客戶端與一存儲(chǔ)服務(wù)器之間的通信狀態(tài)為異常狀態(tài),且通信狀態(tài)列表中包括該存儲(chǔ)服務(wù)器的標(biāo)識(shí)時(shí),則在通信狀態(tài)列表中刪除該存儲(chǔ)服務(wù)器的標(biāo)識(shí);相應(yīng)的,當(dāng)消息處理系統(tǒng)需要根據(jù)客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài),在多個(gè)存儲(chǔ)服務(wù)器中確定第一存儲(chǔ)服務(wù)器時(shí),直接在通信狀態(tài)列表中包括的存儲(chǔ)服務(wù)器中確定第一存儲(chǔ)服務(wù)器節(jié)即可。

      本發(fā)明實(shí)施例提供的基于分布式存儲(chǔ)系統(tǒng)的消息處理方法,通過攔截客戶端向分布式存儲(chǔ)系統(tǒng)發(fā)送的服務(wù)請(qǐng)求消息,獲取客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài),并根據(jù)客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài),在多個(gè)存儲(chǔ)服務(wù)器中確定第一存儲(chǔ)服務(wù)器,客戶端與第一存儲(chǔ)服務(wù)器之間的通信狀態(tài)為正常狀態(tài);向第一存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息,以使第一存儲(chǔ)服務(wù)器對(duì)服務(wù)請(qǐng)求消息進(jìn)行處理。在上述過程中,在客戶端向分布式存儲(chǔ)系統(tǒng)發(fā)送服務(wù)請(qǐng)求消息時(shí),消息處理系統(tǒng)對(duì)服務(wù)請(qǐng)求消息進(jìn)行攔截,并根據(jù)客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài)選擇一個(gè)通信狀態(tài)為正常狀態(tài)的第一存儲(chǔ)服務(wù)器,并向第一存儲(chǔ)服務(wù)器發(fā)送攔截得到的服務(wù)請(qǐng)求消息,避免了客戶端向通信狀態(tài)為異常狀態(tài)的存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息,進(jìn)而避免了通信狀態(tài)為異常狀態(tài)的存儲(chǔ)服務(wù)器對(duì)客戶端的業(yè)務(wù)造成的不良影響,提高了分布式存儲(chǔ)系統(tǒng)對(duì)客戶端業(yè)務(wù)處理的可靠性。

      在圖2所示實(shí)施例的基礎(chǔ)上,為了進(jìn)一步提高分布式存儲(chǔ)系統(tǒng)對(duì)客戶端業(yè)務(wù)處理的可靠性,在向第一存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息之后,還可以判斷第一存儲(chǔ)服務(wù)器是否成功接收到服務(wù)請(qǐng)求消息,若確定第一存儲(chǔ)服務(wù)器沒有成功接收到服務(wù)請(qǐng)求消息時(shí),則重新選擇第二存儲(chǔ)服務(wù)器,并向第二存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息,具體的,請(qǐng)參見圖3所示實(shí)施例。

      圖3為本發(fā)明提供的基于分布式存儲(chǔ)系統(tǒng)的消息處理方法的流程示意圖二,在圖2所示實(shí)施例的基礎(chǔ)上,請(qǐng)參照?qǐng)D3,該方法可以包括:

      s301、攔截客戶端向分布式存儲(chǔ)系統(tǒng)發(fā)送的服務(wù)請(qǐng)求消息;

      s302、獲取客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài);

      s303、根據(jù)客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài),在多個(gè)存儲(chǔ)服務(wù)器中確定第一存儲(chǔ)服務(wù)器,客戶端與第一存儲(chǔ)服務(wù)器之間的通信狀態(tài)為正常狀 態(tài);

      s304、向第一存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息;

      s305、判斷在預(yù)設(shè)響應(yīng)時(shí)長內(nèi)是否收到第一存儲(chǔ)服務(wù)器發(fā)送的接收成功響應(yīng)消息;

      若是,則執(zhí)行s306;

      若否,則執(zhí)行s307;

      s306、接收第一存儲(chǔ)服務(wù)器通過預(yù)先建立的客戶端與第一存儲(chǔ)服務(wù)器之間的多個(gè)線程中的任意一個(gè)線程發(fā)送的、與服務(wù)請(qǐng)求消息對(duì)應(yīng)的服務(wù)響應(yīng)消息;

      s307、根據(jù)客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài),在多個(gè)存儲(chǔ)服務(wù)器中確定第二存儲(chǔ)服務(wù)器,并向第二存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息。

      在圖3所示的實(shí)施例中,s301與s201相同、s304與s204相同,此處不再進(jìn)行贅述。

      在s302中,可選的,消息處理器可以通過如下可行的實(shí)現(xiàn)方式獲取客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài),具體的:分別向各存儲(chǔ)服務(wù)器發(fā)送探測消息,探測消息用于獲取客戶端與存儲(chǔ)服務(wù)器之間的通信狀態(tài);接收探測消息對(duì)應(yīng)的反饋消息,反饋消息包括通信狀態(tài)。

      在該種可行的實(shí)現(xiàn)方式中,消息處理器可以周期性的向存儲(chǔ)服務(wù)器發(fā)送探測信息,可選的,周期可以為100毫秒,可以根據(jù)實(shí)際需要設(shè)置該周期的長短;探測信息探測客戶端與存儲(chǔ)服務(wù)器之間的通信鏈路是否正常,并判斷存儲(chǔ)服務(wù)器是否可達(dá),如存儲(chǔ)服務(wù)器可達(dá),則可以確定存儲(chǔ)服務(wù)器正常,若存儲(chǔ)服務(wù)器不可達(dá),則可以確定存儲(chǔ)服務(wù)器發(fā)生故障;探測信息用于在確定得到客戶端與存儲(chǔ)服務(wù)器之間的通信狀態(tài)后,生成反饋信息并返回客戶端,以使客戶端接收到探測信息對(duì)應(yīng)的反饋信息,可選的,該反饋信息中可以包括客戶端與存儲(chǔ)服務(wù)器之間的通信鏈路狀態(tài)以及存儲(chǔ)服務(wù)器的狀態(tài);進(jìn)一步的,探測信息可以為控制報(bào)文協(xié)議(internetcontrolmessageprotocol,簡稱icmp)報(bào)文,也可以為因特網(wǎng)包探索器(packetinternetgroper,簡稱ping)消息。

      在s303中,消息處理系統(tǒng)可以通過如下可行的方式在多個(gè)存儲(chǔ)服務(wù)器中確定第一存儲(chǔ)服務(wù)器,具體的:在各存儲(chǔ)服務(wù)器中,確定通信狀態(tài)為正常狀 態(tài)的存儲(chǔ)服務(wù)器;獲取各通信狀態(tài)為正常狀態(tài)的存儲(chǔ)服務(wù)器的剩余處理時(shí)長,剩余處理時(shí)長為存儲(chǔ)服務(wù)器對(duì)存儲(chǔ)服務(wù)器中的未處理的服務(wù)請(qǐng)求消息進(jìn)行處理所需要的時(shí)長;確定剩余處理時(shí)長最短的存儲(chǔ)服務(wù)器為第一存儲(chǔ)服務(wù)器。

      在實(shí)際使用過程中,分布式存儲(chǔ)系統(tǒng)可以向多個(gè)客戶端提供服務(wù),因此,分布式存儲(chǔ)系統(tǒng)中的各存儲(chǔ)服務(wù)器在短時(shí)間內(nèi)可能收到多個(gè)服務(wù)請(qǐng)求消息,使得存儲(chǔ)服務(wù)器中可能存在多個(gè)未處理的請(qǐng)求消息,為了保證客戶端發(fā)送出去的服務(wù)請(qǐng)求信息能夠得到快速處理,以及分布式存儲(chǔ)系統(tǒng)中各存儲(chǔ)服務(wù)器的負(fù)載均衡,消息處理系統(tǒng)先在各存儲(chǔ)服務(wù)器中,確定通信狀態(tài)為正常狀態(tài)的存儲(chǔ)服務(wù)器,并獲取通信狀態(tài)為正常狀態(tài)的存儲(chǔ)服務(wù)器的剩余處理時(shí)長,剩余處理時(shí)長是指存儲(chǔ)服務(wù)器對(duì)消息隊(duì)列中的未處理的服務(wù)請(qǐng)求消息進(jìn)行處理所需要的總時(shí)長,消息處理系統(tǒng)根據(jù)各存儲(chǔ)服務(wù)器的剩余處理時(shí)長,確定剩余時(shí)長最短的存儲(chǔ)服務(wù)器為第一存儲(chǔ)服務(wù)器。

      進(jìn)一步的,在實(shí)際應(yīng)用過程中,為了使得存儲(chǔ)服務(wù)器可以有序的對(duì)收到的多個(gè)服務(wù)請(qǐng)求消息進(jìn)行處理,在各存儲(chǔ)服務(wù)器中設(shè)置有消息隊(duì)列,存儲(chǔ)服務(wù)器在接收到服務(wù)請(qǐng)求消息后,根據(jù)接收到服務(wù)請(qǐng)求消息的時(shí)間順序,依次將服務(wù)請(qǐng)求消息放入消息隊(duì)列中,并依次對(duì)消息對(duì)應(yīng)中的服務(wù)請(qǐng)求消息進(jìn)行處理。

      示例性的,假設(shè)分布式存儲(chǔ)系統(tǒng)中包括5個(gè)存儲(chǔ)服務(wù)器,分別記為存儲(chǔ)服務(wù)器1-存儲(chǔ)服務(wù)器5,消息處理系統(tǒng)分別獲取客戶端與該5個(gè)存儲(chǔ)服務(wù)器之間的通信狀態(tài),并確定客戶端與存儲(chǔ)服務(wù)器1-存儲(chǔ)服務(wù)器4之間的通信狀態(tài)為正常狀態(tài),則消息處理器分別獲取存儲(chǔ)服務(wù)器1-存儲(chǔ)服務(wù)器4的剩余處理時(shí)長,假設(shè)存儲(chǔ)服務(wù)器1-存儲(chǔ)服務(wù)器4中,存儲(chǔ)服務(wù)器2的剩余處理時(shí)長最短,則消息處理器將存儲(chǔ)服務(wù)器2作為第一存儲(chǔ)服務(wù)器。

      在s305-s307中,在消息處理系統(tǒng)向第一存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息之后,若第一存儲(chǔ)服務(wù)器接收到服務(wù)請(qǐng)求消息,則第一存儲(chǔ)服務(wù)器會(huì)向客戶端發(fā)送接收成功響應(yīng)消息,以告知客戶端第一存儲(chǔ)服務(wù)器接收到服務(wù)請(qǐng)求消息;因此,為了確認(rèn)第一存儲(chǔ)服務(wù)器是否成功接收到了服務(wù)請(qǐng)求消息,消息處理系統(tǒng)向第一存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息之后,消息處理系統(tǒng)實(shí)時(shí)檢測預(yù)設(shè)響應(yīng)時(shí)長內(nèi)是否收到第一存儲(chǔ)服務(wù)器發(fā)送的接收成功響應(yīng)消息。

      若消息處理系統(tǒng)在預(yù)設(shè)響應(yīng)時(shí)長內(nèi)未接收到第一存儲(chǔ)服務(wù)器發(fā)送的接收 成功響應(yīng)消息,則可能第一存儲(chǔ)服務(wù)器出現(xiàn)故障,或者客戶端與第一存儲(chǔ)服務(wù)器之間的通信鏈路出現(xiàn)故障,則消息處理系統(tǒng)根據(jù)客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài),在多個(gè)存儲(chǔ)服務(wù)器中確定通信狀態(tài)為正常狀態(tài)的第二存儲(chǔ)服務(wù)器,向第二存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息,重復(fù)上述過程,直至消息處理系統(tǒng)接收到了與服務(wù)請(qǐng)求消息對(duì)應(yīng)的接收成功響應(yīng)消息;可選的,預(yù)設(shè)響應(yīng)時(shí)長可以為3秒,在實(shí)際應(yīng)用過程中,可以根據(jù)實(shí)際需要設(shè)置預(yù)設(shè)響應(yīng)時(shí)長。

      若消息處理系統(tǒng)在預(yù)設(shè)響應(yīng)時(shí)長內(nèi)接收到第一存儲(chǔ)服務(wù)器發(fā)送的接收成功響應(yīng)消息,則說明第一存儲(chǔ)服務(wù)器成功接收到了服務(wù)請(qǐng)求消息,在第一存儲(chǔ)服務(wù)器對(duì)服務(wù)請(qǐng)求消息處理完成后,生成與該服務(wù)請(qǐng)求消息對(duì)應(yīng)的服務(wù)響應(yīng)消息;在實(shí)際應(yīng)用過程中,為了加快存儲(chǔ)服務(wù)器向客戶端發(fā)送服務(wù)響應(yīng)消息的速度,在客戶端與存儲(chǔ)服務(wù)器之間建立有多個(gè)線程,可選的,線程的個(gè)數(shù)可以為1個(gè)-3個(gè),因此,在第一存儲(chǔ)服務(wù)器生成與該服務(wù)請(qǐng)求消息對(duì)應(yīng)的服務(wù)響應(yīng)消息后,可以通過該多個(gè)線程中的任意一個(gè)線程向客戶端發(fā)送該服務(wù)響應(yīng)消息。

      下面,通過具體示例,對(duì)圖3所示的方法進(jìn)行詳細(xì)說明。

      假設(shè)分布式存儲(chǔ)系統(tǒng)中包括5個(gè)存儲(chǔ)服務(wù)器,分別記為存儲(chǔ)服務(wù)器1-存儲(chǔ)服務(wù)器5,消息處理系統(tǒng)設(shè)置在客戶端側(cè),位于客戶端與分布式存儲(chǔ)系統(tǒng)之間,客戶端可以通過消息處理系統(tǒng)與存儲(chǔ)服務(wù)器1-存儲(chǔ)服務(wù)器5中的任意一個(gè)存儲(chǔ)服務(wù)器進(jìn)行交互,以獲取分布式存儲(chǔ)系統(tǒng)提供的服務(wù)。

      消息處理系統(tǒng)中包括通信狀態(tài)列表,該通信狀態(tài)列表中包括存儲(chǔ)服務(wù)器1-存儲(chǔ)服務(wù)器5中通信狀態(tài)為正常狀態(tài)的存儲(chǔ)服務(wù)器的標(biāo)識(shí);消息處理系統(tǒng)周期性向存儲(chǔ)服務(wù)器1-存儲(chǔ)服務(wù)器5發(fā)送探測消息,并接收各探測消息對(duì)應(yīng)的反饋消息,反饋消息中包括客戶端與存儲(chǔ)服務(wù)器之間的通信鏈路的狀態(tài)、以及存儲(chǔ)服務(wù)器的狀態(tài),消息處理系統(tǒng)根據(jù)接收到的探測消息確定客戶端與各存儲(chǔ)服務(wù)器的通信狀態(tài),并根據(jù)獲取得到的客戶端與各存儲(chǔ)服務(wù)器的通信狀態(tài)更新通信狀態(tài)列表。

      當(dāng)客戶端需要獲取分布式存儲(chǔ)系統(tǒng)提供的服務(wù)時(shí),客戶端需要向分布式存儲(chǔ)系統(tǒng)發(fā)送服務(wù)請(qǐng)求消息,在客戶端向分布式存儲(chǔ)系統(tǒng)發(fā)送服務(wù)請(qǐng)求消息時(shí),消息處理系統(tǒng)攔截客戶端向分布式存儲(chǔ)系統(tǒng)發(fā)送服務(wù)請(qǐng)求消息,并在通 信狀態(tài)列表中獲取通信狀態(tài)為正常狀態(tài)的存儲(chǔ)服務(wù)器的標(biāo)識(shí),假設(shè)獲取得到通信狀態(tài)為正常狀態(tài)的存儲(chǔ)服務(wù)器的標(biāo)識(shí)為存儲(chǔ)服務(wù)器1-存儲(chǔ)服務(wù)器3。

      在消息處理系統(tǒng)確定通信狀態(tài)為正常狀態(tài)的存儲(chǔ)服務(wù)器為存儲(chǔ)服務(wù)器1-存儲(chǔ)服務(wù)器3之后,消息處理系統(tǒng)分別向存儲(chǔ)服務(wù)器1-存儲(chǔ)服務(wù)器3發(fā)送剩余處理時(shí)長獲取請(qǐng)求消息,以獲取存儲(chǔ)服務(wù)器1-存儲(chǔ)服務(wù)器3的剩余處理時(shí)長,并在存儲(chǔ)服務(wù)器1-存儲(chǔ)服務(wù)器3中選擇剩余處理時(shí)長最短的存儲(chǔ)服務(wù)器,假設(shè)存儲(chǔ)服務(wù)器1-存儲(chǔ)服務(wù)器3中剩余處理時(shí)長最短的存儲(chǔ)服務(wù)器為存儲(chǔ)服務(wù)器1,則消息處理系統(tǒng)向存儲(chǔ)服務(wù)器1發(fā)送攔截得到的服務(wù)請(qǐng)求消息。

      在消息處理系統(tǒng)向存儲(chǔ)服務(wù)器1發(fā)送攔截得到的服務(wù)請(qǐng)求消息之后,消息處理系統(tǒng)判斷在預(yù)設(shè)響應(yīng)時(shí)長(例如3秒)內(nèi)是否收到存儲(chǔ)服務(wù)器1發(fā)送的接收成功響應(yīng)消息,假設(shè)消息處理系統(tǒng)在預(yù)設(shè)響應(yīng)時(shí)長內(nèi)未接收到存儲(chǔ)服務(wù)器1發(fā)送的接收成功響應(yīng)消息,則消息處理系統(tǒng)重復(fù)上述過程,確定接收服務(wù)請(qǐng)求消息的存儲(chǔ)服務(wù)器(該存儲(chǔ)服務(wù)器與存儲(chǔ)服務(wù)器1不同),假設(shè)消息處理系統(tǒng)確定得到的存儲(chǔ)服務(wù)器為存儲(chǔ)服務(wù)器3,則消息處理系統(tǒng)向存儲(chǔ)服務(wù)器3發(fā)送攔截得到的服務(wù)請(qǐng)求消息。

      假設(shè)消息處理系統(tǒng)在預(yù)設(shè)響應(yīng)時(shí)長內(nèi)接收到存儲(chǔ)服務(wù)器3發(fā)送的接收成功響應(yīng)消息,說明存儲(chǔ)服務(wù)器3成功接收到了服務(wù)請(qǐng)求消息,在存儲(chǔ)服務(wù)器3對(duì)服務(wù)請(qǐng)求消息處理完成后,生成與該服務(wù)請(qǐng)求消息對(duì)應(yīng)的服務(wù)響應(yīng)消息,并通過客戶端與存儲(chǔ)服務(wù)器3之間的任意一個(gè)線程向客戶端發(fā)送服務(wù)響應(yīng)消息。

      在上述過程中,在客戶端向分布式存儲(chǔ)系統(tǒng)發(fā)送服務(wù)請(qǐng)求消息時(shí),消息處理系統(tǒng)對(duì)服務(wù)請(qǐng)求消息進(jìn)行攔截,并根據(jù)客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài)選擇一個(gè)通信狀態(tài)為正常狀態(tài)的第一存儲(chǔ)服務(wù)器,并向第一存儲(chǔ)服務(wù)器發(fā)送攔截得到的服務(wù)請(qǐng)求消息,避免了客戶端向通信狀態(tài)為異常狀態(tài)的存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息,進(jìn)而避免了通信狀態(tài)為異常狀態(tài)的存儲(chǔ)服務(wù)器對(duì)客戶端的業(yè)務(wù)造成的不良影響,提高了分布式存儲(chǔ)系統(tǒng)對(duì)客戶端業(yè)務(wù)處理的可靠性。

      圖4為本發(fā)明提供的基于分布式存儲(chǔ)系統(tǒng)的消息處理系統(tǒng)的結(jié)構(gòu)示意圖一,該系統(tǒng)應(yīng)用于分布式存儲(chǔ)系統(tǒng),分布式存儲(chǔ)系統(tǒng)包括多個(gè)存儲(chǔ)服務(wù)器,請(qǐng)參照?qǐng)D4,該系統(tǒng)可以包括:

      攔截模塊401,用于攔截客戶端向分布式存儲(chǔ)系統(tǒng)發(fā)送的服務(wù)請(qǐng)求消息;

      可選的,攔截模塊401與客戶端連接。

      獲取模塊402,用于獲取客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài);

      可選的,獲取模塊402分別與客戶端和分布式存儲(chǔ)系統(tǒng)中的各個(gè)存儲(chǔ)服務(wù)器連接。

      確定模塊403,用于根據(jù)客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài),在多個(gè)存儲(chǔ)服務(wù)器中確定第一存儲(chǔ)服務(wù)器,客戶端與第一存儲(chǔ)服務(wù)器之間的通信狀態(tài)為正常狀態(tài);

      發(fā)送模塊404,用于向第一存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息,以使第一存儲(chǔ)服務(wù)器對(duì)服務(wù)請(qǐng)求消息進(jìn)行處理。

      圖5為本發(fā)明提供的基于分布式存儲(chǔ)系統(tǒng)的消息處理系統(tǒng)的結(jié)構(gòu)示意圖二,在圖4所示實(shí)施例的基礎(chǔ)上,請(qǐng)參照?qǐng)D5,該系統(tǒng)還可以包括:

      判斷模塊405,用于在發(fā)送模塊404在向第一存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息之后,判斷在預(yù)設(shè)響應(yīng)時(shí)長內(nèi)是否收到第一存儲(chǔ)服務(wù)器發(fā)送的接收成功響應(yīng)消息;

      確定模塊403還可以用于,在判斷模塊405判斷在預(yù)設(shè)響應(yīng)時(shí)長內(nèi)未接收到接收成功響應(yīng)消息時(shí),根據(jù)客戶端與各存儲(chǔ)服務(wù)器之間的通信狀態(tài),在多個(gè)存儲(chǔ)服務(wù)器中確定第二存儲(chǔ)服務(wù)器;

      發(fā)送模塊404還可以用于,向第二存儲(chǔ)服務(wù)器發(fā)送服務(wù)請(qǐng)求消息,客戶端與第二存儲(chǔ)服務(wù)器之間的通信狀態(tài)為正常狀態(tài)。

      進(jìn)一步的,該系統(tǒng)還可以包括接收模塊406,其中,

      接收模塊406用于,在判斷模塊405判斷在預(yù)設(shè)響應(yīng)時(shí)長內(nèi)接收到第一存儲(chǔ)服務(wù)器發(fā)送的接收成功響應(yīng)消息之后,接收第一存儲(chǔ)服務(wù)器通過預(yù)先建立的客戶端與第一存儲(chǔ)服務(wù)器之間的多個(gè)線程中的任意一個(gè)線程發(fā)送的、與服務(wù)請(qǐng)求消息對(duì)應(yīng)的服務(wù)響應(yīng)消息。

      可選的,確定模塊403具體可以用于:

      在各存儲(chǔ)服務(wù)器中,確定通信狀態(tài)為正常狀態(tài)的存儲(chǔ)服務(wù)器;

      獲取各通信狀態(tài)為正常狀態(tài)的存儲(chǔ)服務(wù)器的剩余處理時(shí)長,剩余處理時(shí)長為存儲(chǔ)服務(wù)器對(duì)存儲(chǔ)服務(wù)器中的未處理的服務(wù)請(qǐng)求消息進(jìn)行處理所需要的時(shí)長;

      確定剩余處理時(shí)長最短的存儲(chǔ)服務(wù)器為第一存儲(chǔ)服務(wù)器。

      獲取模塊402具體可以用于:

      分別向各存儲(chǔ)服務(wù)器發(fā)送探測消息,探測消息用于獲取客戶端與存儲(chǔ)服務(wù)器之間的通信狀態(tài);

      接收探測消息對(duì)應(yīng)的反饋消息,反饋消息包括通信狀態(tài)。

      本發(fā)明實(shí)施例所述的系統(tǒng)可以執(zhí)行上述圖2-圖3實(shí)施例所示的方案,其實(shí)現(xiàn)原理以及有益效果類似,此處不再進(jìn)行贅述。

      本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。

      最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1