国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

面試官:為什么每個微服務都要有自己獨立的數據庫?

數據庫 其他數據庫
我認為如果選擇了微服務架構,那每個微服務獨立數據庫完全是個必選項,獨立數據庫服務器則是個可選項,需要兼顧可用性和硬件成本。

這個問題是我在知乎上看到的,答案并不是一邊倒,還是存在爭議性的。

其中,一些持反方觀點同學的理由如下:

(1)從硬件成本和維護成本上看,反而應該多個微服務盡可能地共用中間件和數據庫。

(2)微服務的獨立數據庫是指邏輯獨立,而不是物理獨立,在物理層面上是可以共用數據庫的。

btw:有點兒像《非誠勿擾》中葛優對舒淇說的話:“那你能允許我心在你這,身體上開點兒小差嗎”?

(3)你把數據庫也看做一個微服務就好理解了,微服務之間本身就是多對多的關系,公用有何不可呢?

拋出我的觀點吧,我完全支持每個微服務都要有自己獨立的數據庫,但每個數據庫是否使用獨立的服務器,這個需要視業務情況而定。

具體原因請見下圖:

圖片圖片

系統可用性

說說我當年的情況吧,當時我在一個在線教育公司,該公司早期的系統是一個單體架構,一個大的后端工程,并對應一個大的數據庫。

后來人越招越多,業務也越來越復雜,幾十人的研發團隊共同在一個大的單體服務中進行開發,這是明顯不現實的。

于是,研發團隊便按照組織結構進行服務拆分,將那個大的單體服務拆分為學生端服務、教師端服務、管理端服務和銷售端服務。

圖片圖片

隨后,我們的學生端服務又按照業務領域,拆分出來了學生課表、積分商城和學生運營活動服務。

其中,學生課表服務的重要等級是P0(最重要的),因為學生是以課表為入口進入教室上課的,也就是說,如果課表服務掛了就會導致無法上課,會給公司帶來重大經濟損失。

積分商城服務,是學生通過積分兌換學習用品的,如果服務掛了會影響用戶體驗,但不會造成經濟損失,因此重要等級為P1。

而運營活動服務的主要功能為,公司的運營人員會創建一些活動來增加學生在平臺上的活躍度,比如:學生將自己創作的作品,發到朋友圈中收集點贊,被點贊最多的學生獲得小禮品,等等。

但當時的情況是,學生課表、積分商城和學生運營活動這三個服務拆出來了,還是共用了一個學生端的數據庫。

有一天晚上,正好是學生上課的高峰期,忽然收到一通報警,學生端數據庫的負載竟然達到了200多,CPU使用率也被干到了100%。

緊接著,公司的大群中就有好幾個業務同事發消息說,學生投訴說課表看不到了,不能進入教室上課了。

我們聽了之后,趕緊登錄監控系統去查看學生課表服務的相關接口,發現由于不顯示課表學生反復刷新頁面的原因,接口的QPS確實比正常情況下高了好幾倍,但都被Sentinel限流掉了,不應該造成影響才對。

正在一籌莫展之際,我忽然發現在監控系統上,學生運營活動服務的接口QPS和TPS同樣高得離譜,比平時高十幾倍,且彪高的起始時間要比學生課表接口早一兩分鐘。

這就證明了,很大可能是學生運營活動服務的流量彪高,且學生運營活動服務上的接口沒有做限流保護,造成了服務共用的學生端數據庫扛不住了,從而影響了學生課表服務。

圖片圖片

于是,我們趕緊啟動降級機制,關閉了所有的學生運營活動服務的接口。沒過一會兒,學生課表可以正常訪問了。

接下來,我們和DBA連夜把學生課表服務所對應的數據表單獨拆分出來,遷移到一個新的數據庫服務器上進行獨享。

嗯,重要等級高的微服務不但要有自己獨立的數據庫,且必須是獨立的數據庫服務器,通過鏈路隔離的方式提升系統可用性。

當然,一些重要等級不高的服務獨立數據庫即可,并不需要獨立數據庫服務器,這樣可以節省硬件成本。

架構貫徹性

我們都知道,微服務架構之間是通過RPC調用來進行業務串聯的。

以常見的電商場景舉例,需要給用戶展示他所購買的訂單列表,此時訂單中心會調用商品中心的API獲取商品數據,然后再跟訂單數據進行merge,返回給前端用戶。

如果此時商品中心和訂單中心所對應的數據表放在一個數據庫中,可以預見的情況就是,研發人員會把訂單表和商品表進行多表關聯的方式來代替RPC調用+ 數據merge,因為這樣做非常省事。

如下圖所示:

圖片

而一旦破了這個口子,就會形成“破窗效應”,系統架構就變成分布式單體架構。

有人說,可以靠口頭約束的方式來規避這種情況,我并不認同。

想象一種場景,如果一個同學趕項目工期,半夜12點還在那挑燈夜戰呢。此時,如果有一種方式讓他快速寫完代碼回家睡覺,他會毫不動心一絲不茍地“按照規律辦事”?

研發效率

微服務獨立數據庫的另一個好處就是,讀寫入口收斂,這樣是可以提升研發效率的。

舉個例子,如果我們把商品表進行垂直拆分,拆分成商品表 + 商品詳情表,如果按照標準的獨立數據庫方式,只需要商品中心來進行對應的代碼變更就可以了,這對依賴商品中心的其他服務來講是透明的。

而非獨立庫模式就比較蛋疼了,每個去直接查詢商品表的服務都需要改一遍。

如下圖所示:

圖片圖片

上述例子屬于讀入口收斂的范疇,而寫入口不收斂,在多個服務中對一張數據表進行寫入的話,則帶來的問題同樣不少。

問題包括:

(1)表結構變更問題,如果增加一個非空字段,那么所有寫入口的代碼全部需要變更,且這種“散彈式”修改非常容易遺漏。

(2)問題排查難,一旦發現寫入了問題數據,那各個寫入口全部需要進行排查,工作量大且復雜。

除了讀寫入口收斂問題,再有就是,如果形成了上文中所說的“分布式單體架構”,那接下來再想進行優化改善的話,將會是一件工作量極大的事情,所以不如一次做好。

結語

綜上所述,我認為如果選擇了微服務架構,那每個微服務獨立數據庫完全是個必選項,獨立數據庫服務器則是個可選項,需要兼顧可用性和硬件成本。

責任編輯:武曉燕 來源: 托尼學長
相關推薦

2021-10-21 09:10:34

微服務架構數據

2020-12-23 13:29:15

微服務架構面試官

2022-07-06 13:48:24

RedisSentinel機制

2023-12-20 14:35:37

Java虛擬線程

2024-09-19 08:10:54

2022-03-30 07:28:24

MySQL數據庫ACID

2021-02-19 10:02:57

HTTPSJava安全

2025-11-28 01:15:00

KafkaJVM高性能

2021-07-29 19:10:27

ISC/數據安全

2022-02-14 20:53:33

開源庫開發代碼

2025-12-03 06:50:00

2024-03-12 14:36:44

微服務HTTPRPC

2025-10-11 08:06:01

數據庫IP 地址IPV4

2023-12-06 09:10:28

JWT微服務

2020-10-24 15:50:54

Java值傳遞代碼

2024-03-06 15:38:06

Spring微服務架構擴展組件

2021-01-21 07:53:29

面試官Promis打印e

2025-09-24 17:05:02

2025-10-09 01:22:00

2022-12-27 08:39:54

MySQL主鍵索引
點贊
收藏

51CTO技術棧公眾號

中文字幕精品网| 99re8这里有精品热视频8在线| 麻豆av福利av久久av| 亚洲精品国产suv| 99久久国产综合精品色伊| 国产精品专区免费| 成人性生交免费看| 国产va免费精品高清在线| 专区另类欧美日韩| 国产精品美女久久久久久不卡 | 日韩国产欧美在线播放| 成人3d动漫在线观看| 欧美xxxx黑人又粗又长| 日韩欧美亚洲天堂| 91久久国产精品91久久性色| 91精品国产色综合久久ai换脸| 91欧美极品| 霍思燕三级露全乳照| 成人在线视频网址| 亚洲人成电影在线| 欧美日韩成人一区| 欧美三级三级| 一本大道色婷婷在线| 宅男深夜免费观看视频| 2020国产精品久久精品不卡| 97久久久久久| 亚洲精品视频在线观看网站| 欧美呦呦网站| 91p九色成人| 国产精品视频一区二区久久| 亚洲第一精品福利| 91九色02白丝porn| 欧美日韩一区二区在线| 国产精品乱人伦中文| 99国产精品国产精品毛片| 亚洲成人高清| 国产熟女高潮视频| 麻豆md0077饥渴少妇| 久久久久久久久一区| 91精品免费久久久久久久久| 免费99精品国产自在在线| 精品久久久久久无| 日韩欧美aaa| 亚洲地区一二三色| 国产日韩欧美电影| 婷婷亚洲五月色综合| 欧州一区二区| 亚洲欧洲av| 成人av在线播放| 欧美中文字幕精在线不卡| 超碰在线caoporen| 麻豆视频在线观看免费| 国产a级片免费观看| 亚洲图片在线综合| 日韩网站免费观看高清| 亚洲缚视频在线观看| 日韩一区二区在线播放| 色哦色哦哦色天天综合| 亚洲a一区二区| 亚洲欧美国产三级| 日韩女优毛片在线| 久久精品视频免费播放| 国产成人综合亚洲| 99免费在线观看视频| 国产精品对白刺激久久久| 欧美激情2020午夜免费观看| 色黄久久久久久| 久久久电影免费观看完整版| 国产亚洲欧美另类中文| 亚洲激情国产精品| 久久视频在线看| 97国产超碰| 精品一区二区中文字幕| 一级特黄特色的免费大片| 成人影院在线观看视频| 最新中文在线视频| 亚洲色图16p| 日本中文在线| www.久久.com| 麻豆一区二区99久久久久| 欧美性高潮在线| 欧美精品在线免费播放| 国产91色在线|亚洲| 免费特级黄色片| 能在线观看av网站| 97蜜桃久久| jazzjazz国产精品久久| 国产99久久久国产精品成人免费| 色中色综合网| 91丝袜国产在线播放| 欧美色图在线视频| 欧美mv日韩mv国产网站| 欧美激情一级二级| 日韩国产一区久久| 欧美视频第一区| 国产精品二线| 性xxxxfreexxxxx欧美丶| 久久国产精品99国产| 1024国产精品| 伊人久久久久久久久久| 成人久久精品视频| 一区二区三区四区不卡| 蜜桃视频在线观看www社区 | 免费成人在线观看视频| 一级做a爱片久久| 亚洲精品av在线播放| 久久中文字幕国产| www.久久艹| 奇米影视888狠狠狠777不卡| 网红女主播少妇精品视频| 自拍欧美日韩| 精品国产鲁一鲁一区二区张丽| 亚洲男人天堂九九视频| 欧美主播一区二区三区美女 久久精品人| 日韩精品视频无播放器在线看 | 香蕉521av成人网| 美女av一区| 99视频一区二区| 久久精品国产一区二区电影| 国产麻花豆剧传媒精品mv在线 | 性高湖久久久久久久久aaaaa| 中文字幕日产av一二三区| 91av一区| 亚洲欧洲精品一区二区三区不卡| 久久久久久久久久久网站| 国产无遮挡又黄又爽免费网站| 黄色美女久久久| 亚洲乱码精品一二三四区日韩在线| 日本最新高清不卡中文字幕| 操碰在线免费| 亚洲永久网站| 成人97在线观看视频| 宅男深夜免费观看视频| 日韩av在线播放网址| 国产精品传媒入口麻豆| 97在线中文字幕| 国产精品精华液网站| 91精品国产66| 久久久久一区| 五月天欧美精品| 色噜噜亚洲精品中文字幕| 日本一区二区在线免费播放| 久久在线中文字幕| 精品国产一区探花在线观看| 一区二区三区鲁丝不卡| 国产免费亚洲高清| 国产黄在线观看免费观看不卡| 亚洲区第一页| 欧美日韩精品欧美日韩精品| 国产精品人人做人人爽| 99re6热在线精品视频播放| 你懂的一区二区| 国内精品中文字幕| 国产视频精品久久| 成人黄色小视频在线观看| 国产精品免费在线免费| av福利导福航大全在线| 成人午夜视频在线观看| 国产精品福利小视频| 日本黄色片在线观看| 波多野结衣一区二区三区| 91精品国产91久久久久久吃药| 欧美成人免费| 久久久www免费人成精品| 老汉色影院首页| 久久亚洲精精品中文字幕| 精品国产91久久久| 国产午夜伦鲁鲁| 不卡电影一区二区三区| 99在线视频首页| 国产精品久久久久77777丨| 欧美一区二区三区在线观看视频 | 日韩欧美一级在线播放| 欧美黑人又粗又大又爽免费| 一区二区影视| 欧美www在线| 97超碰免费在线| 亚洲一区二区在线视频| 波多野结衣与黑人| 成人看的羞羞网站| 韩国精品久久久999| av在线加勒比| 在线观看视频一区二区| 亚洲36d大奶网| 国产欧美精品一区二区色综合朱莉 | 成人高清电影网站| 在线不卡一区二区| 久久久久久久免费视频| 免费观看性欧美大片无片| 亚洲欧美日韩小说| 亚洲不卡1区| 国产影视精品一区二区三区| 精品视频全国免费看| 好吊妞无缓冲视频观看| 日韩精品看片| 国产suv精品一区二区| 日韩经典av| 亚洲国产精品精华液网站| 亚洲第一福利社区| 日韩一区三区|