无状态服务和有状态服务的区别 实现服务无状态化
轮询(Round Robin)法 将请求按顺序轮流分配到后台服务器上,均衡的对待每一台服务器,而不关心服务器实际的 连接数和当前的系统负载 缺点:当集群中服务器硬件配置不同、性能差别大时,无法区别对待
随机法 通过系统随机函数,根据后台服务器列表的大小值来随机选取其中一台进行访问。随着调用 量的增大,其实际效果越来越接近于平均分配流量到后台的每一台服务器,也就是轮询法的 效果 优点:简单使用,不需要额外的配置和算法。 缺点:随机数的特点是在数据量大到一定量时才能保证均衡,所以如果请求量有限的话,可 能会达不到均衡负载的要求。
源地址哈希法 根据服务消费者请求客户端的 IP 地址,通过哈希函数计算得到一个哈希值,将这个哈希值和 服务器列表的大小进行取模运算,得到的结果便是要访问的服务器地址的序号。采用源地址 哈希法进行负载均衡,相同的 IP 客户端,如果服务器列表不变,将映射到同一个后台服务器 进行访问。
加权轮询(Weight Round Robin)法 不同的后台服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不一 样。跟配置高、负载低的机器分配更高的权重,使其能处理更多的请求,而配置低、负载高 的机器,则给其分配较低的权重,降低其系统负载,加权轮询很好的处理了这一问题,并将 请求按照顺序且根据权重分配给后端
最小连接数法 前面几种方式都是通过对请求次数的合理分配最大可能提高服务器的利用率,但是实际上, 请求次数的均衡并不能代表负载的均衡。所以,引入了最小连接数法。它正是根据后端服务 器当前的连接情况,动态的选取其中当前积压连接数最少的一台服务器来处理当前请求,尽 可能的提高后台服务器利用率,将负载合理的分流到每一台服务器。
一致性hash算法
七层网络模型
BIO: 连接阻塞 IO阻塞
NIO: 连接非阻塞 IO非阻塞
NIO
select、poll、epoll的原理与区别
什么是 java 序列化?什么情况下需要序列化?
Protocol Buffer 序列化原理大揭秘 - 为什么Protocol Buffer性能这么好?
Spring的注解@Qualifier用法 SpringBoot注解最全详解(整合超详细版本) @Configuration和@Bean
Spring Boot的扩展机制之Spring Factories
SpringBoot自动装配原理,这一篇就够了!
Actuator
ribbon详解 ribbon负载均衡策略
OpenFeign是什么
Eureka的自我保护机制
spring cloud config使用与原理分析
Hystrix学习(4)熔断 Hystrix的熔断功能
响应式编程介绍
全局过滤器
SpringCloud实战十三:Gateway之 Spring Cloud Gateway 动态路由 SpringCloud实战十四:Gateway之 Spring Cloud Gateway 动态路由-进阶
Hystrix的线程池隔离和信号量隔离
doker是什么 Docker的Container简介
dubbo从入门到实战
dubbo从入门到实战
dubbo从入门到实战
dubbo从入门到实战
Dubbo(九) dubbo的配置文件加载顺序优先级
dubbo系列之@Service注解解析原理(四) dubbo系列之@Reference注解解析原理(五)
SpringCloud(二) Nacos作为配置中心——配置更新原理
从分布式一致性到共识机制(二)Raft算法 对标Eureka的AP一致性,Nacos如何实现Raft算法
5分钟让你了解 ZooKeeper 的功能和原理
长轮询和短轮询的区别
Sentinel和Hystrix的区别
分布式系统限流策略(一)
Alibaba Sentinel 限流与熔断初探(技巧篇)
Seata实现分布式事务
【高并发】——幂等的实现方案
扛住阿里双十一高并发流量,Sentinel是怎么做到的?