我是还是技术海洋中的一个小白,望各位大神不喜勿喷,谢谢~


    通过周立编写的一本SpringCloud与Docker微服务架构实战中学习的,可能学习的还不够深刻、透彻。我也正在努力的学习 中,学到更多的会与大家分享,如果什么更好的建议,请不要保留


特点:


约定由于配置


适用于各种环境开发、部署。


隐藏了组件的复杂性,并提供声明无xml的配置方式。


开箱即用,快速启动。


轻量级、灵活、丰富、功能齐全的组件。


选型中立丰富


版本的说明:


SR一般表示bug修复。


服务提供者与消费者:


服务提供者: 就是为其他服务提供的服务


消费者: 就是依赖其他服务的服务


硬编码问题:


解决方案 :(目前可以配置在.yml中通过@Value来获取配置文件中的值)


需要服务发现的机制 于是就有了服务发现组件


服务发现、服务提供者、服务消费者三者之间的关系:


服务提供者、服务消费者需要在 服务发现组件中 注册


服务消费者去服务发现组件中调用想要的信息


服务发现这通过心跳机制与微服务间通信。如长时间无法与某微服务获取到通信,就会注销该实例


服务发现组件具备的功能:


服务注册表: 是服务发现组件的核心,主要是记录、查询微服务信息。


管理API用于服务的注册和注销。


服务注册与服务发现: 注册就是把微服务实例注册到服务发现组件上的过程


发现就是查询微服务列表及其网络地址的机制。


服务检查: 利用心跳机制检查该服务实例是否能通信,不能的话就会从服务注册表中移除该实例。


Eureka介绍:


本身是一个基于REST的服务。它包含Server和Client两部分。SpringCloud将它集成于Netflix中,从而实现微服务的注册发现。


Erueka原理:




周阳 springcloud 第三季 笔记_服务发现




包含两个组件: Eureka Server 和Eureka Client


Eureka Service: 提供服务发现的能力,各个微服务启动是会像Eureka Service 注册自己的信息。


微服务启动后,会周期性(30秒)地向Eureka Service 发送心跳以续约自己的‘租期’。


如果Eureka Service 在90秒内没有接受到某个微服务的实例心跳Eureka Service 就会注销该实例。


Eureka Service 也是Eureka Client ,多个Eureka Service 之间通复制的方式,来实现服务注册表中数据的同步。


Eureka Client: 用于与Eureka Server的交互。


Eureka Client会缓存服务注册表中的信息。


Eureka 的元数据有两种,分别是标准元数据和自定义元数据。


标准元数据指的是主机名、ip地址、端口号、状态页和健康检查等信息




eureka高可用: 就是全天候7*24小时的提供服务,一般最少三个生产者,来提供服务


eureka会通注册中提供的服务提供者的列表来复制其他生产者的数据,一旦生产者不能够连接或是产生问题,通过心跳机制不能连接的话,会从其他的生产者中提供服务,如果心跳峰值低于阈值的话,会启动自我保护模式,暂时保留现有的服务提供的数据,这样就不用担心所有的生产者有问题,宕机了。