zoukankan      html  css  js  c++  java
  • SpringCloud简介初体验

    什么是SpringCloud


    简单来说,微服务是一种架构模型,就是把系统中的各个功能点都拆开为一个个的小应用然后单独部署,同时因为这些小应用多,所以需要一些办法来管理这些小应用。

    Spring Cloud只是一个微服务框架的规范,注意,只是规范,并不是任何具体法人框架。主要大概有以下几种功能

    1. eureka(提供服务的注册和发现功能)
    2. ribbon(提供负载均衡功能)
    3. Feign(整合了ribbon和Hystrix,具有负载均衡和熔断限流等功能)
    4. Hystrix(提供了熔断限流,合并请求等功能)
    5. Zuul(提供了智能路由的功能)
    6. Hystrix Dashboard(提供了服务监控的功能,提供了数据监控和友好的图形化界面)
    7. Hystrix Turbine(Hystrix Turbine将每个服务Hystrix DashBoard数据进行了整合,也是监控系统的功能)
    8. Spring Cloud config(提供了统一配置的功能)
    9. Spring Cloud(提供了配置实时更新的功能,控制总线)
    10. ...

    注意:需要注意的是这些组件并不是一体化的,也可以用NCOS或Zookeeper来替换eureka

    目前主流并且恰好能够满足上面的需求,就是Spring Cloud Netflix,当然Spring Cloud的实现产品不止这一个,还有最近由阿里新起的Spring Cloud Alibaba等。

    Spring Cloud和Spring boot的关系


    其实它们之间并没有什么特殊的关系,只不过当下流行微服务,而实现一个服务最快的办法就是用Spring boot,仅此而已。

    Spring Cloud和dubbo的关系


    dubbo是阿里搞得一套框架,是基于RPC调用的,而Spring Netflix是基于HTTP的,所以效率上应该dubbo更快,但是dubbo的组件不是很齐全,它的很多功能比如服务注册于发现你需要借助于类似Zookeeper等组件才能实现,而Spring Cloud Netflix则是提供了一站式解决方案。

    如何学习Spring Cloud

    在此贴出以为大牛的Spring Cloud入门,真的通俗易懂。

    https://www.fangzhipeng.com/spring-cloud.html

    构建分布式系统不应该是复杂的,Spring Cloud对常见的分布式系统模式提供了简单易用的编程模型,帮助开发者构建弹性、可靠、协调的应用程序。Spring Cloud是在Spring Boot的基础上构建的,使开发者可以轻松入门并快速提供效率,SpringCloud为开发人员提供了快速构建分布式系统架构的工具,例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁定、领导选举、分布式会话、集群状态等。

    SpringCloud子项目简介


    Spring Cloud config

    集中管理工具,分布式系统中统一的外部配置管理,默认使用Git来存储配置,可以支持客户端配置的刷新及加密、解密操作。

    Spring Cloud Netflix

    Netflix OSS开源组件集成,包括Eureka、Hystrix、Ribbon、Feign、Zuul等核心组件。

    • Eureka:服务治理组件,包括服务端的注册中心和客户端的服务发现机制。
    • Ribbon:负载均衡的服务调用组件,具有多种负载均衡调用策略。
    • Hystrix:服务容错组件,实现了断路器模式,为依赖服务的出错和延迟提供了容错能力。
    • Feign:基于Ribbon和Hystrix的声明式服务调动组件。
    • Zuul:API网关组件,对请求提供路由和过滤功能。

    Spring Cloud Bus

    用于传播集群状态变化的消息总线,使用轻量级消息代理链接分布式系统中的节点,可以用来动态刷新集群中的服务配置。

    Spring Cloud Consul

    基于Hashicorp Consul的服务治理组件。

    Spring Cloud Security

    安全工具包,对Zuul代理中的负载均衡OAuth2客户端及登录认证进行支持。

    Spring Cloud Sleuth

    Spring Cloud应用程序的分布式请求链路跟踪,支持使用Zipkin、Htrace和基于日志(例如ELK)的跟踪。

    Spring Cloud Stream

    轻量级事件驱动微服务框架,可以使用简单的声明式模型来发送及接收消息,主要实现为Apache Kafka及RabbitMQ。

    Spring Cloud Task

    用于快速构建短暂、有限数据处理任务的微服务框架,用于向应用中添加功能性和非功能性的特性。

    Spring Cloud Zookeeper

    基于Apache Zookeeper的服务治理组件。

    Spring Cloud Gateway

    API网关组件,对请求提供路由及过滤功能。

    Spring Cloud OpenFeign

    基于Ribbon和Hystrix的声明式服务调用组件,可以动态创建基于Spring MVC注解的接口实现用于服务调用,在SpringCloud 2.0中已经取代Feign成为了一等公民。

  • 相关阅读:
    几个新角色:数据科学家、数据分析师、数据(算法)工程师
    人类投资经理再也无法击败电脑的时代终将到来了...
    Action Results in Web API 2
    Multiple actions were found that match the request in Web Api
    Routing in ASP.NET Web API
    how to create an asp.net web api project in visual studio 2017
    网站漏洞扫描工具
    How does asp.net web api work?
    asp.net web api history and how does it work?
    What is the difference between a web API and a web service?
  • 原文地址:https://www.cnblogs.com/MrAshin/p/12013644.html
Copyright © 2011-2022 走看看