[發明專利]一種基于redis存儲作為消息中間件的數據傳輸方法在審
| 申請號: | 202110151703.4 | 申請日: | 2021-02-03 |
| 公開(公告)號: | CN112882842A | 公開(公告)日: | 2021-06-01 |
| 發明(設計)人: | 吳松福;謝奉見 | 申請(專利權)人: | 廈門投融匯網絡有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 北京聯瑞聯豐知識產權代理事務所(普通合伙) 11411 | 代理人: | 郭堃 |
| 地址: | 361000 福建省廈門市*** | 國省代碼: | 福建;35 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 redis 存儲 作為 消息 中間件 數據傳輸 方法 | ||
本發明提出了一種基于redis存儲作為消息中間件的數據傳輸方法,包括:生產者將消息數據發送到redis,redis向生產者確認接受到消息數據;redis從消息隊列中讀取生產者寫入的消息數據,并向消費者確認消費數據;消費者從redis中讀取消息數據,并將消息數據寫入到消息隊列,以使消費者從消息隊列讀取到消息數據,并向redis返回數據。本發明通過redis集群,保證數據存儲在內存也不會應為單獨服務器掛掉導致數據丟失;數據至少被消費一次,通過消息確認消費機制,保證每次消息消費都可以被消費,如果出現網絡抖動或其他異常情況,可能導致消息確認機制沒能及時傳到中間件,導致重復消費情況,消費者需要在業務上處理消息冪等性問題。
技術領域
本發明涉及計算機技術領域,尤其涉及一種基于redis存儲作為消息中間件的數據傳輸方法。
背景技術
消息中間件是為分布式應用之間提供高效、可靠、平臺無關的數據傳輸服務的一種技術,通過提供消息傳遞和消息排隊模型,它可以在分布式環境下擴展進程間的通信。
在多網段的條件下,消息中間件部署在一個網段,生成者部署在另外一個網段,消費者部署在其他網段,在這種場景下,目前開源的分布式消息中間件有很多,比如ActiveMQ、RabbitMQ、RocketMQ、ZeroMQ、Kafka等等,它們各有特點,各有自己的獨特設計,并選用一種開發語言進行開發實現。現有的主流消息中間件支持的情況相對比較不足。例如:rabbitmq不支持跨網段生產消費;rocketmq不支持跨網段生產消費;kafka支持跨網段生產消費,不過需要設置多個端口進行監聽,提高網絡端口權限配置難度。
因此,需為了滿足不同網段消息中間件功能的需求,設計了基于redis作為數據存儲,以netty框架作為網絡傳輸組件的消息中間件。
發明內容
為了解決現有技術所存在的問題,本發明提出的基于redis存儲作為消息中間件的數據傳輸方法。
為了實現上述目的,本發明采用了如下技術方案:
基于redis存儲作為消息中間件的數據傳輸方法,所述方法包括:
生產者將消息數據發送到redis,所述redis向生產者確認接受到消息數據;
所述redis從消息隊列中讀取生產者寫入的消息數據,并向消費者確認消費數據;
消費者從所述redis中讀取消息數據,并將所述消息數據寫入到消息隊列,以使消費者從消息隊列讀取到所述消息數據,并向所述redis返回數據。
優選的,所述redis采用NIO多路復用,使用redis集群,使用redis異步刷盤。
優選的,所述生產者的消息數據采用一筆一筆的方式發送。
優選的,所述消費者接收所述消息數據按系統配置,一批批發送。
優選的,所述redis的消息應用對外提供的方法為:
11、boolean addTopic(String topic);添加消息主題;
12、boolean addGroup(String group);添加消費組;
13、ListObjectgetGroupTopicInfo(String group,String topic);為指定消費組獲取特定的消息主題信息;
14、Boolean sendTopicInfo(String topic,Object infos);接收相關消費主題的信息;
15、isConfirmComsumer(String hashkey)確認消息消費;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廈門投融匯網絡有限公司,未經廈門投融匯網絡有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110151703.4/2.html,轉載請聲明來源鉆瓜專利網。





