zoukankan      html  css  js  c++  java
  • RCP的负载均衡(笔记二)

    一般情况下,负载均衡的策略有下面两种:

    一、代理服务

    在这种情况下,客户端不知道服务端的存在,客户端所有的请求全都发送至代理服务,代理服务将接收到的请求分发给服务端,并且实现公平的负载算法。

    缺点:客户端不知道服务端的存在,且客户端不可信,代理服务会影响到服务本身的吞吐量。

    优点:在中间件中做监控等拦截操作十分方便。

    分类:L3/L4(传输级别),L7(应用程序级别)

    1、L3/L4:服务器终止TCP连接并打开另一个连接到所选的后端,L3/L4级别的负载均衡按设计只做很少的处理,与L7级别的负载均衡相比的延迟会更少,而且更便宜,因为它消耗更少的资源。

    2、L7:在客户端连接到服务端端连接之间搞一个应用来做中间人,在L7负载平衡中,负载均衡服务终止并解析协议。负载均衡服务可以检查每个请求每个请求并根据请求内容分配后端。

    选择:

    1、这些连接之间的RPC负载变化很大,建议使用L7。

    2、存储或计算相关性很重要:建议使用L7,并使用cookie或类似的路由请求来纠正服务端。

    3、设备资源少:建议使用L3/L4。

    4、对延迟要求很严格:建议使用L3/L4。

    二、客户端负载均衡

    在这种情况下,客户端知道服务端的存在,由客户端选择对应的服务端,并且客户端可以从后端服务器中自己总结出一份负载的信息,实现负载均衡算法。

    优点:高性能,消除了第三方的交互。

    缺点:客户端会很复杂,因为客户端要跟踪服务器负载和健康状态,客户端实现均衡负载算法。多语言的实现和维护负担也很麻烦,并且客户端需要被信任。

    三、使用选择

    1、客户端和服务器之间非常高的流量,且客户端是可信的,建议使用‘笨重’的客户端 或者 Lookaside 负载均衡。

    2、传统设置——许多客户端连接到代理背后的大量服务,需要服务端和客户端之间有一个桥梁,建议使用代理式的负载均衡。

    3、微服务- N个客户端,数据中心有M个服务端,非常高的性能要求(低延迟,高流量),客户端可以不受信任,建议使用 Lookaside 负载均衡。

  • 相关阅读:
    百度前端技术学院task35源代码——听指令的小方块3
    百度前端技术学院task34源码——会指令的小块2
    ManyToManyField 增加记录
    同一个页面多个按钮,根据按钮名字执行相应功能
    django 函数装饰器 变为 类装饰器
    script 跳出小窗口
    django 把函数装饰器变为方法装饰器
    modelform添加属性
    Cannot assign “A1”: “B1” must be a “C1” instance.
    Django form choices, placeholder
  • 原文地址:https://www.cnblogs.com/libinhyq/p/15065042.html
Copyright © 2011-2022 走看看