這里是weihubeats,覺得文章不錯可以關注公眾號小奏技術
背景
早期在使用RocketMQ
的時候,系統和開發人員不算多。所以topic的創建會非常隨意,各種千奇百怪的topic
比如: order_topic
、ORDER_TOPIC
、order-topic
各種奇奇怪怪的風格,用_的,用駝峰的,純大寫加下劃線的。各種風格
其實這個還不是主要的,比如上面的order_topic
,你大致知道這個topic
是屬于訂單組的,比如如果我們出現了一個domain_event
topic,這時候我們去看這個topic
,他是屬于哪個系統的呢?實際會比較困惑
包括比如要消費這個topic
,我們可以有如下gid
gid_domian_event
我看了這個gid也不知道這個gid屬于哪個系統的,是屬于自己系統消費自己的topic,還是屬于其他系統消費domian_event
這個topic
所以可以看到如果沒有一個topic
和gid
創建規范,有時候這些topic
和gid
會非常沒有意義,在做topic
或者gid
維護的時候看這些名字是非常沒有意義的
Topic規范
topic的創建規范我們推薦是
serviceName
+ topicName
(業務名稱)
舉個🌰
比如我們有訂單系統(order)要創建自己的領域事件topic
則topic
名稱為:order-domain-event-topic
消費者(gid)規范
規范:gid
+ 消費系統
+ consume
+ topic
如果是自己消費自己則省略 消費系統
+ consume
變成
gid
+ topic
舉個🌰
比如我們支付要消費訂單的topic
那么我們的gid為
gid-pay-consume-order-domain-event-topic
如果訂單要消費自己的topic
呢?
那我們就可以省略 消費系統 + consume,直接是gid+topic
比如 gid-order-domain-event-topic
一些錯誤的gid命名例子
收益
這樣我們看到每個topic
和gid
就知道是干嘛的了
比如給你一個order-domain-event-topic
你就知道是訂單組的領域事件topic
看到gid-order-domain-event-topic
就是訂單組自己消費自己的order-domain-event-topic
看到gid-pay-consume-order-domain-event-topic
就知道是支付用來消費訂單的order-domain-event-topic
topic
當然如果公司有足夠的研發資源還是可以自研RocketMQ
的dashboard,從流程上去規范topic
的創建,比如創建topic
的時候需要說明屬于哪個系統,用途等
不知道其他小伙伴有沒有什么更好的建議呢