目录
1. 微服务涉及的内容
2. springcloud组件
也可以说阿里的
3. 服务注册和发现
3.1 eureka
我们当时项目采用eureka作为注册中心,这个也是springcloud体系统的一个核心组件
- 服务注册 : 服务提供者需要把自己的信息注册到eureka,有eureka来保存这些信息,比如服务器名称,ip端口等
- 服务发现 : 消费者向eureka拉去服务列表信息,如果服务提供者有集群,则消费者会利用负载均衡算法,选择一个发起调用
- 服务监控 : 服务提供者会每隔30秒向eureka发送心跳,报告健康状态,如果eureka\服务90秒没接收到心跳,从eureka剔除.
3.2 nacos
4. nacos和eureka区别
主要:nacos可以设置非临时实例,这样注册中心会去主动询问实例,默认是临时实例
还有就是实例变更,主动推送信息到消费者;nacos还可以做配置中心
- nacos与eureka的共同点(注册中心)
- 都支持服务注册和服务拉取
- 都支持微服务提供者心跳方式做健康检测
- nacos个eureka的区别
- nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
- 临时实例心跳不正常会被剔除,非临时实例不会
- nacos支持服务列表变更的消息推送模式,服务列表更新及时
- nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;eureka采用AP方式
- nacos还可以做配置中心,eureka不行.
5. 负载均衡如何实现?ribbon
5.1 负载均衡流程
5.2 负载均衡策略
轮询,随机,权重(时间长,权重小),区域策略(默认)
5.3 自定义负载均衡策略
5.4 说下你们项目中的
feign远程调用的时候就有,可以在配置文件替换策略
5.5 ribbon和nginx
- 1,nginx 是服务器端的负载均衡器,所有请求发送到nginx之后,nginx通过反向代理的功能分发到不同的服务器,做负载均衡(Web 服务流量分发)
- 2,ribbon是客户端的负载均衡器,他是通过将eureka注册中心上的服务,读取下来,缓存在本地,本地通过轮询算法,实现客户端的负载均衡
( 微服务内部调用)
5.5.1 区别
- 实现层面 : Nginx作为