前言:
网络架构演变过程
What
概念:
Spring Cloud是基于SpringBoot基础上开发微服务框架,是目前非常完整的解决方案框架,其内容包含服务治理、注册中心、配置中心、断路器、控制总线、全局锁等等。
常用组件:
优点:
1.约定优于配置
2. 轻量级组件
3.开发简单
4. 解耦
Why
SpringCloud对于微服务提供了一整套完整的微服务解决方案,不像是其他框架只是解决了微服务中某个问题。
how
一、服务治理Eureka
常见服务治理对比:
Consul强一致性(C)带来的是:
服务注册相比Eureka会稍慢一些。因为Consul的raft协议要求必须过半数的节点都写入成功才认为注册成功Leader挂掉时,重新选举期间整个consul不可用。保证了强一致性但牺牲了可用性。
Eureka保证高可用(A)和最终一致性:
服务注册相对要快,因为不需要等注册信息replicate到其他节点,也不保证注册信息是否replicate成功当数据出现不一致时,虽然A, B上的注册信息不完全相同,但每个Eureka节点依然能够正常对外提供服务,这会出现查询服务信息时如果请求A查不到,但请求B就能查到。如此保证了可用性但牺牲了一致性。
服务注册与发现
(1)服务注册:每个服务单元向注册中心登记自己的信息,比如IP、端口号等以别名的形式注册到注册中心上。
(2)服务发现:另一方(消费者|服务提供者),以该别名的方式去注册中心上获取到实际的服务通讯地址,然后再实现本地rpc调用远程。
Eureka服务治理体系图:
项目应用:
- 创建Maven项目,引入相应的Eureka依赖;
2.Eureka服务端引入注解
3.配置 application.yml文件
服务注册/消费
Config配置
- 创建Maven项目,引入相应的Config依赖;
2.Server服务端引入注解
3.配置 application.yml文件
各个服务读取配置文件
服务间调用-Feign
1.Maven依赖信息
2.feign客户端接口
3.项目启动加上@EnableFeignClients