微服务架构:他是一种架构风格和架构思想,它倡导我们在传统软件应用架构的基础上,将系统业务按照功能拆分为更细粒度的服务。所拆分的每一个服务都是一个独立的应用,这些应用对外提供公共的API,可独立承担对外服务的职责。
在微服务的架构体系中,SpringBoot只能用于应用开发,要想实现完整的微服务架构,还需要实现架构中的服务注册发现,API网关和负载均衡等功能。
SpringCloud:他是在SpringBoot的基础上构建的,用于简化分布式系统构建的工具集,该工具集为微服务架构中所涉及的配置管理,服务发现,断路器等提供了一种简单的开发方式。
SpringCloud中包含了多个子项目如:
SpringCloud是根据英文字母的顺序,采用伦敦的"地名+版本号"的方式来命名的。
服务发现:用于实现各个微服务实例的自动化注册与发现。
在Spring Cloud的子项目中,Spring Cloud Netflix提供了Eureka来实现服务的发现功能。
Eureka包含了两大组件:
服务端发现组件:用于提供服务的注册功能。
客户端发现组件:用于处理服务的注册与发现。
注意:Eureka服务提供者和服务消费者之间的角色是可以相互转换的,因为一个服务既可能是服务消费者,同时也可能是服务提供者。
当客户端服务通过注解等方式嵌入到程序的代码中运行时,客户端发现组件就会向注册中心注册自身提供的服务,并周期性的发送心跳来更新服务(默认30S,如果连续三次心跳都不能发现服务,那么Eureka就会将这个服务节点从服务注册表中移除。)。
在客户端发现组件向注册中心注册自身提供的服务时,客户端发现组件还会从服务端查询当前注册的服务信息并缓存到本地,即使Eureka服务出现了问题,客户端组件还可以通过缓存中的信息调用服务节点的服务。
原文:https://www.cnblogs.com/itlihao/p/14521694.html