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

服務(wù)之間通過緩存?zhèn)鬟f數(shù)據(jù),我堅(jiān)決反對(duì)!

網(wǎng)絡(luò) 通信技術(shù)
你遇到過這種“服務(wù)之間通過緩存?zhèn)鬟f數(shù)據(jù)”的架構(gòu)設(shè)計(jì)么?這種架構(gòu)設(shè)計(jì)好還是不好,為什么?關(guān)于這種架構(gòu)設(shè)計(jì)方案,分享下個(gè)人的觀點(diǎn)。

[[408610]]

數(shù)據(jù)的移動(dòng),需要載體,DB和cache是常見的數(shù)據(jù)存儲(chǔ)載體。

如上圖:

  • service-A將數(shù)據(jù)放入cache;
  • service-B從cache里讀取數(shù)據(jù);

cache作為數(shù)據(jù)存儲(chǔ)載體的好處是:

  • cache的讀取和寫入都非常快;
  • service-A和service-B物理上解耦;

那么問題來了:

  • 你遇到過這種“服務(wù)之間通過緩存?zhèn)鬟f數(shù)據(jù)”的架構(gòu)設(shè)計(jì)么?
  • 這種架構(gòu)設(shè)計(jì)好還是不好,為什么?

關(guān)于這種架構(gòu)設(shè)計(jì)方案,分享下個(gè)人的觀點(diǎn)。

樓主支持這種架構(gòu)設(shè)計(jì)么?

先說結(jié)論,樓主旗幟鮮明的反對(duì)“服務(wù)之間通過緩存?zhèn)鬟f數(shù)據(jù)”。

為什么反對(duì)呢?

核心理由有3點(diǎn)。

第一點(diǎn):數(shù)據(jù)管道場景,MQ比cache更加適合。

如果只是單純的將cache作為兩個(gè)服務(wù)數(shù)據(jù)通訊的管道,service-A生產(chǎn)數(shù)據(jù),service-B(當(dāng)然,可能有service-C/service-D等)訂閱數(shù)據(jù),MQ比cache更加合適:

(1)MQ是互聯(lián)網(wǎng)常見的邏輯解耦,物理解耦組件,支持1對(duì)1,1對(duì)多各種模式,非常成熟的數(shù)據(jù)通道;

(2)而cache反而會(huì)將service-A/B/C/D耦合在一起,大家要彼此協(xié)同約定key的格式,ip地址等;

(3)MQ能夠支持push,而cache只能拉取,不實(shí)時(shí),有時(shí)延;

(4)MQ天然支持集群,支持高可用,而cache未必;

(5)MQ能支持?jǐn)?shù)據(jù)落地,cache具備將數(shù)據(jù)存在內(nèi)存里,具有“易失”性,當(dāng)然,有些cache支持落地,但互聯(lián)網(wǎng)技術(shù)選型的原則是,讓專業(yè)的軟件干專業(yè)的事情:nginx做反向代理,db做固化,cache做緩存,mq做通道;

綜上,數(shù)據(jù)管道場景,MQ比cache更加適合。

第二點(diǎn):數(shù)據(jù)共管場景,兩個(gè)(多個(gè))service同時(shí)讀寫一個(gè)cache實(shí)例會(huì)導(dǎo)致耦合。

如果不是數(shù)據(jù)管道,是兩個(gè)(多個(gè))service對(duì)一個(gè)cache進(jìn)行數(shù)據(jù)共管,同時(shí)讀寫,也是不推薦的,這些service會(huì)因?yàn)檫@個(gè)cache耦合在一起:

(1)大家要彼此協(xié)同約定key的格式,ip地址等,耦合;

(2)約定好同一個(gè)key,可能會(huì)產(chǎn)生數(shù)據(jù)覆蓋,導(dǎo)致數(shù)據(jù)不一致;

(3)不同服務(wù)業(yè)務(wù)模式,數(shù)據(jù)量,并發(fā)量不一樣,會(huì)因?yàn)橐粋€(gè)cache相互影響,例如service-A數(shù)據(jù)量大,占用了cache的絕大部分內(nèi)存,會(huì)導(dǎo)致service-B的熱數(shù)據(jù)全部被擠出cache,導(dǎo)致cache失效;又例如service-A并發(fā)量高,占用了cache的絕大部分連接,會(huì)導(dǎo)致service-B拿不到cache的連接,從而服務(wù)異常;

綜上,數(shù)據(jù)共管場景,多個(gè)service耦合在一個(gè)cache實(shí)例里,也是不推薦的,需要垂直拆分,實(shí)例解耦。

第三點(diǎn):數(shù)據(jù)訪問場景,兩個(gè)(多個(gè))service有讀寫一份數(shù)據(jù)的需求。

根據(jù)服務(wù)化的原則,數(shù)據(jù)是私有的(本質(zhì)也是解耦):

(1)service層會(huì)向數(shù)據(jù)的需求方屏蔽下層存儲(chǔ)引擎,分庫,chace的復(fù)雜性;

(2)任何需求方不能繞過service讀寫其后端的數(shù)據(jù);

假設(shè)有其他service要有數(shù)據(jù)獲取的需求,應(yīng)該通過service提供的RPC接口來訪問,而不是直接讀寫后端的數(shù)據(jù),無論是cache還是db。

綜上所述

  • 數(shù)據(jù)管道場景,MQ比cache更合適;
  • 多個(gè)服務(wù)不應(yīng)該公用一個(gè)cache實(shí)例,應(yīng)該垂直拆分解耦;
  • 服務(wù)化架構(gòu),不應(yīng)該繞過service讀取其后端的cache/db,而應(yīng)該通過RPC接口訪問;

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

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

 

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2025-05-16 10:19:35

緩存架構(gòu)開發(fā)

2021-06-28 09:36:05

系統(tǒng)分層架構(gòu)微服務(wù)架構(gòu)

2021-12-10 06:07:56

電腦360病毒

2021-03-19 09:37:30

運(yùn)營商外交部中國聯(lián)通

2017-07-11 18:00:21

vue.js數(shù)據(jù)組件

2020-09-04 15:20:10

印度APPTikTok

2012-08-22 09:32:54

面試面試題

2021-04-20 18:10:22

緩存服務(wù)緩存數(shù)據(jù)緩存

2020-04-13 13:56:07

AI 論文開源

2021-05-05 10:46:12

Spectre攻擊數(shù)據(jù)泄露

2021-09-09 18:42:12

React 組件數(shù)據(jù)

2020-08-11 15:54:15

數(shù)據(jù)中心整合數(shù)據(jù)中心

2009-12-03 08:55:12

Java EE 6

2015-06-01 15:00:22

程序員

2011-08-16 17:59:05

IOS開發(fā)delegate委托

2024-03-14 10:30:05

緩存場景DEMO

2019-06-24 15:06:09

云平臺(tái)SaaS數(shù)據(jù)保護(hù)

2009-06-24 13:14:11

URL來傳遞參數(shù)JSF

2009-09-04 11:00:13

通過C#引用傳遞

2010-03-29 09:26:23

大學(xué)生創(chuàng)業(yè)李開復(fù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 在线免费视频一区 | 欧美激情精品久久久久久变态 | 日韩av最新网址 | 中文字幕高清在线 | 9191在线观看 | 精品国产99| 亚洲国产成人一区二区 | 亚洲免费一区二区 | 欧美激情视频一区二区三区在线播放 | 亚洲国产日韩一区 | 欧美精品三区 | 色视频在线播放 | 天天干天天操天天爽 | 成人久久18免费网站麻豆 | 日韩二| 国产一区二区三区亚洲 | 日本成人免费观看 | 蜜桃视频在线观看免费视频网站www | 在线国产视频 | 在线观看中文字幕视频 | a在线视频 | 免费一级毛片 | 国产一区二区三区四区三区四 | 天堂成人国产精品一区 | 一区二区三区在线 | 国产精品日产欧美久久久久 | 国产伦精品一区二区三区视频金莲 | 欧美一级在线观看 | 精品国产乱码久久久久久影片 | 国产清纯白嫩初高生视频在线观看 | 国产精品久久国产精品99 gif | cao视频| 久夜精品 | 久热精品视频 | 久久大全 | 欧美专区日韩 | 国产欧美在线一区 | 国产精品欧美一区二区三区不卡 | 亚洲日韩中文字幕一区 | www.国产精品 | 久久99精品国产自在现线小黄鸭 |