SpringCloud学习笔记(一、初识)

简介: SpringCloud学习笔记(一、初识)

SpringCloud是什么?

官方文档这么写道:

Spring Cloud provides tools for  developers to quickly build some of the common patterns in distributed  systems (e.g. configuration management, service discovery, circuit  breakers, intelligent routing, micro-proxy, control bus, one-time  tokens, global locks, leadership election, distributed sessions, cluster  state). Coordination of distributed systems leads to boiler plate  patterns, and using Spring Cloud developers can quickly stand up  services and applications that implement those patterns. They will work  well in any distributed environment, including the developer’s own  laptop, bare metal data centres, and managed platforms such as Cloud  Foundry.

翻译一下:

Spring  Cloud为开发人员提供了快速构建分布式系统中的一些常见模式的工具(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导层选举、分布式会话、集群状态)。分布式系统的协调导致了锅炉板模式,使用Spring   Cloud开发人员可以快速建立实现这些模式的服务和应用程序。它们在任何分布式环境中都能很好地工作,包括开发人员自己的笔记本电脑、裸机数据中心和云计算等托管平台。

SpringCloud是一套工具,是一系列框架的有序集合,SpringCloud 就是一套工具,帮助大家很容易地搭建出这么一个集群和分布式的架子出来

问题又来了,分布式和集群又是什么?

分布式、集群、微服务

  • 分布式:一个业务分拆多个子业务,部署在不同的服务器上
  • 集群:同一个业务,部署在多个服务器上
  • 微服务的意思也就是将模块拆分成一个独立的服务单元通过接口来实现数据的交互。

分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在一起,实现同一业务。分布式中的每一个节点,都可以做集群。而集群并不一定就是分布式的。

 分布式示意图

image.png

 分布式,从窄意上理解,也跟集群差不多,但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来.分布式的每一个节点,都完成不同的业务,一个节点垮了,那这个业务就不可访问了。好的设计应该是分布式和集群的结合,先分布式再集群,具体实现就是业务拆分成很多子业务,然后针对每个子业务进行集群部署,这样每个子业务如果出了问题,整个系统完全不会受影响。

 高可用集群示意图

微服务的设计是为了不因为某个模块的升级和BUG影响现有的系统业务。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。分布式和微服的架构很相似,只是部署的方式不一样而已。

SpringCloud特性

从官网我们可以看到,SpringCloud有以下特性和功能:

Spring Cloud focuses on providing good out of box experience for typical use cases and extensibility mechanism to cover others.

  • Distributed/versioned configuration
  • Service registration and discovery
  • Routing
  • Service-to-service calls
  • Load balancing
  • Circuit Breakers
  • Global locks
  • Leadership election and cluster state
  • Distributed messaging

Spring Cloud takes a very declarative approach, and often you get a  lot of features with just a classpath change and/or an annotation.

翻译一下:

Spring Cloud专注于为典型用例提供良好的开箱即用体验,并提供扩展机制来覆盖其他用例。

  • 分布式/版本配置
  • 服务注册及发现
  • 路由
  • service - to - service调用
  • 负载平衡
  • 断路器
  • 全局锁
  • Leadership election and cluster state
  • 分布式消息

Spring Cloud采用了一种非常声明性的方法,通常只需更改类路径和/或注释就可以获得很多特性。

为了实现这些特性和功能,SpringCloud有很多组件和模块,主要如下:

• Eureka :服务注册中心,用于服务管理

• Ribbon :基于客户端的负载均衡组件

• Hystrix :容错框架,能够防止服务的 崩效应

• Feign: Web 服务客户端,能够简 Http 接口的调用

• Zuul: API 网关 ,提供路由转发、请求过滤等功能

• Config 分布式配置管理

• Sleuth :服务跟踪

• Stream :构建消息驱动的微服务应用程序的框架

• Bus :消息代理的集群消息总线。

为什么SpringCloud如此流行?

  • 社区的支持:
  • 首先 Spring Cloud 有强大的社区支持,在 Java 生态圈必定离不开 Spring ,且
    Spring Cloud 的更新频率也越来越高
  • 关注内容:
  • Spring Cloud 关注的是整个服务架构会涉及的方方面面,在 Spring Cloud 中各种
    组件应有尽有,从而使其具有可快速集成、方便 成本低等优势
  • 性能问题
  • Spring Cloud 带来的性能损耗对于大部分应用来说是可以接受的,而它具有的
    Http 风格的 API 交互,在不同的语言中是通用的,且对每个微服务的测试来说是
    非常方便的,也就是说 Spring Cloud 用小的性能损耗换来了更多好处 。

接下来通过实践和学习来进一步认识SpringCloud。

参考:

【1】、分布式和集群 / SpringCloud / SpringCloud系列教材 (一)- 介绍

【2】、springcloud(一):大话Spring Cloud

【3】、Spring Cloud Hoxton SR6

【4】、三分钟读懂TT猫分布式、微服务和集群之路

【5】、分布式-微服务-集群 的概念和区别


目录
相关文章
|
3天前
|
监控 安全 Java
Spring cloud原理详解
Spring cloud原理详解
15 0
|
7天前
|
消息中间件 负载均衡 Java
【Spring Cloud 初探幽】
【Spring Cloud 初探幽】
15 1
|
9天前
|
Java 开发者 微服务
Spring Cloud原理详解
【5月更文挑战第4天】Spring Cloud是Spring生态系统中的微服务框架,包含配置管理、服务发现、断路器、API网关等工具,简化分布式系统开发。核心组件如Eureka(服务发现)、Config Server(配置中心)、Ribbon(负载均衡)、Hystrix(断路器)、Zuul(API网关)等。本文讨论了Spring Cloud的基本概念、核心组件、常见问题及解决策略,并提供代码示例,帮助开发者更好地理解和实践微服务架构。此外,还涵盖了服务通信方式、安全性、性能优化、自动化部署、服务网格和无服务器架构的融合等话题,揭示了微服务架构的未来趋势。
32 6
|
13天前
|
JSON Java Apache
Spring Cloud Feign 使用Apache的HTTP Client替换Feign原生httpclient
Spring Cloud Feign 使用Apache的HTTP Client替换Feign原生httpclient
|
14天前
|
负载均衡 Java 开发者
Spring Cloud:一文读懂其原理与架构
Spring Cloud 是一套微服务解决方案,它整合了Netflix公司的多个开源框架,简化了分布式系统开发。Spring Cloud 提供了服务注册与发现、配置中心、消息总线、负载均衡、熔断机制等工具,让开发者可以快速地构建一些常见的微服务架构。
|
15天前
|
消息中间件 Java RocketMQ
Spring Cloud RocketMQ:构建可靠消息驱动的微服务架构
【4月更文挑战第28天】消息队列在微服务架构中扮演着至关重要的角色,能够实现服务之间的解耦、异步通信以及数据分发。Spring Cloud RocketMQ作为Apache RocketMQ的Spring Cloud集成,为微服务架构提供了可靠的消息传输机制。
28 1
|
15天前
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo: 微服务通信的高效解决方案
【4月更文挑战第28天】在微服务架构的发展中,服务间的高效通信至关重要。Spring Cloud Dubbo 提供了一种基于 RPC 的通信方式,使得服务间的调用就像本地方法调用一样简单。本篇博客将探讨 Spring Cloud Dubbo 的核心概念,并通过具体实例展示其在项目中的实战应用。
16 2
|
15天前
|
监控 Java Sentinel
Spring Cloud Sentinel:概念与实战应用
【4月更文挑战第28天】在分布式微服务架构中,确保系统的稳定性和可靠性至关重要。Spring Cloud Sentinel 为微服务提供流量控制、熔断降级和系统负载保护,有效预防服务雪崩。本篇博客深入探讨 Spring Cloud Sentinel 的核心概念,并通过实际案例展示其在项目中的应用。
25 0
|
15天前
|
Cloud Native Java Nacos
Spring Cloud Nacos:概念与实战应用
【4月更文挑战第28天】Spring Cloud Nacos 是一个基于 Spring Cloud 构建的服务发现和配置管理工具,适用于微服务架构。Nacos 提供了动态服务发现、服务配置、服务元数据及流量管理等功能,帮助开发者构建云原生应用。
21 0