Springcloud
1. 微服务架构
1.1 为什么
2.2 是什么
将单一应用划分成一组小的服务,服务之间相互协调、互相配合,为用户提供最终价值。
springcloud=多种微服务架构落地技术的集合体,微服务全家桶
1.3 pom文件
dependencyManagement
是maven提供的一种管理依赖版本号的方式。
使用pom.xml
中的dependencyManagement元素能让所有在子项目中引用一个依赖而不用显示的列出版本号。Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它会使用这个dependencymanagement元素中指定的版本号。
dependencyManagement
只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。
2.服务注册中心
2.1 Zookeeper
2.2 Consul
2.2.1 是什么
Consul是一套开源的分布式服务发现和配置管理系统,有hashiCorp用go语言开发。
2.3 Nacos
2.4 Eureka
2.4.1 基础知识
- 服务治理
Spring Cloud封装了Netflic公司开发的Eureka模块来实现服务治理。
在传统的rpc远程调用框架中,管理每个服务与服务之间的依赖关系比较复杂,需要使用服务治理管理服务与服务之间的依赖关系,可以实现服务调用、负载均衡、容错等,实现服务的注册与发现。
2.4.2 单机Eureka构建步骤
2.4.3 集群Eureka构建步骤
2.4.4 Eureka 理论
保护模式主要用于一组客户端和Eureka Server之间存在网络分区场景下的保护。一旦进入保护模式,Eureka Server将会尝试保护其服务注册表中的信息,不再删除服务注册表中的数据,也就是不会注销任何微服务。
其实就是某时刻某一个微服务不可用,Eureka不会立即清理,依旧会对该微服务的信息进行保存。