zoukankan      html  css  js  c++  java
  • SpringCloud 使用

    SpringCloud

    启动顺序:

    (1)配置文件

    (2)Zuul

    (3)Eureka

    (4)其他项目

    基础功能:

    服务治理: Spring Cloud Eureka

    作用:解决子系统之间的远程调用问题,不需要维护服务之间系统调用的静态ip等。服务ABCD,在E服务Eureka中注册,ABCD之间的调用通过服务名来调用。
    ABCD称为Eureka的客户端,其中又细分为服务提供者和服务消费者,E为服务端。如果D不需要对外提供服务,只是一个单纯的消费者,是不需要注册到E中的。

    服务提供者:
    [1] 服务注册
    [2] 服务续约
    [3] 服务下线

    服务消费者:
    [1] 获取服务
    [2] 服务调用

    服务注册中心:
    [1] 失效剔除,没有续约的服务。
    [2] 自我保护,服务续约总是失败,尽可能保护这些注册信息。

    eureka:
    client:
    register-with-eureka: false # 当前微服务不注册到eureka中(消费端)
    service-url:
    defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/


    E服务一般进行如下配置:
    register-with-eureka: false #false表示不向注册中心注册自己。
    fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务


    客户端负载均衡: Spring Cloud Ribbon(对应的服务端负载均衡Nginx)

    RestTemplate 取代传统的httpclient进行远程调用,直接用spring封装好的工具类。

    // 服务实例名
    private static final String REST_URL_PREFIX = "http://MICROSERVICECLOUD-DEPT";

    restTemplate.postForObject(REST_URL_PREFIX + "/dept/add", dept, Boolean.class);


    服务容错保护: Spring Cloud Hystrix

    在高并发的情况下,由于单个服务的延迟,可能导致所有的请求都处于延迟状态,甚至在几秒钟就使服务处于负载饱和的状态,资源耗尽,直到不可用,最终导致这个分布式系统都不可用,这就是“雪崩”。
    [1] Fallback(失败快速返回),直接响应返回错误信息。
    [2] 资源/依赖隔离(线程池隔离),不会影响其他线程的正常运行状态。

    声明式服务调用: Spring Cloud Feign

    基于Netflix Feign 实现,整合了Ribbon与Hystrix, 除了整合这两者的强大功能之外,它还提供了声明式的服务调用(不再通过RestTemplate)。
    @FeignClient,用于服务之间的调用。

    API网关服务:Spring Cloud Zuul

    用于权限控制等,也就是平时项目中的拦截器和过滤器。

    分布式配置中心: Spring Cloud Config

    所有的配置文件管理的地方。

  • 相关阅读:
    如何快速正确的安装 Ruby, Rails 运行环境
    五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理
    CocoaPods安装和使用教程
    ARC下需要注意的内存管理
    iOS 遍历某一对象的属性和方法
    使用命令行工具运行Xcode 7 UI Tests
    手势知多少
    Customizing UIWebView requests with NSURLProtocol
    iOS: JS和Native交互的两种方法
    NSURLProtocol
  • 原文地址:https://www.cnblogs.com/pzyin/p/12891967.html
Copyright © 2011-2022 走看看