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


前言

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

影院開張

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

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

  Eureka來了之后首先在影院裝了一個大顯示屏幕。老板告訴Eureka:我們要准備上映《婦聯4》了。於是Eureka便把《婦聯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 負責影票的查驗和影廳的導航工作 (服務統一管理,鑒權,路由等)

結尾

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM