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

前言

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

影院開張

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

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

  Eureka來了以後首先在影院裝了一個大顯示屏幕。老闆告訴Eureka:咱們要準備上映《婦聯4》了。因而Eureka便把《婦聯4》上線了。顯示屏幕展現着最近上線的電影。這樣來電影院看電影的觀衆們就不用在諮詢售票員了。顯示屏幕以下:
code

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

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

  • 售票員隨機給用戶發一張票,這張票多是 8001 廳的,也多是 8002 廳的。(隨機法)
  • 我們IMAX廳工做人員多,服務又好,又寬敞,儘可能往那個廳分配。(服務響應最快法)
  • 輪着售賣:8001 8002 8001 8002 。。。(輪詢法)
  • 據說大媽您以爲情侶在電影院親親我我不舒服,那我們就按照男女,男的去8001廳,女的去8002廳.(哈希法)
  • 哪一個廳人少,就往哪一個廳分配(最少鏈接法)

大媽您以爲上面幾個方案您還滿意嗎?:滿意,滿意,哎呀,這個Ribbon小夥子真不錯。因而在Eureka和Ribbon的合做下,電影院正常運行。路由

熔斷限流-影院有人鬧事

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

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

服務網關-一個檢票員就能夠

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

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

年會總結

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

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

結尾

  以上博客是我昨晚睡不着,瞎想的,因而寫出來,有不少理解不到位的地方或者比喻不太對的地方,還請諒解。權當一樂。最後祝你們觀影愉快!客戶端

相關文章
相關標籤/搜索