springcloud学习

1.1 简介

  SpringCloud是Spring旗下的项目之一,[官网地址:http://projects.spring.io/spring-cloud/](http://projects.spring.io/spring-cloud/)
  Spring最擅长的就是集成,把世界上最好的框架拿过来,集成到自己的项目中。
  SpringCloud也是一样,它将现在非常流行的一些技术整合到一起,实现了诸如:配置管理,服务发现,智能路由,负载均衡,熔断器,控制总线,集群状态等等功能。其主要涉及的组件包括:  
  netflix
    - Eureka:注册中心
    - Zuul:服务网关
    - Ribbon:负载均衡
    - Feign:服务调用
    - Hystix:熔断器
 1.2  简单的restTemplate远程调用
   新建maven pom父工程,再新建两个子工程
   - use-service-demo:一个提供根据id查询用户的微服务
   - consumer-demo:一个服务调用者,通过RestTemplate远程调用user-service-demo 
  存在什么问题?
    - 在consumer中,我们把url地址硬编码到了代码中,不方便后期维护
    - consumer需要记忆user-service的地址,如果出现变更,可能得不到通知,地址将失效
    - consumer不清楚user-service的状态,服务宕机也不知道
    - user-service只有1台服务,不具备高可用性
    - 即便user-service形成集群,consumer还需自己实现负载均衡
  其实上面说的问题,概括一下就是分布式服务必然要面临的问题:
    - 服务管理
      - 如何自动注册和发现
      - 如何实现状态监管
      - 如何实现动态路由
    - 服务如何实现负载均衡
    - 服务如何解决容灾问题
    - 服务如何实现统一配置
1.3 Eureka注册中心
  实现了 服务的自动注册、发现、状态监控
  
       springcloud学习_第1张图片

 

  - Eureka:就是服务注册中心(可以是一个集群),对外暴露自己的地址
  - 提供者:启动后向Eureka注册自己信息(地址,提供什么服务)
  - 消费者:向Eureka订阅服务,Eureka会将对应服务的所有提供者地址列表发送给消费者,并且定期更新
  - 心跳(续约):提供者定期通过http方式向Eureka刷新自己的状态

  导入pom依赖,设置@EnableEurekaServer,调整配置文件
 
 
1.4 负载均衡的调用
  ribbon
  feign
 

你可能感兴趣的:(springcloud学习)