• 也谈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 负责影票的查验和影厅的导航工作 (服务统一管理,鉴权,路由等)

    结尾

      以上博客是我昨晚睡不着,瞎想的,于是写出来,有很多理解不到位的地方或者比喻不太对的地方,还请谅解。权当一乐。最后祝大家观影愉快!

  • 相关阅读:
    前沿技术解密——VirtualDOM
    Ques核心思想——CSS Namespace
    Unix Pipes to Javascript Pipes
    Road to the future——伪MVVM库Q.js
    聊聊CSS postproccessors
    【译】十款性能最佳的压缩算法
    Kafka Streams开发入门(9)
    Kafka Streams开发入门(8)
    【译】Kafka Producer Sticky Partitioner
    【译】99th Percentile Latency at Scale with Apache Kafka
  • 原文地址:https://www.cnblogs.com/panzi/p/10681719.html
Copyright © 2020-2023  润新知