成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MQ—互聯(lián)網(wǎng)架構解耦神器

開發(fā) 開發(fā)工具
上一篇《服務化,耦合卻更加嚴重》提到,執(zhí)行結果的處理和業(yè)務強相關,則switch case應該放在上游業(yè)務方,而不應該放到底層通用服務。

一個架構常識:當調用方需要關心執(zhí)行結果,通常使用RPC調用。

  1. ret = PassportService::userAuth(name, pass); 
  2. switch(ret){ 
  3.  case(YES) : return YesHTML(); 
  4.  case(NO) : return NoHTML(); 
  5.  case(JUMP) : return 304HTML(): 
  6.  default : return 500HTML(); 

上一篇《服務化,耦合卻更加嚴重》提到,執(zhí)行結果的處理和業(yè)務強相關,則switch case應該放在上游業(yè)務方,而不應該放到底層通用服務。

登錄頁面調用passport服務,會根據(jù)passport服務的返回結果,區(qū)別執(zhí)行登錄成功,登錄失敗,執(zhí)行錯誤。調用方關注執(zhí)行結果時,不宜使用MQ通訊。

使用MQ通訊,調用方不能直接告之用戶登錄成功又或失敗,阻塞住等待MQ通知回調不但使得編碼復雜,還會引入消息丟失的風險,中間多加入一層,多此一舉,基本沒有人這么玩。

但如果調用方不關心執(zhí)行結果,卻仍然使用RPC調用,會引發(fā)上下游極大的耦合與瓶頸。

場景還原

有一個通用的上游服務,例如“帖子發(fā)布”服務,負責公司通用的帖子發(fā)布業(yè)務。有一些個性化的業(yè)務關心“用戶發(fā)布帖子”這個事件,例如:

  • 用戶發(fā)布帖子后,大數(shù)據(jù)部門要更新用戶的畫像
  • 用戶發(fā)布帖子后,信息質量部門要異步檢查帖子是否合規(guī)
  • 招聘業(yè)務最近在做用戶促活,如果用戶發(fā)布的是招聘帖子,要增加積分

個性化下游關注這個事件,但下游對事件的執(zhí)行結果,“帖子發(fā)布”服務卻并不關心,如果“帖子發(fā)布”服務通過RPC的方式去通知下游,就會有很大的問題。

耦合為何存在?

帖子發(fā)布服務,這本來應該是一個非常基礎的服務,上游upper通過RPC調用將事件同步給事件關注業(yè)務方biz1/biz2/biz3:

  • 一旦有新的業(yè)務需求要關注這個事件,修改代碼的是通用上游upper,此時通用服務的owner就在心里罵娘了“為何有需求的是你,修改代碼的卻是我”
  • 一旦業(yè)務側出問題,會影響上游通用基礎服務,此時通用服務的owner又在心里罵娘了“我ca,穩(wěn)定性的KPI,全被兄弟部門毀了”
  • 一旦業(yè)務側接口升級,上游基礎服務需要配合升級,此時通用服務的owner可能又會抱怨“為何被動升級的人總是我”

架構不合理,簡直痛不欲生。

如何解耦呢?

如果事件發(fā)出方不關心訂閱方的執(zhí)行結果,不能用RPC,應該用MQ。

消息通知耦合

MQ能夠做到上下游物理上和邏輯上都解耦:

  • 物理上解耦,增加MQ之后,上游互不知道彼此的存在,不會建立物理連接了,大家都只與MQ建立物理連接
  • 邏輯上解耦,事件發(fā)布方甚至不用知道哪些下游訂閱了這個消息,新增消息的訂閱方只需要連接MQ就行了,不需要上游關注

MQ是一個非常常見的物理上解耦、邏輯上也解耦的利器。

  • 關注下游執(zhí)行執(zhí)行結果,用RPC;
  • 不關注下游執(zhí)行結果,用MQ,不用RPC;

這只是一個很小的優(yōu)化點,但對于通知解耦卻是非常有效。

【本文為51CTO專欄作者“58沈劍”原創(chuàng)稿件,轉載請聯(lián)系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2021-08-27 08:44:52

MQ架構耦合

2018-01-01 06:41:44

耦合互聯(lián)網(wǎng)架構配置中心

2019-03-18 07:08:53

高可用互聯(lián)網(wǎng)架構分布式

2019-05-13 10:30:34

互聯(lián)網(wǎng)架構容量

2016-12-06 11:56:13

互聯(lián)網(wǎng)架構高可用

2016-09-22 15:55:39

互聯(lián)網(wǎng)架構容量設計

2019-04-10 14:10:02

高并發(fā)分布式系統(tǒng)架構

2019-11-28 16:09:29

架構模板存儲

2017-01-11 21:40:03

互聯(lián)網(wǎng)架構高并發(fā)

2022-06-09 08:01:43

秒殺系統(tǒng)互聯(lián)網(wǎng)架構

2016-09-22 15:01:59

微服務互聯(lián)網(wǎng)架構

2018-11-07 06:35:50

互聯(lián)網(wǎng)服務化高可用架構

2019-12-26 07:39:36

互聯(lián)網(wǎng)架構ip

2012-09-19 15:43:21

云時代

2024-03-08 16:27:22

領域事件DDD項目跨層解耦

2024-05-13 11:43:26

開發(fā)層服務層ActiveMQ

2015-06-24 15:35:54

2015-08-24 10:34:21

云數(shù)據(jù)中心互聯(lián)網(wǎng)架構安全

2019-06-13 14:24:40

互聯(lián)網(wǎng)

2019-07-30 09:08:04

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一级高潮片免费的 | 日韩综合在线视频 | 成人免费视频观看视频 | 午夜丁香视频在线观看 | 国产一二三区免费视频 | 国产精品一区二区无线 | 黄网站在线观看 | 久久久久久国产免费视网址 | 中文久久 | 国产黄色在线观看 | 视频国产一区 | 亚洲成人免费视频在线 | 久久国产福利 | 久久国产精品一区二区三区 | 国产精品久久久久久久久图文区 | 天天爽网站 | 成人免费一区二区三区视频网站 | 国产乱码久久久久久 | 欧美日韩一卡二卡 | 欧美视频成人 | 精品久久精品 | 久久久久国产 | 国产精品2区 | 国产日韩一区二区三免费高清 | 亚洲国产一区二区三区 | 国产夜恋视频在线观看 | 一区二区不卡高清 | 涩涩导航 | 久久久入口 | 亚洲xx在线 | 亚洲国产成人久久综合一区,久久久国产99 | 在线观看中文字幕 | 欧美日韩福利 | 色综合久久久久 | 日韩欧美在线一区 | 在线午夜| 日韩中文字幕免费在线 | 久久在线视频 | 日美女逼逼 | 麻豆久久久 | 国产女人第一次做爰毛片 |