- gateway:网关,自动路由,负载均衡,统一权限控制
- feign:远程调用
- ribbon:负载均衡
- hyxtrix:熔断器,用来保护整个链路的安全
- nacos:注册中心+配置中心
- eureka:注册中心
- sentinel:限流
Nacos的服务实例分为两种类型:
-
临时实例:如果实例宕机超过一定时间,会从服务列表剔除,默认的类型。
-
非临时实例:如果实例宕机,不会从服务列表剔除,也可以叫永久实例。
-
spring: cloud: nacos: discovery: ephemeral: false # true:临时实例,false:非临时实例,永久实例 -
Nacos与eureka的共同点
-
- 都支持服务注册和服务拉取
- 都支持服务提供者心跳方式做健康检测
-
Nacos与Eureka的区别
-
- Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式:【正式工每天都会被检查状态,临时工也就心跳检测自己上报状态】
- 临时实例心跳不正常会被剔除,非临时实例【正式工】则不会被剔除
- Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
- Nacos集群默认采用AP(可用)方式,当集群中存在非临时实例时,采用CP(一致性)模式;Eureka采用AP(可用)方式
- Consistency(一致性):
- Availability(可用性)
- Partition tolerance (分区容错性)
- 轮询
- 随机
- 能者多劳:性能强劲的承担更多的请求
- 设计比重:为每个服务器赋予一个权重值,根据权重选择提供服务的服务器
- 一致性hash算法:使用相同参数的请求总是发到同一台服务器处理,只有当这台服务器宕机了,才会转发到其他服务器
- 最近最少使用:
微服务间相互调用,因为调用链中的某一个服务器发生故障,引起整个系统都无法提供服务的情况,就是雪崩。
解决方案:
- 限流:是对服务的保护,避免因瞬间高并发高流量导致服务故障,进而避免雪崩,这是一种预防措施
- 补救措施:超时处理,熔断处理等等
-
SpringBoot启动的时候通过**@EnableAutoConfiguration**注解找到META-INF/spring.factories配置文件中所有的自动配置类,并对其进行加载,
-
TanhuaAutoConfiguration它实际上就是一个javaConfig形式的Spring容器配置类,它们都有一个**@EnableConfigurationPerperties**的注解,通过这个注解启动XXXProperties命名的类去加载全局配置中的属性,如server.port,而XXXProperties通过@ConfigurationProperties注解将全局配置文件中的配置与当前类的属性进行绑定,从而实现自动装配
我们在做探花交友项目的时候,我们编写了环信自动装配、百度人脸检测自动装配、阿里云短信自动装配
1 在app-server中调用自动配置类,这个类的配置文件就需要 配置 系统需要的属性
2 在auto-config项目中,抽离公共的环境配置
3 通过@ConfigurationProperties读取公共的环境配置
4 编写xxTemplate,实现短信发送业务
5 在spring.factories中通过@EnableAutoConfiguration自动加载模板类
可以。因为dubbo拉取从注册中心拉取服务之后,都会在本地缓存服务列表,所以当注册中心挂掉之后,dobbo会直接从本地获取服务地址进行调用。
8 dubbo支持哪些协议?他们的优缺点有哪些?- Dubbo: 虽然dubbo支持的协议有很多,但是Dubbo官方推荐使用dubbo协议,所以在我们的项目中都是用的是dubbo协议,其他的协议我没有去做深入的了解



