怎样在web范畴内完成微服务负载均衡

    作者:课课家教育更新于: 2017-04-25 11:11:12

        课课家教育平台欢迎各位阅读本篇文章,本篇文章讲述了怎样在web范畴内完成微服务负载均衡,温馨小提醒:本篇文章纯干货,大家定要认真阅读本篇文章哦~

          网上有很多介绍微服务架构最佳实践的指导手册和博客文章。虽然这些信息都很有用,但是关于如何扩展微服务的文章却不多。在一些研究和大量理论探讨下,本文介绍如何实现微服务的负载均衡。

      关注边缘

      当web应用程序前端客户端和基于微服务的后台服务器通信时,前端是否需要知道所有可用的微服务实例?比如,客户端真的需要知道提供web页面数据的所有的五个服务么?答案当然是不需要!

      Sudhir Tonse,之前在Netflix工作,现在在Uber工作,在Scalable Mocroservices at Netflix大会上讲述了边缘服务的概念。边缘服务作为微服务基础架构的门户而存在。因此,对于前端客户端需要知道哪个微服务,这个问题,根据Sudhir的方案,每个客户端只需要和一个边缘服务直接通信就可以了。每个客户端可以有独占的边缘服务。比如,Netflix服务于上千种设备类型 -- 每种设备类型都有独占的边缘服务作为其接入点。

    怎样在web范畴内完成微服务负载均衡_web_微服务_负载均衡_课课家教育

      类似Netflix和Riot Games这样的大厂商,他们都运行在Amazon AWS上,使用弹性负载均衡(ELB)来确保边缘服务随时在线。

      边缘服务之外

      每个进入的请求都需要分析。多个fan-out请求被发送到构成生态系统的微服务里。一个进站请求平均会生成大概十个fan-out请求。Netflix每天会接收到近20亿请求,会生成大概200亿次内部的API调用。

    Netflix如何确保其微服务能处理这么大的压力,并且保持24/7的可用性呢?再说一次,负载均衡是解决之道。

      Netflix如何确保其微服务能处理这么大的压力,并且保持24/7的可用性呢?再说一次,负载均衡是解决之道。但是这次并不是通过ELB。有 500个不同的微服务,你就需要配置500个ELB!这正是Netflix的工具内置负载均衡能力的原因。Netflix创建了很多库和工具,它们可以很容易得互相集成。通过将所需库直接集成到每个微服务里,就能将其自身注册到所有受管理的服务里。

      不要害怕边缘服务

      既然边缘服务如此重要,那么边缘服务发生故障就麻烦了,不是么?实际上,不会有问题。原因之一,边缘服务当然也必须负载均衡。这意味着访问者根本就不会注意到边缘服务的故障。其次,替代方案是什么?在monolithic应用程序环境里,每个服务都像是一个边缘服务,因此任何中央服务的故障 -- 没有配置负载均衡时 -- 都意味着整个系统的故障,对吧?

      尽管如此,边缘服务处于最为精妙的服务之中,因此的确需要特别的关注。

      重中之重

      必须要认真考虑运行边缘服务来处理进站流量。并且一定要对边缘服务做负载均衡,无论你的云提供商的机制如何。所有内部流量必须由自己的工具处理,因为这样允许你使用最少的额外配置来运行环境。因此,最终,微服务高效扩展所要求的最重要的工具,不出意外,是负载均衡。

      Web的特点:

      一、Web是图形化的和易于导航的(navigate):

      Web 非常流行的一个很重要的原因就在于它可以在一页上同时显示色彩丰富的图形和文本的性能。在Web之前Internet上的信息只有文本形式。Web可以提供将图形、音频、视频信息集合于一体的特性。同时,Web是非常易于导航的,只需要从一个连接跳到另一个连接,就可以在各页各站点之间进行浏览了。

    Web 非常流行的一个很重要的原因就在于它可以在一页上同时显示色彩丰富的图形和文本的性能。

      二、Web与平台无关:

      无论你的系统平台是什么,你都可以通过Internet访问WWW。浏览WWW对你的系统平台没有什么限制。无论从Windows平台、Unix平台、Macintosh还是别的什么平台我们都可以访问WWW。对WWW的访问是通过一种叫做浏览器(browser)的软件实现的。如Netscape 的Navigator、NCSA的Mosaic、Microsoft的Explorer等。

      三、Web是分布式的:

      大量的图形、音频和视频信息会占用相当大的磁盘空间,我们甚至无法预知信息的多少。对于Web没有必要把所有信息都放在一起,信息可以放在不同的站点上。只需要在浏览器中指明这个站点就可以了。使在物理上并不一定在一个站点的信息在逻辑上一体化,从用户来看这些信息是一体的。

      四、Web 是动态的:

      最后,由于各Web站点的信息包含站点本身的信息,信息的提供者可以经常对站上的信息进行更新。如某个协议的发展状况,公司的广告等等。一般各信息站点都尽量保证信息的时间性。所以Web站点上的信息是动态的。经常更新的。这一点是由信息的提供者保证的。

      五、Web是交互的:

      Web的交互性首先表现在它的超连接上,用户的浏览顺序和所到站点完全由他自己决定。另外通过FORM的形式可以从服务器方获得动态的信息。用户通过填写FORM可以向服务器提交请求,服务器可以根据用户的请求返回相应信息。

         小结:相信大家最后阅读完毕本篇文章后,一定收获不小吧?当然如果大家还想要更深入的了解相关方面的详细内容的话,请登录课课家教育平台咨询哟~

课课家教育

未登录