前言:
本次設計的支持集群的共享訂閱的思路,還存在缺陷,無法支持通配符訂閱,正在努力實作中,敬請期待,或者有好的點子,歡迎分享哦,謝謝各位,
具體實作用在了該專案中
集群共享訂閱
單機共享訂閱是非常容易實作的,代碼改動也比較小,但是我們今天的角色不是單機的共享訂閱,而是集群的
我們采用一個簡單的方式來實作部分功能,使用redis的set+hash
具體結果如下圖:

訂閱主題
訂閱主題時,需要一條lua腳本向redis中操作兩個key,分別操作資料
set 的key中往topic key中添加該shareName
然后往hash key中添加node名稱與新增數量
取消訂閱
相應的減一就行
獲取訂閱資料
需要獲取所有的有關該主題的訂閱資料,首先獲取該主題所有的共享組,然后拼接主題去獲取所有的共享組的資料
具體實作請移步查看:代碼倉庫
缺陷
只能實作對應的具體主題的訂閱,還未實作通配符匹配,
看下面的初步思考

如果是單獨實作的集群通用主題服務還好,用redis去實作感覺太復雜了,之后會繼續學習完善的,多考慮幾種實作
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/272635.html
標籤:其他
上一篇:從0到1實戰微服務架構
