SpringCloud

一. Eureka(服务注册与发现)

1. 概念

什么是Eureka?

        Eureka是Netflix开源的服务注册与发现组件。

Eureka的架构?

        Eureka是CS架构,分为Eureka Server和Eureka Client,Server端是服务注册中心的角色,Client可以向Server端注册自己的信息,或从Server端拉取其他服务列表。

        Client周期性向Server端发送心跳,表明服务实例仍处于健康状态。

Eureka的工作原理?

  • 微服务启动时,会向 Eureka Server 注册自己的信息(例如 IP 地址、端口号、服务名等)
  • Eureka Server 会存储并维护这些注册信息
  • 其他微服务通过 Eureka Server 可以获取到需要调用的服务的位置信息,从而进行服务间的通信

2. 单机Eureka搭建步骤

SpringCloud_第1张图片

2.1 搭建Eureka Server

(1)创建一个Maven模块

(2)引入eureka-server的依赖


    org.springframework.cloud
    spring-cloud-starter-netflix-eureka-server

(3)启动类上加@EnableEurekaServer

(4)编写application.yml配置文件,添加 服务名、地址、端口

server:
  port: 10086
spring:
  application:
    name: eureka-server
eureka:
  client:
    service-url: 
      defaultZone: http://127.0.0.1:10086/eureka

(5)启动服务,并访问 http://127.0.0.1:10086 测试是否搭建成功

2.2 服务注册

(1)在user服务中引入eureka-client的依赖


    org.springframework.cloud
    spring-cloud-starter-netflix-eureka-client

(2)修改配置文件,添加服务名称和Eureka Server端地址

spring:
  application:
    name: userservice
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka

2.3 服务发现

(1)在order服务中引入eureka-client的依赖


    org.springframework.cloud
    spring-cloud-starter-netflix-eureka-client

(2)修改配置文件,添加服务名称和Eureka Server端地址

spring:
  application:
    name: userservice
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka

(3)服务拉取和负载均衡

SpringCloud_第2张图片

SpringCloud_第3张图片

二. Zookeeper(服务注册与发现)

三.  Feign(服务调用)

feign和openFeign的区别?

四. Ribbon(负载均衡)

1. 负载均衡原理

SpringCloud_第4张图片

SpringCloud_第5张图片

SpringCloud_第6张图片

@LoadBalance的作用是:标记通过RestTemplate发送的请求要被Ribbon处理

Ribbon底层原理总结(@LoadBalanced)

        Ribbon的底层是使用了一个拦截器,拦截了所有RestTemplate发起的请求,使用请求中的服务名到注册中心拉取服务列表并存储,再通过负载均衡算法选取一台服务器,最后修改请求地址。

2. 负载均衡策略

负载均衡的规则都定义在IRule接口中,而IRule有很多不同的实现类

SpringCloud_第7张图片

SpringCloud_第8张图片

五. SpringCloud Zuul(网关)

六. Hystrix(服务容错)

七. XXL-JOB(分布式调度)

八. RabbitMQ(消息)

SpringCloud并没有绑定特定的消息中间件,但是它支持多种消息中间件,如RabbitMQ、Kafka。

SpringAMQP底层就包括对RabbitMQ的支持

九. Kafka(消息)

十. Docker(服务部署)

十一. Kubernetes(容器编排)

十二. SpringCloud Sleuth(链路追踪)

你可能感兴趣的:(spring,cloud,spring,后端)