1、什么是分布式?
简单说,原来是在一个 springboot里就完成的事情,现在分布在多个 springboot里做,这就是初步具备 分布式雏形了。
那么分布式有什么好处呢?
- 如果我要更新数据微服务,视图微服务是不受影响的
- 可以让不同的团队开发不同的微服务,他们之间只要约定好接口,彼此之间是低耦合的。
- 如果视图微服务挂了,数据微服务依然可以继续使用
2、什么是集群?
原来数据微服务只有这一个springboot, 现在做同样数据微服务的,有两个 springboot, 他们提供的功能一模一样,只是端口不一样,这样就形成了集群。
那么集群有什么好处呢?
- 比起一个 springboot, 两个springboot 可以分别部署在两个不同的机器上,那么理论上来说,能够承受的负载就是 x 2. 这样系统就具备通过横向扩展而提高性能的机制。
- 如果 8001 挂了,还有 8002 继续提供微服务,这就叫做高可用
3、eureka(服务注册中心)的作用
如果所有的后端微服务之间,没有互相通信,那么eureka是可以不要的。
如果后端微服务之间,有互相通信,那么在负载均衡时,相同的服务肯定会启动多个,而且使用不同的端口,这个时候,服务之间就可以通过注册在eureka中的名称来找到对方,而不是根据IP+端口号去找对方。
如果后端微服务之间相互通信,都要知道具体的IP和端口,那开发要怎么干?
4、Ribbon是什么
Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独立部署,但是它几乎存在于每一个Spring Cloud构建的微服务和基础设施中。因为微服务间的调用,API网关的请求转发等内容,实际上都是通过Ribbon来实现的
springcloud 提供了两种方式,一种是 Ribbon,一种是 Feign。
Ribbon 是使用 restTemplate 进行调用,并进行客户端负载均衡。 什么是客户端负载均衡呢? 假如是有两个注册数据微服务,注册了8001和8002两个微服务, Ribbon 会从注册中心获知这个信息,然后由 Ribbon 这个客户端自己决定是调用哪个,这个就叫做客户端负载均衡。
5、Feign 是什么
Feign 是对 Ribbon的封装,使用注解的方式,调用起来更简单。。。 也是主流的方式~ 见上
6、什么是服务链路
假如有数据服务和视图服务,随着业务的增加,就会有越来越多的微服务存在,他们之间也会有更加复杂的调用关系。这个调用关系,仅仅通过观察代码,会越来越难以识别,所以就需要通过 zipkin 服务链路追踪服务器 这个东西来用图片进行识别了。
7、什么是断路器
所谓的断路器,就是当被访问的微服务无法使用的时候,当前服务能够感知这个现象,并且提供一个备用的方案出来。
***帅气的远远啊***