什么是微服务?
将原来的应用,根据业务进行拆分,去除耦合,每一个微服务提供单个业务功能的服务和接口,一个服务只做一件事,是独立的进程
SpringCloud的优缺点
1.每个服务足够小,代码容易理解
2.开发简单,效率高
3.适合小团队独立开发
4.低耦合,无论开发还是部署过程都是独立的
5.每个微服务可以有有自己的数据库,也可以有统一的数据库
SpringBoot和SpringCloud的区别
SpringBoot专注于快速方便的开发单个微服务
SpringCloud是关注全局微服务的协调整治治理框架,是用于管理SpringBoot拆分的微服务的,为各个微服务之间提供配置,服务发现,断路器,路由,微代理等集成服务
SpringBoot可以离开SpringCloud独立开发项目,但SpringCloud不能够离开SpringBoot,属于依赖关系
SpringBoot专注于快速方便的开发微服务个体
SpringCloud关全局的服务治理
SpringCloud和Dubbo的优缺点
SpringCloud之RestTemplate
参考:https://www.jianshu.com/p/05169bb94814
restTemplate提供了多种便捷访问远程HTTp服务的方法,类似HTTPClent
是一种简单便捷的访问restful服务模板类,是Spring提供的范文Rest服务的客户端模板工具类
SpringCloud之Eureka注册中心
核心模块之一,eureka是基于rest的风月服务,用于定位服务,已实现云端中间层服务的发现和故障转移没服务注册与发现对于微服务来说非常重要,有了服务发现和注册,只需使用服务的标识符,就可以访问到服务,不需要修改服务调用的配置文件了,功能类似于dubbo的注册中心
eureka注册中心的配置(服务端)
eureka客户端的配置
细节
eureka的自我保护
某一时刻的微服务挂了,不可用了,eureka不会立刻清理服务,依旧会保留服务的信息
eureka和zookeeper的区别
eureka遵守ap原则
传统cap
C:consistency 一致性
A:Availability 可用性
P: Partition tolerance 分区容错性
但只能同时满足两点,没有同时满足的时候,eureka的ap原则,则是表示同满足一致性和分区容错性
SpringCloud之Ribbon
客户端的负载均衡工具
Ribbon负载均衡:
通ribbon去实现,启动多个相同微服务,在调用接口的时候,通过ribbon去决定调用哪一个微服务下的接口,轮询机制
Ribbon和Eureka整合之后,消费者可以直接调用服务,不用关心地址和端口
Eureka作为注册中心,管理微服务,ribbon作为消费者,存在负载均衡功能,决定调用哪个微服务的接口,其他微服务作为生产者,提供接口,ribbon在调用的时候后,通过restTemplate调用访问
参考:https://blog.csdn.net/weixin_44030218/article/details/88429124
SpringCloud之Hystrix 断路器
Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式里,在调用的时候会存在失败,超时等情况,hystrix就是为了保证,其中一个微服务出现问题的情况下,不会导致整体服务或是系统挂掉
SpringCloud之zuul路由网关
参考网址:https://www.cnblogs.com/jing99/p/11696192.html
这个网址写的非常的细,需要深入了解的自行前往,推荐!!!