• 接入层了解


    转自:https://blog.csdn.net/JMW1407/article/details/107342736

    1.作用 

    应用的接入层通常需要承载大量的网络请求,然后再转发给软件负载均衡进行进一步的分发。 把跟客户端直连的服务器称为接入服务器,一个或多个接入服务器构成的接入层。

    以web服务为例,访问域名的过程:DNS解析层(被转发到接入路由IP)、负载均衡层、业务层。

    •  使接业务层专注于业务处理,降低业务层设计的复杂度;
    • 接入层专注于消息转发,可以有效降低消息的丢失率,从而提高系统的稳定性
    • 接入层以较小的代价大幅提高用户接入体验。

    2.技术方案

    需要考虑的问题:负载均衡LB和高可用HA。

    • 负载均衡:采用一定的分配算法将网络请求分发到后端的多个服务器,从而获得更高的性能。实现负载均衡功能的软/硬件称为 负载均衡器 。本文中的负载均衡特指将客户的http请求分发到后端的web服务器或应用服务器。
    • 高可用:为了避免负载调度器的单点故障,部署多个负载调度器节点,通过并行或主从的方式同时工作。
    • 会话保持:会话保持是指负载均衡器上的一种机制,通过会话保持,负载均衡器能够识别同一客户端多次请求的关联性,并能够将相关联的请求分配到同一台后端服务器上。

    2.1 反向代理高可用方案

     keepalived:一款用来检测服务状态存活性的软件,常用来做高可用。(通过ICMP协议实现的)。注意,此时DNS服务器只返回单个的ip

    • 1)做两台nginx组成一个集群,分别部署上keepalived,设置成相同的虚IP,保证nginx的高可用;
    • 2)当左边的nginx挂了,keepalived能够探测到,并将流量自动迁移到右边的nginx上,整个过程对调用方透明。

    缺点:1)资源利用率只有50%  2)nginx仍然是单点介接入

    2.2 水平扩展 Linux Virtual Server

    lvs:Linux Virtual Server,Linux虚拟服务器,使用集群技术,实现在linux操作系统层面的一个高性能HP、高可用HA、负载均衡服务器LB。

        1)DNS轮询来线性扩展入口lvs层的性能,此时DNS通过轮询返回多个ip;

     2)通过keepalived来保证高可用
     3)通过lvs来扩展多个nginx
     4)通过nginx来做负载均衡,业务七层路由(??什么意思)。

     3.总结

    https://www.jianshu.com/p/8cd069820f79

    反向代理,负载均衡,限流,降级,熔断,防雪崩。

    • 负载均衡:轮询,一致性哈希;
    • 限流:服务降级的一种。实现计算好服务所能承受的阈值,一旦达到,则延迟处理,拒绝处理,或者部分拒绝处理等等。包括简单计数、滑动窗口、漏桶算法、令牌桶算法。【没仔细看原理】
    • 降级:超时降级,失败次数降级,故障降级,限流降级。
    • 服务熔断:对于目标服务的请求和调用大量超时或失败,这时应该熔断该服务的所有调用,并且对于后续调用应直接返回,从而快速释放资源,确保在目标服务不可用的这段时间内,所有对它的调用都是立即返回,不会阻塞的。再等到目标服务好转后进行接口恢复。//及时让服务下线,容灾策略。

    服务间强依赖会导致雪崩,要做好熔断、隔离、限流,防止雪崩。

  • 相关阅读:
    C# 解析JSON字符串
    C# 调用SAP RFC
    【Vue】vue动态添加表单项
    2020年余额不足,送你3本Python好书充值
    中国编程第一人,一人抵一城!
    2020年测试工作总结!
    这段代码,我在本地运行没问题啊
    我28岁,财务自由168天,却写下一封遗书...
    困惑大家这么多年的区块链技术,终于被沈阳一小区大门给讲明白了
    年轻人越来越有出息的迹象
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/16842304.html
Copyright © 2020-2023  润新知