zoukankan      html  css  js  c++  java
  • 弄懂服务路由与负载均衡,微服务搞起

    路由:分发给不同的服务器(服务名)。
    负载均衡:同一个微服务的不同实例。

    对于负载高的服务,一般有多台服务器组成的集群,当请求到来时,为了将请求均衡的分配到后端服务器,负载均衡程序将从服务对应的地址列表中,通过相应的负载均衡算法和法则,选取一台服务器进行访问,这个过程称为服务的负载均衡。

    作者:java思维导图来源:java思维导图|2019-02-21 09:18

    基本概念

    SOA

    公共的业务被拆分出来,形成可共用的服务,最大程度地保障代码和逻辑的复用,避免重复建设,这种设计称为SOA。

    路由

    SOA架构中,服务消费者通过服务名称,在众多服务中心找到要调用的服务的地址列表,称为服务的路由。

    负载均衡

    对于负载高的服务,一般有多台服务器组成的集群,当请求到来时,为了将请求均衡的分配到后端服务器,负载均衡程序将从服务对应的地址列表中,通过相应的负载均衡算法和法则,选取一台服务器进行访问,这个过程称为服务的负载均衡。

    服务配置中心

    当服务越来越多,规模变大,单靠人工管理或简单维护配置已经不能满足,并且单一软硬件负载调度的单点故障问题凸显,因此需要一个能动态注册和获取服务信息的地方,来统一管理服务名称和其对应的服务器列表信息,这个就是服务配置中心。

    -->工作原理

    服务提供者启动时,将提供的服务名称、服务器地址注册到服务配置中心

    服务消费者通过服务配置中心来获取需要调度的服务机器列表

    通过负载均衡算法之后,选取一台服务器调用

    当服务器宕机或下线,相应的机器动态从服务配置中心移除,并通知相应的服务消费者

    服务消费者一次访问服务配置中心之后,会将查询到的信息缓存到本地,后面调用先查缓存,从而降低服务配置中心压力

    ZooKeeper

    2负载均衡算法

    用处

    服务消费者从服务配置中心获取到服务的地址列表后,需要选取其中一台发起RPC调用,这时需要用到具体的负载均衡算法。

    常见种类

    轮询法、随机法、源地址哈希法、加权轮询法、加权随机法、最小连接法等

    轮询法

    将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端每一台服务器,而不关心服务器实际的连接数和当前的系统负载

    伪代码

    • 创建静态变量static int pos=0;
    • 创建一个HashMap把服务器地址和权重映射起来。(为与后面加权轮询法对比)
    • 新建一个keyList把Map中的服务器地址取出
    • synchronized( pos ){
    • 若超出keyList长度,pos重置零;
    • 否则取出keyList.get( pos ); pos ++;
    • }
    • 返回取出的server

    加权轮询法

    每台服务器配置不同,因此应给配置高、负载低的机器配置更高的权重处理更多的请求。加权轮询算法将请求顺序且按照权重分配到后端

    伪代码

    • 创建静态变量static int pos=0;
    • 创建一个HashMap把服务器地址和权重映射起来。
    • 新建一个keyList按照循环权重大小次数把Map中的服务器地址添加到list中,如权重为4,则keyList中添加4次该服务器地址。
    • synchronized( pos ){
    • 若超出keyList长度,pos重置零;
    • 否则取出keyList.get( pos ); pos ++;
    • }
    • 返回取出的server
  • 相关阅读:
    状态压缩 + 暴力 HDOJ 4770 Lights Against Dudely
    简单几何(推公式) UVA 11646 Athletics Track
    简单几何(四边形形状) UVA 11800 Determine the Shape
    简单几何(求交点) UVA 11437 Triangle Fun
    计算几何模板
    简单几何(相对运动距离最值) UVA 11796 Dog Distance
    简单几何(求划分区域) LA 3263 That Nice Euler Circuit
    覆盖的面积 HDU
    Desert King 最小比率生成树 (好题)
    约会安排 (区间合并)毒瘤题
  • 原文地址:https://www.cnblogs.com/huangwentian/p/14621143.html
Copyright © 2011-2022 走看看