初始SpringCloud
简介
SpringCloud是Spring旗下的项目之一
Spring最擅长就是集成,把世界上最好的框架拿过来,集成到自己的项目中
SpringCloud也是一样,它将现在非常流行的一些技术整合到一起,实现了诸如:配置管理,服务发现,智能路由,负载均衡,熔断器,控制总线,集成状态等等功能.主要涉及的组件包括:
netflix
- Eureka:注册中心
- Zuul:服务网关
- Ribbon:负载均衡
- Feign:服务调用
- Hystix:熔断器
以上只是其中的一部分,架构图
Eureka注册中心
1.认识Eureka
Eureka做什么?
Eureka就好比是滴滴,负责管理、记录服务提供者的信息。服务调用者无需自己寻找服务,而是把自己的需求告诉Eureka,然后Eureka会把符合你需求的服务告诉你。
同时,服务提供方与Eureka之间通过“心跳”
机制进行监控,当某个服务提供方出现问题,Eureka自然会把它从服务列表中剔除。
这就实现了服务的自动注册、发现、状态监控。
2.原理图
基本架构:
- Eureka:就是服务注册中心(可以是一个集群),对外暴露自己的地址
- 提供者:启动后向Eureka注册自己信息(地址,提供什么服务)
- 消费者:向Eureka订阅服务,Eureka会将对应服务的所有提供者地址列表发送给消费者,并且定期更新
- 心跳(续约):提供者定期通过http方式向Eureka刷新自己的状态
3.eureka运行机制
-
注册
应用启动时,会连接注册中心进行注册。
如果无法连接注册中心,它会一次一次的反复进行注册,直到成功为止。
-
拉取
每个服务都会从注册中心拉取注册表,每30秒会重新拉取一次注册表进行更新。
-
心跳
客户端会每30秒向 eureka 注册中心发送一次心跳数据,eureka 连续3次收不到心跳,认为服务已经死掉,会从注册表删除服务。
-
自我保护模式
是一种特殊情况
由于网络不稳定,造成 85%以上的服务器出现心跳异常,这时会进入自我保护模式,在保护模式下,所有服务都不删除,直到网络恢复,会自动退出自我保护模式。
4.eureka和zookeeper区别
-
eureka
- 强调AP - 可用性 分区容错性
- 集群 - 对等结果
-
zookeeper
-
强调CP - 一致性 分区容错性
-
集群 - 主从结果
-
5.入门案例
eureka 注册与发现
1. 创建项目
2. 导入坐标
<properties>
<java.version>1.8</java.version>
<spring-cloud.