SpringCloud框架的入门教程

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: Spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。

一、SpringCloud介绍

1.概念

Spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。

2.优缺点(主要针对微服务)

(1)优点

①每个服务足够内聚,足够小,代码容易理解、开发效率提高;

②服务之间可以独立部署,微服务架构让持续部署成为可能;

③精细度业务控制,每个服务可以各自进行负载均衡扩展和数据库扩展,而且,每个服务可以根据自己的需要部署到合适的硬件服务器上;

④容易扩大开发团队,可以针对每个服务组件开发团队;

⑤提高容错性,一个服务的内存泄露并不会让整个系统瘫痪;

⑥每个服务可以用不同的技术开发,系统不会被长期限制在某个技术栈上。

(2)缺点

①开发人员要处理分布式系统的复杂性:

设计服务之间的通信机制,需要考虑分布式事务等问题;

涉及多个服务直接的自动化测试;

服务管理的复杂性(PS:现在docker的出现适合解决这个问题);

②对于业务数据和处理能力不是很明确的创业公司,不适合微服务架构模式,这时候最重要的是快速开发、快速部署、快速试错。

3.应用场景

适合业务复杂度较大、并发量较高的场景

4.SpringCloud与Dubbo对比

(1)架构完整度上,Dubbo只有服务注册/服务治理(zookeeper)两个模块,SpringCloud已经有二十多个模块,而且还在增加;

(2)SpringCloud的社区活跃度高;但Dubbo有高质量的中文文档

(3)Dubbo服务间的通讯采用的RPC,SpringCloud则是Http的Rset,RPC对业务接口有强依赖性,需要通讯双方有一样的接口,REST更为轻量化,只通过一个约定进行规范,不存在代码间的耦合。

二、SpringCloud子项目

SpringCloud的子项目一直在持续更新,这里我把SpringCloud中文网首页的直接放上来了。

详情参照:https://www.springcloud.cc/

1.Spring Cloud Config(Spring)

配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。

2.Spring Cloud Bus(Spring)

事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。

3.Eureka(Netflix)

云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。

4.Hystrix(Netflix)

熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。

5.Zuul(Netflix)

Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。

6.Archaius(Netflix)

配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。

7.Consul(HashiCorp)

封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。

8.Spring Cloud for Cloud Foundry(Pivotal)

通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台。

9.Spring Cloud Sleuth(Spring)

日志收集工具包,封装了Dapper和log-based追踪以及Zipkin和HTrace操作,为SpringCloud应用实现了一种分布式追踪解决方案。

10.Spring Cloud Data Flow(Pivotal)

大数据操作工具,作为Spring XD的替代产品,它是一个混合计算模型,结合了流数据与批量数据的处理方式。

11.Spring Cloud Security(Spring)

基于spring security的安全工具包,为你的应用程序添加安全控制。

12.Spring Cloud Zookeeper(Spring)

操作Zookeeper的工具包,用于使用zookeeper方式的服务发现和配置管理。

13.Spring Cloud Stream(Spring)

数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。

14.Spring Cloud CLI(Spring)

基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件。

15.Ribbon(Netflix)

提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用。

16.Turbine(Netflix)

Turbine是聚合服务器发送事件流数据的一个工具,用来监控集群下hystrix的metrics情况。

17.Feign(OpenFeign)

Feign是一种声明式、模板化的HTTP客户端。

18.Spring Cloud Task(Spring)

提供云端计划任务管理、任务调度。

19.Spring Cloud Connectors(Spring)

便于云端应用程序在各种PaaS平台连接到后端,如:数据库和消息代理服务。

20.Spring Cloud Cluster(Spring)

提供Leadership选举,如:Zookeeper, Redis, Hazelcast, Consul等常见状态模式的抽象和实现。

21.Spring Cloud Starters(Pivotal)

Spring Boot式的启动项目,为Spring Cloud提供开箱即用的依赖管理。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
5天前
|
开发框架 移动开发 JavaScript
SpringCloud微服务实战——搭建企业级开发框架(四十七):【移动开发】整合uni-app搭建移动端快速开发框架-添加Axios并实现登录功能
在uni-app中,使用axios实现网络请求和登录功能涉及以下几个关键步骤: 1. **安装axios和axios-auth-refresh**: 在项目的`package.json`中添加axios和axios-auth-refresh依赖,可以通过HBuilderX的终端窗口运行`yarn add axios axios-auth-refresh`命令来安装。 2. **配置自定义常量**: 创建`project.config.js`文件,配置全局常量,如API基础URL、TenantId、APP_CLIENT_ID和APP_CLIENT_SECRET等。
|
1月前
|
Java Nacos 微服务
全面学习SpringCloud框架指南
V 哥建议:如果你正在学习SpringCloud,你可以把这篇文章作为学习指南,如果你已经学过了,可以查漏补缺,因为 V 哥这篇文章全面介绍了SpringCloud的方方面面,当然你还需要结合官方文档的细节和源码部分去学习,成功拿下SpringCloud不是问题。加油兄弟!
|
1月前
|
Dubbo Java 应用服务中间件
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
248 0
|
1月前
|
开发框架 移动开发 JavaScript
SpringCloud微服务实战——搭建企业级开发框架(四十六):【移动开发】整合uni-app搭建移动端快速开发框架-环境搭建
正如优秀的软件设计一样,uni-app把一些移动端常用的功能做成了独立的服务或者插件,我们在使用的时候只需要选择使用即可。但是在使用这些服务或者插件时一定要区分其提供的各种服务和插件的使用场景,例如其提供的【uni-starter快速开发项目模版】几乎集成了移动端所需的所有基础功能,使用非常方便,但是其许可协议只允许对接其uniCloud的JS开发服务端,不允许对接自己的php、java等其他后台系统。
181 4
|
9月前
|
前端开发 Java 测试技术
Spring、SpringMVC、SpringBoot、SpringCloud 框架常用注解说明
Spring、SpringMVC、SpringBoot、SpringCloud 框架常用注解说明
|
11月前
|
消息中间件 SpringCloudAlibaba Java
SpringCloud Alibaba 框架背后的故事
Spring Cloud Alibaba是Spring Cloud的一个子项目,它是由阿里巴巴公司推出的,用于构建基于微服务架构的分布式应用程序的开源框架。它与Spring Cloud的其他组件(如Netflix OSS)相结合,为开发人员提供了丰富的工具和功能,以便更轻松地构建、部署和管理分布式系统。
|
1月前
|
Prometheus 监控 Cloud Native
SpringCloud微服务实战——搭建企业级开发框架(四十五):【微服务监控告警实现方式二】使用Actuator(Micrometer)+Prometheus+Grafana实现完整的微服务监控
无论是使用SpringBootAdmin还是使用Prometheus+Grafana都离不开SpringBoot提供的核心组件Actuator。提到Actuator,又不得不提Micrometer,从SpringBoot2.x开始,Actuator的功能实现都是基于Micrometer的。
316 0
|
1月前
|
人工智能 监控 安全
基于Springcloud微服务框架 +VUE框架开发的智慧工地系统源码
基于Springcloud微服务框架 +VUE框架开发的智慧工地系统源码
42 0
|
6月前
|
人工智能 监控 安全
基于Springcloud微服务框架智慧工地系统源码
智慧工地工程进度流程: 前期临建搭建、基础工程施工、主体结构施工、主体封顶地库平口、主体结构验收、地库安装完成、外立面施工、室外景观工程、内部一户一验、竣工备案、一站式交付。
39 0
|
10月前
|
人工智能 监控 数据可视化
一套智慧工地云平台源码,基于Spring Cloud +UniApp框架开发,包含:视频监控、劳务实名制、环境监测、GIS地理信息、数据统计等功能
一套智慧工地平台源码,一体化云服务,包含:视频监控、劳务实名制、环境监测、停车管理、安质管理、GIS地理信息、数据统计、智能AI等功能。 技术架构:微服务+Java+Spring Cloud +UniApp +MySql 端到端的数据安全通信和安全认证,保障项目看板信息、劳务管理、视频管理、设备告警等数据的安全传输。
一套智慧工地云平台源码,基于Spring Cloud +UniApp框架开发,包含:视频监控、劳务实名制、环境监测、GIS地理信息、数据统计等功能