zoukankan      html  css  js  c++  java
  • SpringCloud入门总结

    SpringCloud基于Springboot构建,是为了简化分布式在微服务中的应用:

    一、SpringCloud采用Eureka注册中心,Eureka分为服务端和客户端,应用注册在服务端,使用hostname或者ip识别相同的应用,客户端通过服务端调用其他客户端,类似于Zookeeper。

    二、服务的调用有两种常见的方式,分别通过两个组件完成:

    1. Ribbon:通过手动添加@LoadBalanced注解,将Ribbon封装到RestTemplate bean中,在使用RestTemplate API访问远程应用时自动实现了服务端负载均衡,这种方式相当于RestTemplate+负载均衡,这种方式不够优雅。
    2. Feign:Feign通过创建被调用者的代理对象,通过对象调用方法的方式进行调用,就好像在本地调用一样,这种方式更加优雅,当然需要额外创建一个被调用者的接口及抽象方法,这样Feign才会创建出代理对象。Feign底层还是通过Ribbon实现负载均衡。
    • 服务端负载均衡:Ribbon实现的是客户端负载均衡,不需要额外的负载均衡的服务,Ribbon将Eureka服务端中的地址列表拷贝到本地,每次调用时从本地直接查找并选择一个地址进行调用,最简单的方式就是轮询,挨个调用。

    三、高可用的Eureka服务端,

      即Eureka服务端集群。Eureke注册中心搭建集群很便利,只需要将服务端像客户端一样注册到其他服务端即可,这种服务端和客户端一致的方式也是一种简化的体现。

    • 服务发现:Eureka会主动的去发现服务,已经有两个节点的服务端,需要增加一个服务端,只需要配置任意一个服务端地址,就会被另外一个所发现。这一点和ElasticSearch的集群很相似,对于横向扩展来说很方便,只需要配置一个节点即可。对于客户端扩展也是相同的道理。

    以上就是SpringCloud的最基础的三个组件,本质上就是给Http调用+负载均衡,通过简单的配置和注解就可以完成分布式。对比Dubbo+Zookeeper的方式,Eureka注册中心不需要下载和配置第三方的应用,就像部署Springboot应用一样部署实现Eureka集群,从这个角度来说也是简化了开发成本。

  • 相关阅读:
    java——io、字节流缓冲区拷贝文件、字节缓冲流
    java——斗地主小游戏之洗牌发牌
    java——HashMap、Hashtable
    java——模拟新浪微博用户注册
    [bzoj 1492][NOI2007]货币兑换Cash
    [bzoj 1010][HNOI 2008]玩具装箱
    [bzoj 2875][noi2012]随机数生成器
    [bzoj 4872][六省联考2017]分手是祝愿
    [bzoj 3566][SHOI 2014]概率充电器
    [bzoj 3534][Sdoi2014] 重建
  • 原文地址:https://www.cnblogs.com/lishaojun/p/11484697.html
Copyright © 2011-2022 走看看