.Net Core学习笔记(16、17)

.Net Core3.1跨平台实战1:大数据高并发之集群负载均衡、读写分离

  • 前言
    • 1、集群负载均衡
      • (1)如何应对大数据高并发
      • (2)单机系统
      • (3)独立服务器
      • (4)缓存
      • (5)集群负载均衡
    • 2、其他负载均衡
      • (1)DNS负载均衡
      • (2)硬件负载均衡
      • (3)软件负载均衡
      • (4)Nginx

前言

说明:大数据高并发之集群负载均衡、读写分离
Asp.Net Core 3.1跨平台实战.视频学习笔记

1、集群负载均衡

(1)如何应对大数据高并发

  • 集群
  • 队列
  • 分布式
  • Redis
  • 缓存
  • 读写分离
  • k8S

(2)单机系统

  • 单机系统的承载能力是由什么决定
    BS–多线程–每个请求耗费时间
    吞吐量:QPS=线程数/请求秒数

(3)独立服务器

.Net Core学习笔记(16、17)_第1张图片
将应用服务器、数据库服务器、文件服务器搭建在不同的服务器上。
即分布式。

  • 分布式:多台服务器完成一台服务器做的事。但是使用分布式是由代价的。分布式的第一定律:就是不要使用分布式。

(4)缓存

  • 系统性能优化的第一步就是是由缓存:成本低、见效快。但是缓存也是有代价,即数据及时性问题。

(5)集群负载均衡

  • 为什么需要集群负载均衡
    随着时间段累计,用户量的增加,数据量的增加,流量过大,导致服务器不能及时处理请求,该如何解决:
    a. 升级硬件—见效快省事,但是有上限
    b.搭建集群,多台服务器协同合作。

  • 集群:一台服务器做的事情,现在由多台服务器共同承载,每台服务器都是独立完成的

  • 分布式:多台服务器完成一台服务器做的事情,每台服务器做不同的事情,串行完成全部认为(狭义分布式)

  • 从广义来说,集群也是分布式

2、其他负载均衡

(1)DNS负载均衡

  • 优点:高效,可就近原则—优先转发给离用户最近(地域)服务器
  • 缺点:只能轮询,且独立IP很贵,不能即使错误发现(健康检查)
    .Net Core学习笔记(16、17)_第2张图片
  • 部署多个独立IP对外提供服务
  • DNS服务器配置多个IP
  • DNS解析时转发

(2)硬件负载均衡

  • 优点:性能高,稳定好,厂商支持
  • 缺点:省心不省钱,难以扩展
    .Net Core学习笔记(16、17)_第3张图片
    F5、Array、Netscale等等
    硬件+软件打包

(3)软件负载均衡

  • LVS:Linux Virtual Server 四层协议(IP+Port),轮询转发(不能根据报文新信息转发),更底层更高效,配置较难
  • HAProxy:4层/7层。http协议,转发比较灵活,也比较强大,国内主流是Nginx

(4)Nginx

  • 各种策略:轮询(默认),权重,IP-Hash,fair,url-Hash
  • 用户持久化:
    – IP-Hash–会话粘滞–局限性很强
    – Session共享–StateServer/SqlServer/Redis/基于HttpHeader–cookie-Token(JWT/IdentityServer4)

你可能感兴趣的:(.Net,Core)