[發明專利]一種基于Redis的通信系統分布式方法有效
| 申請號: | 202010355894.1 | 申請日: | 2020-04-29 |
| 公開(公告)號: | CN111565229B | 公開(公告)日: | 2020-11-27 |
| 發明(設計)人: | 王云龍;董世永 | 申請(專利權)人: | 創盛視聯數碼科技(北京)有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;H04L12/24 |
| 代理公司: | 北京智沃律師事務所 11620 | 代理人: | 吳志宏 |
| 地址: | 100083 北京市海淀區學院*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 redis 通信 系統 分布式 方法 | ||
1.一種基于Redis的通信系統分布式方法,其特征在于:所述通信系統包括與客戶端相連接的Nginx集群,Nginx集群的負載采用keepalived,所述Nginx集群與Gateway網關集群相連接,所述Gateway網關集群與消息處理器集群和Eureka注冊中心集群相連接,所述消息處理器集群與Redis集群和Sentinel集群分別相連接,所述Redis集群建立有三主三備的結構,利用sentinel監控節點健康狀態,所述客戶端來連接Redis集群時,會首先連接sentinel,通過sentinel來查詢主節點的地址,然后再去連接主節點進行數據交互;當主節點發生故障時,客戶端會重新向sentinel要地址,sentinel會將最新的主節點地址告訴客戶端;
通信系統的分布式處理包括以下步驟:
S1:消息處理器集群中所有可用的消息處理器節點向Eureka注冊中心進行注冊,Eureka注冊中心集群通過心跳探測,維護和消息處理器節點之間的通信;
S2:客戶端通過Nginx集群與Gateway網關集群的網關層建立Websocket長連接;
S3:Gateway節點通過Eureka注冊中心集群獲取消息處理器集群獲取節點列表,在有可用節點時針對服務器ip取模計算要分配的節點,請求消息處理器建立連接;
S4:客戶端發送消息,通過nginx根據ip_hash取模找到網關節點,網關節點再找到對應的消息處理器節點,將消息請求轉發到消息處理器,消息處理器向Redis發布消息;
S5:針對訂閱的客戶端,發布者Redis Stream結構會通過xadd創建對應的ConsumerGroup,然后其他客戶端通過xreadgroup以及ack機制保證消息被可靠消費。
2.根據權利要求1所述的基于Redis的通信系統分布式方法,其特征在于:步驟S2中,所述客戶端基于Websocket層實現客戶端與Nginx集群之間的全雙工通訊,所述客戶端通過從認證服務集群獲取訪問服務器端資源的令牌token,從而能夠通過Gateway網關集群的網關層信任訪問對應服務器端資源。
3.根據權利要求2所述的基于Redis的通信系統分布式方法,其特征在于:所述Nginx集群對客戶端的請求進行反向代理轉發工作,連接方式通過采用upstream長連接。
4.根據權利要求1所述的基于Redis的通信系統分布式方法,其特征在于:所述Gateway網關集群整合有Ribbon,通過采用針對客戶端ip進行Hash取模的方式實現負載均衡策略,保持連接狀態,防止無狀態分發導致客戶端連接重置,中斷重連。
5.根據權利要求1所述的基于Redis的通信系統分布式方法,其特征在于:步驟S4中,所述消息處理器集群保持與Gateway建立的長連接,負責將推送消息請求轉推到對應的RedisStream中,同時實時訂閱Redis集群Consumer Group中存在的消息,實時轉發給對應的客戶端。
6.根據權利要求5所述的基于Redis的通信系統分布式方法,其特征在于:Gateway網關集群的網關對客戶端的請求進行分發前,需要從Eureka注冊中心集群獲取可用的消息處理器節點,然后再對請求進行分發。
7.根據權利要求1所述的基于Redis的通信系統分布式方法,其特征在于:如果消息處理器某一節點宕機,涉及到的客戶端需要重置連接,重新建立連接,同時網關層重新計算分配新的消息處理器節點。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于創盛視聯數碼科技(北京)有限公司,未經創盛視聯數碼科技(北京)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010355894.1/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:快遞流轉包自動拆包方法和裝置
- 下一篇:一種嵌入式空調及裝有該空調的建筑物





