本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1.springboot - springcloud区别(好处)
Spring Cloud是构建在Spring Boot之上的服务治理框架。快速构建分布式系统的一些通用模式,例如:配置管理、注册中心、服务发现、限流、网关、链路追踪等
SpringBoot使用了默认大于配置的理念,集成了快速开发的Spring多个插件,同时自动过滤不需要配置的多余的插件,简化了项目的开发配置流程,一定程度上取消xml配置,是一套快速配置开发的脚手架,能快速开发单个微服务;
SpringCloud大部分的功能插件都是基于SpringBoot去实现的,SpringCloud关注于全局的微服务整合和管理,将多个SpringBoot单体微服务进行整合以及管理;
SpringCloud依赖于SpringBoot开发,而SpringBoot可以独立开发;
2.分布式架构负载均衡 (TODO)
负载均衡(LB,Load Balance),是一种技术解决方案。用来在多个资源(一般是服务器)中分配负载,达到最优化资源使用,避免过载。
3.其他实现负载均衡
(TODO)
4.负载均衡算法
常用的负载均衡算法有:轮询,随机,最少链接,源地址散列,加权等方式
1 轮询
将所有请求,依次分发到每台服务器上,适合服务器硬件同相同的场景。
优点:服务器请求数目相同;
缺点:服务器压力不一样,不适合服务器配置不同的情况;
2 随机
请求随机分配到各个服务器。\
优点:使用简单;
缺点:不适合机器配置不同的场景;
3 最少链接
将请求分配到连接数最少的服务器(目前处理请求最少的服务器)。
优点:根据服务器当前的请求处理情况,动态分配;
缺点:算法实现相对复杂,需要监控服务器请求连接数;
4 Hash(源地址散列)
根据IP地址进行Hash计算,得到IP地址。
优点:将来自同一IP地址的请求,同一会话期内,转发到相同的服务器;实现会话粘滞。
缺点:目标服务器宕机后,会话会丢失;
5 加权
在轮询,随机,最少链接,Hash等算法的基础上,通过加权的方式,进行负载服务器分配。
优点:根据权重,调节转发服务器的请求数目;
缺点:使用相对复杂;
5.Ribbon负载均衡默认算法是什么
轮询
6.分布式网关是什么 gateway
springcloud的gateway是网关,取代了zuul官网,在微服务中有重要的作用,常见的功能有路由,权限验证,限流控制具体是route去处理的,filters是各种过滤器。
7.gateway 做哪些设置
可以做限流配置,跨域配置
中间件:
有node中间件,Express中间件 TODO
redis:
8.redis为什么快 高效在那里
- 基于内存实现 读写速度快
- 数据结构简单,操作快
- 单线程,避免线程上下切换,使用IO多路复用
- 简单的自定义协议
9.redis底层采用NIO还是BIO
Redis底层采用NIO中的多路IO复用的机制
10.redis 集群部署
-
主从复制(缺点,主挂掉后,需要人工切换干预,不能保证服务的高可用)
-
哨兵模式(一主多从,主挂掉后,会自动选举主再提供服务。缺点:1. 极端情况下网络不是很好的情况,选举需要花时间,可能服务不可用。2. 资源浪费,Redis 数据节点中 slave 节点作为备份节点 )
-
集群模式 类似于前两者的升级版。哨兵的从服务器中,保存的数据都是一样的。集群模式在此技术上做出了改进,从服务器保存的数据是不一样的。减少系统资源的浪费