本發(fā)明涉及一種分布式架構下的消息順序控制方法,屬于信息處理。
背景技術:
1、通過手機應用app向后端服務請求一些業(yè)務或數(shù)據(jù),比如用戶登錄、注冊、獲取數(shù)據(jù)等,為了防止一個服務能力處理能力不夠,因此需要分布式服務。
2、云端的服務是分布式多節(jié)點,但設備執(zhí)行的消息是具有順序性,比如一個注冊用戶,注冊完后進入首頁,獲取數(shù)據(jù),第一個請求是注冊、第二個請求獲取數(shù)據(jù)列表,正常需要先注冊,再獲取數(shù)據(jù);如圖1所示,按照常規(guī)的消息處理方式第一個請求和第二個請求可能會分配給不同服務來處理,而不同服務處理時所用的時間可能不一樣,因此,可能會出現(xiàn)第二個請求的先處理完下發(fā)出去,而第一個請求后處理完,進而導致設備端先接收到第二個請求,后接收到第一請求,出現(xiàn)亂序,給業(yè)務帶來紊亂。
技術實現(xiàn)思路
1、本發(fā)明的目的是提供一種分布式架構下的消息順序控制方法,以解決目前分布式架構下的控制過程中存在的消息無法按順序來處理導致的業(yè)務控制紊亂的問題。
2、本發(fā)明為解決上述技術問題而提供一種分布式架構下的消息順序控制方法,該方法包括以下步驟:
3、1)在云端為每個用戶分配服務,用戶和服務相對固定;
4、2)云端在收到用戶發(fā)送的消息后按照隊列先后順序進行排列,并將消息分配給與用戶對應的服務,使同一用戶發(fā)送的消息由同一服務來處理;
5、3)各服務對接收到的消息進行處理,得到相應的指令信息,并將指令信息下發(fā)給對應的設備。
6、本發(fā)明通過在云端為每個用戶分配服務,使用戶和服務相對固定,這樣云端在收到用戶發(fā)送的消息后會并將消息分配給與用戶對應的服務,使得同一用戶發(fā)送的消息由同一服務來處理,各服務對接收到的消息進行處理,得到相應的指令信息,并將指令信息下發(fā)給對應的設備。通過這種控制方式,同一用戶的消息會按照時間順序達到一個服務中,該服務會按照順序進行處理,避免了同一用戶的消息被分給不同服務處理時導致的時序紊亂的問題。
7、進一步地,所述步驟3)中各服務在接收到消息后還需進行時間比對,若服務接收到消息的時間與用戶發(fā)送該消息的時間差超過設定閾值,則認為該消息失效,服務不再對該消息進行處理,并向對應的用戶進行重新請求。
8、本發(fā)明還設置有時間控制,通過服務接收到消息的時間與用戶發(fā)送該消息的時間差來判斷消息是否有效,避免由于時間過長導致消息失效,保證了控制的高效型。
9、進一步地,各服務通過網(wǎng)關將指令信息下發(fā)給對應的設備。
10、進一步地,所述網(wǎng)關在接收到指令信息后按照指令信息的類型進行分隊列存儲,同一類型指令信息在一個隊列,不同類型指令在不同的隊列。
11、本發(fā)明在網(wǎng)關側對接收到指令信息后按照指令信息的類型進行分隊列存儲,同一類型指令信息在一個隊列,不同類型指令在不同的隊列,實現(xiàn)了不同類型的指令就可以實現(xiàn)分開存放、分開管理。
12、進一步地,所述的隊列包括有用于存儲單控指令的第一隊列、用于存儲場景指令的第二隊列以及用于存儲系統(tǒng)下發(fā)指令的第三隊列。
13、進一步地,所述第一隊列、第二隊列和第三隊列的優(yōu)先級依次降低。
14、本發(fā)明設置第一隊列的優(yōu)先級高于第二隊列,使得單控指令優(yōu)先處理,第三隊列的優(yōu)先級最低,優(yōu)先保證了智能家居設備控制的及時性。
15、進一步地,所述步驟1)中利用哈希算法為每個用戶分配服務。
16、進一步地,所述步驟2)中的采用kafka隊列的方式進行控制。
1.一種分布式架構下的消息順序控制方法,其特征在于,該方法包括以下步驟:
2.根據(jù)權利要求1所述的分布式架構下的消息順序控制方法,其特征在于,所述步驟3)中各服務在接收到消息后還需進行時間比對,若服務接收到消息的時間與用戶發(fā)送該消息的時間差超過設定閾值,則認為該消息失效,服務不再對該消息進行處理,并向對應的用戶進行重新請求。
3.根據(jù)權利要求1或2所述的分布式架構下的消息順序控制方法,其特征在于,各服務通過網(wǎng)關將指令信息下發(fā)給對應的設備。
4.根據(jù)權利要求3所述的分布式架構下的消息順序控制方法,其特征在于,所述網(wǎng)關在接收到指令信息后按照指令信息的類型進行分隊列存儲,同一類型指令信息在一個隊列,不同類型指令在不同的隊列。
5.根據(jù)權利要求4所述的分布式架構下的消息順序控制方法,其特征在于,所述的隊列包括有用于存儲單控指令的第一隊列、用于存儲場景指令的第二隊列以及用于存儲系統(tǒng)下發(fā)指令的第三隊列。
6.根據(jù)權利要求5所述的分布式架構下的消息順序控制方法,其特征在于,所述第一隊列、第二隊列和第三隊列的優(yōu)先級依次降低。
7.根據(jù)權利要求1-6中任一項所述的分布式架構下的消息順序控制方法,其特征在于,所述步驟1)中利用哈希算法為每個用戶分配服務。
8.根據(jù)權利要求1-6中任一項所述的分布式架構下的消息順序控制方法,其特征在于,所述步驟2)中的采用kafka隊列的方式進行控制。