也談SpringCloud:假如 《復仇者聯盟4》是一個微服務

丶Pz發表於2019-04-10

前言

  《復仇者聯盟4》(下文《婦聯4》) 將於4月24號上映了,漫威迷們是不是迫不及待了。我雖然不是漫威迷,沒有看過相關漫畫,但是電影確實一步都不落。不過我在想一個問題:假如《婦聯4》是一個微服務,那麼電影院就是一個應用。在這個微服務如此火爆的前提下,影院如何做好管理呢?以上是背景。

影院開張

  老王開了一家影院,剛開始影院規模很小,只有一個售票員小李。老王將《婦聯4》即將上映的廣告打出去之後,來諮詢的人絡繹不絕。這下小李不幹了:老闆,這麼多人諮詢已經打亂了我的正常工作了,影院這麼多電影我哪記得住他們什麼時候上映啊。老王犯了愁。小李說:老闆,我給你引薦一個人吧,他們公司專門做這個業務的。他叫Eureka

服務註冊和發現-電影的上映和下架

  Eureka來了之後首先在影院裝了一個大顯示螢幕。老闆告訴Eureka:我們要準備上映《婦聯4》了。於是Eureka便把《婦聯4》上線了。顯示螢幕展示著最近上線的電影。這樣來電影院看電影的觀眾們就不用在諮詢售票員了。顯示螢幕如下:
也談SpringCloud:假如 《復仇者聯盟4》是一個微服務

客戶端負載均衡-觀眾去哪個廳觀看電影?

  小李開開心心的工作者,突然 8001 廳的掃地大媽不樂意了。:小李你咋回事啊,怎麼我這個廳的人這麼多,8002廳的人那麼少,是要累死我啊。老闆見了:哎呀,趙大媽您彆著急,您看我這不是幫你招了個人嗎,以後保證劉大媽的工作量和您保持一致。:趙大媽您好,我是 Ribbon。:這名字挺洋氣啊,來,你告訴我,你想怎麼解決這個問題。Ribbon回答:這好說,下面幾種方案,您看你想要哪一種呢?

  • 售票員隨機給使用者發一張票,這張票可能是 8001 廳的,也可能是 8002 廳的。(隨機法)
  • 我們們IMAX廳工作人員多,服務又好,又寬敞,儘量往那個廳分配。(服務響應最快法)
  • 輪著售賣:8001 8002 8001 8002 。。。(輪詢法)
  • 聽說大媽您覺得情侶在電影院親親我我不舒服,那我們們就按照男女,男的去8001廳,女的去8002廳.(雜湊法)
  • 哪個廳人少,就往哪個廳分配(最少連線法)

大媽您覺得上面幾個方案您還滿意嗎?:滿意,滿意,哎呀,這個Ribbon小夥子真不錯。於是在Eureka和Ribbon的合作下,電影院正常執行。

熔斷限流-影院有人鬧事

   你們老闆呢?賣出去5000張票,電影院這麼小隻能坐2000人,剩下的人咋辦?是啊,退票,退票!隔壁廳也亂起來了,這麼吵還讓不讓人看電影了。 電影院亂成一團,無法正常營業了。老闆只好掛出牌子:暫停營業。辦理退票。Ribbon跟垂頭喪氣的老闆說:老闆生意好是好事啊,我認識一個朋友或許可以幫你。說曹操,曹操到。:王老闆,你好,我是Hystrix.:你好,你好,那請問,你要如何幫助我呢?

  • 賣票的時候,要求客戶排好隊伍,不要爭搶。上午的200張票已經賣完了,大家下午再來吧 (限流)
  • 8001廳突然著火了,不能售賣和觀看了。對不起:《婦聯4》延緩上映,敬請關注。其他影廳不受影響。(熔斷)

服務閘道器-一個檢票員就可以

  老王對人事部說:最近我們們又加了 5 個影廳,你在去招 5 個檢票員過來。另外把 8001 的那個檢票員辭了,他竟然私自讓他的好朋友不買票就進去看。:老闆,我們們放映廳多了,不能這麼幹了,我給你介紹一個人,他一個人就可以做好這個事情了。:好,你看著辦吧。
大家好,我是 Zuul,很抱歉因為我的到來,老闆將你們都辭退了,這是老闆讓我給你們發的遣散費。來一人一百塊錢。眾人罵罵咧咧的走了。
新官上任三把火:

  • 影廳入口設立檢票處,不管看什麼電影都從這個入口進。(統一入口)
  • 您這張票是假票,不能進入。(服務鑑權)
  • 您好,《婦聯4》左邊 8001 廳,《雷神3》往前走 8005 廳。(服務路由)

年會總結

  老闆發言:老王電影院自成立以來,承蒙各位大神的幫助。

  • Eureka 負責管理電影上下架工作。 (服務註冊和發現)
  • Ribbon 負責管理電影票的分發工作 (服務負載均衡)
  • Hystrix 負責突發情況的處理和管控 (服務熔斷,限流,隔離等)
  • Zuul 負責影票的查驗和影廳的導航工作 (服務統一管理,鑑權,路由等)

結尾

  以上部落格是我昨晚睡不著,瞎想的,於是寫出來,有很多理解不到位的地方或者比喻不太對的地方,還請諒解。權當一樂。最後祝大家觀影愉快!

相關文章