springcloud包含的组件

Spring Cloud 很大的一部分是基于 Spring Boot 来实现,不可以不基于spring Boot实现
SpringCloud 主要框架:(共17个)

  服务发现——Netflix Eureka
  服务调用——Netflix Feign
  熔断器——Netflix Hystrix
  服务网关——Netflix Zuul
  分布式配置——Spring Cloud Config
  消息总线 —— Spring Cloud Bus

SpringCloud 的版本:形式为版本名+里程碑号

Eureka 是 Netflix 开发的服务发现框架,SpringCloud 将它集成在自己的子项目spring-cloud-netflix 中,实现 SpringCloud 的服务发现功能。

Eureka 包含两个组件:Eureka Server 和 Eureka Client。

      Eureka Server 提供服务注册服务,各个节点启动后,会在 Eureka Server 中进行注
    册,这样 EurekaServer 中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信
    息可以在界面中直观的看到。
    Eureka Client 是一个 java 客户端,用于简化与 Eureka Server 的交互,客户端同时也就别
      一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向 Eureka
    Server 发送心跳,默认周期为 30 秒,如果 Eureka Server 在多个心跳周期内没有接收到某个节
    点的心跳,Eureka Server 将会从服务注册表中把这个服务节点移除(默认 90 秒)。

      Eureka Server 之间通过复制的方式完成数据的同步,Eureka 还提供了客户端缓存机制,
    即使所有的 Eureka Server 都挂掉,客户端依然可以利用缓存中的信息消费其他服务的 API。
    综上,Eureka 通过心跳检查、客户端缓存等机制,确保了系统的高可用性、灵活性和可伸
    缩性。

使用步骤:

(1)将其他微服务模块添加依赖

(2)修改每个微服务的 application.yml,添加注册 eureka 服务的配置

(3)修改每个服务类的启动类,添加注解@EnableEurekaClient

Feign 实现服务间调用:

使用步骤:

(1)模块添加依赖

(2)修改模块的启动类,添加注解@EnableDiscoveryClient@EnableFeignClients

(3)模块创建 client 包,包下创建接口

  @FeignClient 类注解用于指定从哪个服务中调用功能 ,注意 里面的名称与被调用的服务名保持一致,并且不能包含下划线。

  @RequestMapping方法注解用于对被调用的微服务进行地址映射。注意 @PathVariable注解一定要指定参数名称,否则出错。

  

posted @ 2018-10-28 13:21  ng-xixi  阅读(2044)  评论(0编辑  收藏  举报