[發明專利]數據處理方法與裝置在審
| 申請號: | 202010051117.8 | 申請日: | 2020-01-17 |
| 公開(公告)號: | CN113138858A | 公開(公告)日: | 2021-07-20 |
| 發明(設計)人: | 何宇彤;趙巖 | 申請(專利權)人: | 北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;G06F16/20;G06F16/22 |
| 代理公司: | 北京律智知識產權代理有限公司 11438 | 代理人: | 袁禮君;孫寶海 |
| 地址: | 100086 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據處理 方法 裝置 | ||
本公開提供一種數據處理方法與裝置。數據處理方法包括:從消息隊列中間件獲取目標數據;獲取所述目標數據的驗證值,并檢測內存中的預設雙向鏈表中是否存在所述目標數據的所述驗證值;如果所述預設雙向鏈表中不存在所述驗證值,檢測緩存的預設數據庫中是否存在所述驗證值;在所述預設數據庫中不存在所述驗證值時處理所述目標數據。本公開提供的數據處理方法可以快速判斷出是否存在數據重復消費情況且不影響數據處理速度。
技術領域
本公開涉及計算機技術領域,具體而言,涉及一種數據處理方法與裝置。
背景技術
在進行分布式實時計算前,通常要從訂閱的消息隊列中間件的主題中消費數據流,然后再依據其內容進行后續的處理計算。而目前主流的消息隊列中間件,如Kafka、RabbitMQ、RocketMQ等,在數據消費時均可能出現消息重復的問題,如果消費數據的服務是非冪等性的,就會造成計算結果的偏差。
目前對于數據重復消費問題的處理,主要通過驗證消費反饋消息來實現,即執行消費的服務線程在處理完取得的數據后,對消息隊列中間件返回一個反饋消息,告知消息隊列中間件數據已被處理,使消息隊列中間件開始分發下一條數據。如果消息隊列中間件在預設時間內沒有接收到反饋消息,則會將當前數據重復分發給下一個服務線程去執行。如果預設時間較短,容易產生數據未處理完即被判定處理失敗、數據被重復分發和消費的問題,導致計算結果出現偏差;如果預設時間較長,無法及時檢測到客戶端的異常,在客戶端出現異常時容易導致過長的等待時間,降低系統處理數據的效率。因此,該預設時間的設置往往難以兼顧兩種需求,需要一種能夠兼顧效率和準確性的數據重復消費避免方法。
需要說明的是,在上述背景技術部分公開的信息僅用于加強對本公開的背景的理解,因此可以包括不構成對本領域普通技術人員已知的現有技術的信息。
發明內容
本公開的目的在于提供一種數據處理方法與數據處理裝置,用于至少在一定程度上克服由于相關技術的限制和缺陷而導致的數據重復消費問題。
根據本公開實施例的第一方面,提供一種數據處理方法,包括:從消息隊列中間件獲取目標數據;獲取所述目標數據的驗證值,并檢測內存中的預設雙向鏈表中是否存在所述目標數據的所述驗證值;如果所述預設雙向鏈表中不存在所述驗證值,檢測緩存的預設數據庫中是否存在所述驗證值;在所述預設數據庫中不存在所述驗證值時處理所述目標數據。
在本公開的一種示例性實施例中,還包括:
處理完所述目標數據后,獲取所述目標數據的所述驗證值;
將所述目標數據的所述驗證值存入所述預設雙向鏈表和所述預設數據庫。
在本公開的一種示例性實施例中,所述預設雙向鏈表為LinkedHashMap,所述預設數據庫為Redis數據庫。
在本公開的一種示例性實施例中,所述將所述驗證值存入所述預設雙向鏈表和所述預設數據庫包括:
獲取所述目標數據的第一識別符;
使用預設算法處理所述目標數據的第一識別符,以獲取所述目標數據的第二識別符;
將所述第一識別符和所述目標數據對應的標記值存入所述預設雙向鏈表;
將所述第二識別符和所述目標數據對應的標記值存入所述預設數據庫。
在本公開的一種示例性實施例中,所述獲取所述目標數據的驗證值包括:
根據所述目標數據的預設屬性獲取所述目標數據的標識符;
確定所述目標數據對應的標記值;
將所述標識符和所述標識符對應的數值設置為所述目標數據的驗證值。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司,未經北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010051117.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種洗衣機及其控制方法
- 下一篇:一種洗衣機及其控制方法





