微服务:拒绝大型单体应用,基于业务边界进行服务微化拆分,各个服务独立部署运行
分布式,集群,节点之间的关系:
springcloud中采用http+json的方式进行远程调用
常见负载均衡算法:
1,轮询:按顺序依次选择每台服务器,然后循环。简单实现:调用次数取余服务器数量
2,最小连接:优先选择连接数最少(也就是压力最小)的服务器,在会话较长的情况下可以考虑这种方式
3,散列:根据请求的ip的散列(hash)来选择要转发的服务器,这种方式能一定程度上保证特定用户连接到相同的服务器。如果应用需要处理状态而要求用户连接到和之前相同的服务器,可以考虑采用这种方式
服务熔断与降级
熔断:当被调用的服务经常失败达到某个阈值,可以开启断路保护机制,后来的请求不再调用这个服务,本地直接返回默认的数据
降级:某些服务不处理或简单处理(抛异常、返回null、调用mock数据,调用fallback处理逻辑)。在运维期间,当服务器资源紧张,可以让非核心业务降级运行
API网关
它抽象了微服务中都需要的公共功能,同时提供了客户端负载均衡、服务自动熔断,灰度发布,统一认证,限流流控,日志统计等丰富的功能,帮助我们解决很多API管理难题