SpringCloud组件:
服务注册与发现
Eureka:服务注册与发现,还有动态管理服务实例。
Nacos:服务注册与发现,还支持配置管理
服务调用
Feign:声明式的 REST 客户端,简化服务间的 HTTP 调用,在远程调用。
RestTemplate:Spring 提供的 REST 客户端,用于服务间调用
负载均衡:
Ribbon:客户端负载均衡组件,支持多种负载均衡策略(如轮询、随机),用于分发请求。
策略:
这里都配置在nginx。
轮询:按顺序依次分发到每个服务器,
加权轮询:按照服务器权重分配。
最少连接:请求分发到连接数最少的服务器。
哈希:根据客户端 IP 地址的哈希值分配请求,确保同一客户端的请求总是分发到同一服务器。
这里配置在Ribbon
随机:只需要选择一个服务器处理请求。
加权随机:根据服务器权重随机分配。
负载均衡工具:
nginx,Ribbon和SpringCloudGateway,放在后台yaml里面配置。
服务容错:
Hystrix:提供熔断、降级、限流等功能,防止服务雪崩
熔断:出现故障或响应过长,直接暂停返回预设值。和保险丝一样。
然后是降级在性能不可用时直接提供备选方案确保能提供基本功能。
这样可以防止故障扩散,提高可用性能且降低系统负载。
雪崩:服务故障导致系统崩溃,在服务之间的强依赖关系。服务调用链过长,高并发场景。
如何防止雪崩,熔断,限流,异步降低服务
击穿:一般用于高并发时某个热点数据失效,导致大量请求直接访问数据库,造成数据库压力过大甚至崩溃。
如何防止击穿:设置热点数据,使用互斥锁,在低峰期访问量少时候预加载。
Sentinel:提供流量控制、熔断降级、系统负载保护等功能,功能和上面差不多但是现在一般用Sentinel。
Spring Cloud Config:需要统一管理多个微服务配置的场景。
Nacos Config:提供配置管理和动态刷新功能
API 网关:
Zuul:提供路由、过滤、负载均衡等功能,作为微服务的统一入口;
Spring Cloud Gateway:提供路由、过滤、限流等功能。
安全认证:
Spring Cloud Security:提供安全认证和授权功能,保护微服务。
Mybatis:
这个是持久化框架,配置之后可自动化给出sql。
添加依赖,配置环境,创建实体类,创建mapper接口,创建Mapper XML文件,后加载配置文
件,最后执行SQL操作,MyBatisplus的区别是可以自动生成实体类,Mapper接口,XML文件,
提供通用的CRUD文件,可兼容Mybatis。