Spring Cloud概述

Spring Cloud 从入门到精通 Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量。 本课程由浅入深带领大家一步步攻克 Spring Cloud 各大模块,接着通过一个实例带领大家了解大型分布式微服务架构的搭建过程,最后深入源码加深对它的了解。 本课程共分为四个部分: 第一部分(第... 阅读详情

1 传统的应用

1.1 单体应用

在此之前,笔者所在公司开发Java程序,大都使用SSM等技术框架,每一个项目都会发布一个单体应用。例如开发一个进销存系统,将会开发一个war包部署到Tomcat中,每一次需要开发新的模块或添加新功能时,都会在原来的基础上不断的添加。若干年后,这个war包不断的膨胀,程序员在进行调试时,服务器也可能需要启动半天,维护这个系统的效率极为低下。这样一个war包,涵盖了库存、销售、会员、报表等模块,如图1-1。

file

图1-1 单体应用

这样的单体应用隐患非常多,任何的一个bug,都有可能导致整个系统宕机。笔者印象最深刻的是,曾经有一客户在高峰期,导出一张销售明细报表(数据量较大),最终造成整个系统瘫痪,前台的销售人员无法售卖。维护这样一个系统,不仅效率极低,而且充满风险,项目组的各个成员惶惶不可终日,我们需要本质上的改变。

1.2 架构演进

针对以上的单体应用的问题,我们参考SOA架构,将各个模块划分独立的服务模块(war),并且使用了数据库的读写分离,架构如图1-2。

file

图1-2 架构演进

各个模块之间会存在相互调用的依赖关系,例如销售模块会调用会员模块的接口,为了减少各个模块之间的耦合,我们加入了企业服务总线(ESB),各模块与ESB之间的架构如图1-3所示。

file

图1-3 ESB

加入ESB后,各个模块将服务发布到ESB中,它们与ESB之间使用SOAP协议进行通信。图1-2与图1-3的架构实现后,整个系统的性能有了明显的提升,各个模块的耦合度也降低了。运行了一段日子后,又出现了新的问题,由于销售终端数量的增多,销售模块明显超过其承受能力,为了保证销售前端的正常运行,我们使用了Nginx做负载均衡,请见图1-4。

file

图1-4 使用Nginx

随着销售模块的增多,带来了许多问题,例如管理这些模块,对于运维工程师来说,是一项艰巨的任务,一旦销售模块有所修改,他们将通宵达旦进行升级。另外,企业服务总线也有可能成为性能的瓶颈,虽然目前仍未出现该问题,但我们需要未雨绸缪。

1.3 架构要求

从前面的架构演进可知,应用中的每一个点,都有可能成为系统的问题点。随着互联网应用的普及,在大数据、高并发的环境下,我们的系统架构需要面对更为严苛的挑战,我们需要一套新的架构,它起码能满足以下要求:

 高性能:这是应用程序的基本要求。

 独立性:其中一个模块出现bug或者其他问题,不可以影响其他模块或者整个应用。

 容易扩展:应用中的每一个节点,都可以根据实际需要进行扩展。

 便于管理:对于各个模块的资源,可以轻松进行管理、升级,减少维护成本。

 状态监控与警报:对整个应用程序进行监控,当某一个节点出现问题时,能及时发出警报。

为了能解决遇到的问题、达到以上的架构要求,我们开始研究Spring Cloud。

2 微服务与Spring Cloud

2.1 什么是微服务

微服务一词来源Martin Fowler的“Microservices”一文,微服务是一种架构风格,将单体应用划分为小型的服务单元,微服务之间使用HTTP的API进行资源访问与操作。

在对单体应用的划分上,微服务与前面的SOA架构有点类似,但是SOA架构侧重于将每个单体应用的服务集成到ESB上,而微服务做得更加彻底,强调将整个模块变成服务组件,微服务对模块的划分粒度可能会更细。以我们前面的销售、会员模块为例,在SOA架构中,只需要将相应的服务发布到ESB容器就可以了,而在微服务架构中,这两个模块本身,将会变为一个或多个的服务组件。SOA架构与微服务架构,请见图1-5与图1-6。

file

图1-5 SOA架构

file

图1-6 微服务架构

在微服务的架构上,Martin Fowler的文章肯定了Netflix的贡献,接下来,我们了解一下Netflix OSS。

2.2 关于Netflix OSS

Netflix是一个互联网影片提供商,在几年前,Netflix公司成立了自己的开源中心,名称为Netflix Open Source Software Center,简称Netflix OSS。这个开源组织专注于大数据、云计算方面的技术,提供了多个开源框架,这些框架包括大数据工具、构建工具、基于云平台的服务工具等。Netflix所提供的这些框架,很好的遵循微服务所推崇的理念,实现了去中心化的服务管理、服务容错等机制。

2.3 Spring Cloud与Netflix

Spring Cloud并不是一个具体的框架,大家可以把它理解为一个工具箱,它提供的各类工具,可以帮助我们快速的构建分布式系统。

Spring Cloud的各个项目基于Spring Boot,将Netflix的多个框架进行封装,并且通过自动配置的方式将这些框架绑定到Spring的环境中,从而简化了这些框架的使用。由于Spring Boot的简便,使得我们在使用Spring Cloud时,很容易的将Netflix各个框架整合进我们的项目中。Spring Cloud下的“Spring Cloud Netflix”模块,主要封装了Netflix的以下项目:

  • Eureka:基于REST服务的分布式中间件,主要用于服务管理。
  • Hystrix:容错框架,通过添加延迟阀值以及容错的逻辑,来帮助我们控制分布式系统间组件的交互。
  • Feign:一个REST客户端,目的是为了简化Web Service客户端的开发
  • Ribbon:负载均衡框架,在微服务集群中为各个客户端的通信提供支持,它主要实现中间层应用程序的负载均衡
  • Zuul:为微服务集群提供过代理、过滤、路由等功能。

2.4 Spring Cloud的主要模块

除了Spring Cloud Netflix模块外,Spring Cloud还包括以下几个重要的模块:

  • Spring Cloud Config:为分布式系统提供了配置服务器和配置客户端,通过对它们的配置,可以很好的管理集群中的配置文件。
  • Spring Cloud Sleuth:服务跟踪框架,可以与Zipkin、Apache HTrace和ELK等数据分析、服务跟踪系统进行整合,为服务跟踪、解决问题提供了便利。
  • Spring Cloud Stream:用于构建消息驱动微服务的框架,该框架在Spring Boot的基础上,整合了“Spring Integration”来连接消息代理中间件。
  • Spring Cloud Bus:连接RabbitMQ、Kafka等消息代理的集群消息总线。

3 本章小结

本章的1.1小节,对传统的单体应用、SOA架构做了一个简单的总结,在此过程中分析我们所遇到的问题。在1.2小节,简单介绍了微服务与Spring Cloud。接下来,我们正式开始讲述本书的知识点。

如何一起学习,有没有免费资料?

file

本文由博客一文多发平台 OpenWrite 发布!

springcloud教程 -- 1.快速搭建入门级demo,看这一篇就够了 废话不多讲,跟紧我,开启你的SpringCloud初体验 首先回顾微服务的基本组成: [图片 here] 生产者:提供服务 消费者:消费服务 服务注册/发现中心:服务注册,发现,监控 所以,首先明白springcloud微服务的架构基础:生产者(client),消费者(client),服务注册/发现中心(server) 阅读详情

相关推荐

Spring Cloud 概述

Spring Cloud 提供了⼀些可以让开发⼈员快速构建分布式服务的⼯具, ⽐如配置管理, 服务发现, 熔断,智能路由等. 他们可以在任何分布式环境中很好的⼯作.简单来说, Spring Cloud 就是分布式微服务架构的⼀站式解决⽅案, 是微服务架构落地的多种技术的集合⽐如:Distributed/versioned configuration 分布式版本配置Service registration and discovery 服务注册和发现Routing 路由。

gnwu1111的专栏 1099

Spring Cloud详解

微服务架构的提出者:马丁福勒简而言之,微服务架构样式[1]是一种将单个应用程序开发为一组小服务的方法,每个小服务都在自己的进程中运行并与轻量级机制(通常是HTTP资源API)进行通信。这些服务围绕业务功能构建,并且可以由全自动部署机制独立部署。这些服务的集中管理几乎没有,它可以用不同的编程语言编写并使用不同的数据存储技术。1、 微服务架构只是一个样式,一个风格。2、 将一个完成的项目,拆分成多个模块去分别开发。3、 每一个模块都是单独的运行在自己的容器中。4、 每一个模块都是需要相互通讯的。

a2285786446的博客 5万+

【Spring Cloud】Spring Cloud 概述

1. 认识微服务1.1 单体架构1.2 集群和分布式架构集群和分布式1.3 微服务架构分布式架构&微服务架构1.4 微服务带来的挑战优势挑战2. 微服务解决?案- Spring Cloud2.1 什么是Spring Cloud2.2 Spring Cloud版本Spring Cloud和SpringBoot的关系2.3 Spring Cloud实现?案Spring Cloud 实现对?

m0_51274464的博客 948

史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)

转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f1-eureka/ 本文出自方志朋的博客 一、spring cloud简介 鉴于《史上最简单的Spring Cloud教程》很受读者欢迎,再次我特意升级了一下版本,目前支持的版本为Spring Bo...

weixin_30525825的博客 8963

【详解】Spring Cloud概述

Spring Cloud概述

m0_0 5429

Spring Cloud 和Spring Cloud Alibaba概述和比较(十三)

1、spring cloud概述 SpringCloud是基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。 SpringCloud利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、

徐泗空的博客 9461

云计算python Spring cloud 微服务

理论 微服务概念 微服务的概念源于2014年3月Martin Fowler所写的一篇文章“Microservices”,微服务架构是一种架构模式,他提倡将单一应用程序划分成一组小的服务,服务之间互相互相协调、互相配合,为用户提供最终价值,每个服务运行在其独立的进程中,服务与服务间采用器轻量级的通信机制互相沟通(通常是基于HTTP的RESTFUL API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等,另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,.

m0_60655253的博客 1552

RTDETR多模态融合实战:基于注意力机制的红外与可见光目标检测优化

本文深入探讨了基于RTDETR模型的红外与可见光多模态目标检测优化方案。针对复杂光照下的检测难题,文章提出并实战演示了如何利用注意力机制(如SimAM与交叉注意力)实现RGB与IR特征的智能动态融合,从而构建更鲁棒的“全天候”检测系统,有效提升安防、自动驾驶等场景在夜间及恶劣天气下的检测精度与可靠性。

weixin_29083373的博客 189

第一篇 Spring Cloud概述

Spring Cloud概述

Android 414

FlexibleButton嵌入式按键处理方案设计与实现

嵌入式系统中的按键处理是基础且关键的人机交互技术,其核心原理是通过GPIO电平检测结合状态机实现事件识别。FlexibleButton作为轻量级C语言按键处理库,采用硬件抽象层设计实现驱动解耦,支持单击、双击、长按等丰富事件类型。该方案通过集中式扫描策略和内置消抖算法,在RT-Thread和裸机环境中均能稳定运行,特别适合需要组合按键检测和低功耗优化的物联网设备。典型应用场景包括智能家居控制面板和工业HMI界面开发,其中硬件解耦架构和事件驱动模型显著提升代码复用率。

weixin_35757191的博客 402

工业场景落地:Java+PaddleOCR实现高性能OCR文字识别的终极方案

本文深度解析基于Java的高性能工业级OCR实现方案,集成PP-OCRv5深度学习模型,提供: ✅ 多场景支持:手写体、竖排文本、票据表格的精准识别 ✅ 工业级性能:毫秒级响应,支持GPU加速与高并发处理 ✅ 开箱即用:通过Maven快速集成,5行代码完成文字识别 ✅ 完整技术栈:覆盖文本检测、方向校正、识别后处理全流程 附可运行示例代码,助您快速构建企业级OCR系统!

deng775747758的博客 3612

Spring Cloud 微服务全面概述

Spring Cloud 是一套基于 Spring Boot 的开源工具,帮助开发者快速构建分布式系统。它提供了多个模块,支持服务发现、配置管理、负载均衡、断路器等功能。通过使用 Spring Cloud 的一系列组件,你可以快速构建一个健壮的微服务架构,具备服务发现、负载均衡、断路器、配置管理等特性。每个组件都能为你的微服务提供必要的功能,帮助你提高开发效率和系统的可靠性。

weixin_62818371的博客 1332

ANSA二次开发在线帮助:ANSA和μETA API文档

  为了方便大家学习ANSA二次开发,我将ANSA和μETA二次开发的官方文档整合到了我的个人网站CAECoder中,大家点击ANSA和μETA API官方帮助文档进行访问即可查看。   本站也将开展对ANSA和μETA API文档的翻译工作,请大家持续关注! ANSA和μETA API文档   ANSA和μETA脚本接口是一个应用程序编程接口(API),允许开发人员访问ANSA和μETA核心功能和数据。   ANSA和μETAAPI是Python编程语言的扩展。 Python Python简.

CAECoder 4323

Spring Cloud Gateway概述

在微服务架构中,API网关扮演着至关重要的角色,它作为客户端和微服务之间的中间层,负责路由、过滤、认证、限流等核心功能。Spring Cloud Gateway正是基于这一需求而设计的,它提供了一种简单、高效的方式来构建微服务架构中的API网关。

m0_70066267的博客 795

C#开发者必备:VSPD虚拟串口快速配置指南(附汉化教程)

本文为C#开发者提供了VSPD虚拟串口的快速配置与汉化教程。详细介绍了如何安装、汉化VSPD,并创建稳定的虚拟串口对,重点讲解了如何将其集成到C#开发工作流中,使用SerialPort类进行数据通信测试、协议模拟及故障排查,有效提升硬件通信开发的效率。

weixin_29224529的博客 258

SAP 资产主数据屏幕增强:对比字段追加与子屏幕/页签 2 种方案优劣

本文深入对比了SAP资产主数据(AS01/AS03)屏幕增强的两种方案:字段追加与子屏幕/页签。从技术实现、业务适配、系统维护等维度分析各自优劣,提供方案选型决策树和混合方案实践建议,帮助企业在SAP实施中做出最优选择。

weixin_28559803的博客 285

Spring Cloud(1)概述

Spring Cloud是微服务架构的实现 面向服务架构(SOA) 是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务 通常以独立的形式存在与操作系统进程中。各个服务之间 通过网络调用。 ESB(企业服务总线):就是一根管道,用来连接各个服务节点。为了集成不同系统,不同协议的服务,ESB 做了消息的转化解释和路由工作,让不同的服务互联互通。 SOA缺点:每个供应商提供的ESB产品有偏差,自身实现较为复杂;应用服务粒度较大,ESB集成整合所有服务和协议、数据转换使得运维、

учёба 348

LVGL仪表盘实战:5分钟用lv_meter打造汽车仪表UI(附完整代码)

本文详细介绍了如何使用LVGL的lv_meter组件在5分钟内构建专业汽车仪表盘UI。从环境配置、刻度定制到指针动画和性能优化,提供完整代码示例和实战技巧,帮助开发者快速实现嵌入式设备上的高效仪表盘设计。

k5l6m的博客 426
上一篇: Spring Cloud微服务全家桶主要组件及简要介绍
下一篇: 微服务为什么一定要选spring cloud?
JavaAQA
博客等级 码龄7年 1粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值