[發明專利]一種數據分片分布式處理方法、系統、介質和電子設備在審
| 申請號: | 201910386117.0 | 申請日: | 2019-05-09 |
| 公開(公告)號: | CN110334091A | 公開(公告)日: | 2019-10-15 |
| 發明(設計)人: | 孫龍寶 | 申請(專利權)人: | 重慶天蓬網絡有限公司 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22;G06F16/23;G06F16/2458;G06F16/28;G06F16/27 |
| 代理公司: | 北京酷愛智慧知識產權代理有限公司 11514 | 代理人: | 袁克來 |
| 地址: | 401135 重*** | 國省代碼: | 重慶;50 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 消耗量數據 服務器 分布式處理 電子設備 數據分片 初始化 哈希 隊列 關系型數據庫 服務器信息 服務器注冊 邏輯處理 用戶信息 集群 寫入 存儲 創建 | ||
1.一種數據分片分布式處理方法,該方法應用于數據分片分布式處理系統,該系統包括注冊模塊、創建模塊、接收模塊、獲取模塊、存儲模塊、以及處理模塊,其特征在于,該方法包括:
步驟1,注冊模塊將多個初始化服務器注冊到zookeeper集群中;
步驟2,創建模塊創建所述多個初始化服務器的一致性哈希環;
步驟3,接收模塊接收單次點擊消耗量數據并直接寫入mysql關系型數據庫;
步驟4,獲取模塊通過所述單次點擊消耗量數據中的用戶信息以及所述一致性哈希環,獲取距離用戶最近的服務器信息;
步驟5,存儲模塊將所述單次點擊消耗量數據存儲到獲取的所述服務器需要處理的redis列表隊列中;
步驟6,處理模塊從服務器的所述redis列表隊列中獲取所述單次點擊消耗量數據,并進行邏輯處理。
2.根據權利要求1所述的方法,其特征在于,步驟2中,所述創建所述多個初始化服務器的一致性哈希環具體包括:
分配M個虛擬節點給N臺服務器節點;
通過FNV1哈希算法對所述虛擬節點進行哈希計算,得到哈希值;
將得到的所述哈希值存儲在節點哈希表中,則所述一致性哈希環上就會產生N*M個節點。
3.根據權利要求1所述的方法,其特征在于,步驟4中,所述通過所述單次點擊消耗量數據中的用戶信息以及所述一致性哈希環獲取距離用戶最近的服務器信息,具體包括:
根據所述單次點擊消耗量數據中的用戶信息,通過FNV1哈希算法計算哈希值;
從所述一致性哈希環中查找距離通過FNV1哈希算法計算的哈希值最近的虛擬節點;
根據所述最近的虛擬節點信息獲取對應的服務器節點。
4.根據權利要求1所述的方法,其特征在于,步驟5,所述將所述單次點擊消耗量數據存儲到獲取的所述服務器需要處理的redis列表隊列中,具體包括:
根據所述服務器的redis列表隊列對應的key,將所述單次點擊消耗量數據放入所述key對應的列表隊列當中。
5.根據權利要求1所述的方法,其特征在于,該方法還包括基于所述zookeeper監聽服務器變更情況,所述服務器變更情況包括新增服務器及刪除服務器。
6.根據權利要求5所述的方法,其特征在于,基于所述zookeeper監聽服務器變更情況具體包括:
當所述zookeeper監聽到新增服務器時,更新所述一致性哈希環,同時在redis中新增一個對于該服務器key的redis列表隊列,其他邏輯不變;或
當所述zookeeper監聽到服務器刪除時,則更新所述一致性哈希環,同時該服務器節點對應redis列表隊列中的數據重新分配到其他服務器節點對應的列表隊列當中。
7.根據權利要求1所述的方法,其特征在于,步驟6中,所述進行邏輯處理具體包括:
當所述redis列表隊列的數據丟失時,從所述mysql數據庫中將未處理狀態的數據重新進行分片,寫入redis列表隊列當中。
8.一種數據分片分布式處理系統,該系統用于實現如權利要求1至7之一所述的分布式處理方法,其特征在于,包括:
注冊模塊,用于將多個初始化服務器注冊到zookeeper集群中;
創建模塊,用于創建所述多個初始化服務器的一致性哈希環;
接收模塊,用于接收單次點擊消耗量數據并直接寫入mysql關系型數據庫;
獲取模塊,用于通過所述單次點擊消耗量數據中的用戶信息及所述一致性哈希環獲取距離用戶最近的服務器信息;
存儲模塊,用于將所述單次點擊消耗量數據存儲到獲取的所述服務器需要處理的redis列表隊列中;
處理模塊,用于從服務器的所述redis列表隊列中獲取所述單次點擊消耗量數據,并進行邏輯處理。
9.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述程序被處理器執行時實現如權利要求1至7之一所述的分布式處理方法。
10.一種電子設備,其特征在于,包括:
一個或多個處理器;
存儲裝置,用于存儲一個或多個程序,當所述一個或多個程序被所述一個或多個處理器執行時,使得所述一個或多個處理器實現如權利要求1至7之一所述的分布式處理方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于重慶天蓬網絡有限公司,未經重慶天蓬網絡有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910386117.0/1.html,轉載請聲明來源鉆瓜專利網。





