10分钟看懂SpringCloud微服务

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
简介: 传统的单体式架构系统,SSH、SSM等MVC模式架构;大家都很熟悉了。也是逐渐被淘汰的一些陈旧的技术了,这类系统的共通点是:整个系统打包成一个应用程序,测试部署上线。一旦业务量扩大到,整个系统没法容纳和承受它的压力时;就会出现各种各样的问题,如:高并发带来的服务器崩溃,线程堵塞,响应缓慢等。严重影响了公司的业务和发展;为了在技术上解决此类问题,以至于,出现了目前流行的分布式微服务技术。

前言


传统的单体式架构系统,SSH、SSM等MVC模式架构;大家都很熟悉了。也是逐渐被淘汰的一些陈旧的技术了,这类系统的共通点是:整个系统打包成一个应用程序,测试部署上线。一旦业务量扩大到,整个系统没法容纳和承受它的压力时;就会出现各种各样的问题,如:高并发带来的服务器崩溃,线程堵塞,响应缓慢等。严重影响了公司的业务和发展;为了在技术上解决此类问题,以至于,出现了目前流行的分布式微服务技术。


一、Spring Cloud简介


   1、首先,大家熟悉的Spring FrameWork,它是一个大家族,是开源的Java/Java EE全功能栈(full-stack)的应用程序框架。它为开发者们提供了一个简易的开发方式,从而避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。

Spring Cloud是一系列的基于SpringBoot框架的有序集合。

一张图解释Spring、Spring Boot、Spring Cloud之间的关系,如下:

8dee626796dc515a9cf3eef7a63a1419_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.jpg


  •      Spring是一个轻量级的Java开发框架,使用基本的JavaBean代替EJB。
  • SpringBoot是由Pivotal团队提供的全新框架,用来简化新Spring应用的初始搭建和开发过程。开发人员无需定义样板化配置。    
  • SpringCloud是一系列框架的有序集合,它把好的东西集合到一起,这就是所谓的集大成者。同时它利用SpringBoot的开发便利性巧妙的简化了分布式系统基础设施的开发。

2、Spring Cloud的组成和技术栈

组成

参考英文官网列举的20个主要项目:

246f31e602f672da57a64f899ec98972_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.jpg

常用项目简介:

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

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

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

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

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

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

相关技术栈

7c25795746462349a15c0b04209d793c_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.jpg

优缺点

优点

    SpringCloud很有可能成为未来微服务架构的标准框架。

     约定优于配置

     开箱即用、快速启动

     适用于各种环境

     轻量级的组件

     组件支持丰富,功能齐全

     选型中立

缺点

  文档较少,国内研究并不成熟,相对国外较为火热,社区活跃度高。除了大型互联网公司外,很多中小企业还是采用传统单体式架构技术。


二、简单Spring Cloud微服务项目


1、Spring Cloud微服务项目介绍

介绍完了Spring Cloud相关的知识,大概对微服务技术有了整体的了解;接下来,简单介绍一下Spring Cloud微服务项目的整体构建和简单步骤。

06bd9ddc223cf9e04fe93ce98d8976e4_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.jpg

不同于,传统单体式架构系统。分布式服务,是基于繁杂的业务,拆分成各个不同模块子系统服务负责各自模块的业务处理;所有子模块系统不同业务组成的整体服务完成整个系统链路的业务服务。

基本架构设计原则:

  • 每个模块系统独立开发部署测试,互不影响
  • 每个模块拥有自己的一套数据库表(分库分表),禁止跨库访问
  • 每个模块间内部通信,通过Spring Cloud Feign 互相调用
  • 整个系统对外统一接口通信,须经由zuul(API网关)统一处理
  • 所有配置信息统一存放远程配置中心(SpringCloudConfig)git仓库
  • 所有业务模块系统服务均注册到服务注册和发现中心(Ereka)
  • 实现前端-后端分离,前端系统程序单独部署,采用RestFul接口形式调用后端接口,实现通信


开发工具

官方推荐使用:Spring Tool Suite(STS)-- 它是eclipse对Spring插件的集成版,内置了Spring框架使用起来方便。

个人建议使用:Intellij idea  -- 这款ide相信很多也使用过,及其简便功能强大;关键是开发SpringCloud项目时,需要使用Maven(或Gradle)进行本地仓库jar中心的建立,然后使用STS你会发现开发过程中相当的卡,并且maven缓存严重。因此,很多人弃之不用。


三、Spring Cloud项目层次结构


1、项目层次机构

以idea为例,各模块的项目层次结构大同小异。

3464617ab7d5868b065e4e0b3617ac91_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

b5f69036290ccae0763da869d666fbcd_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

src目录下,是项目的.java源文件夹。resource目录,用来存放配置信息文件静态资源以及数据库mapper.xml文件(因人而已)。test目录,用于存放单元测试的类文件。target目录,是程序编译打包后存放jar包的位置。pom.xml文件,maven管理的配置文件。

2、访问地址

由于,小编的项目是集成了swagger-ui可视化界面;所以,当启动项目后可输入类似:http://127.0.0.1:8083/swagger-ui.html ;直接打开了项目的swagger接口地址,简洁明了的看到各个接口URL和参数等。具体操作和界面就不一一详解了,网上教程很多。


四、总结


Spring Cloud是分布式微服务技术界的典型代表,相比其他(如Dubbo【阿里开源】)微服务技术有着更强大的功能。在国内的很多一线互联网公司,作为分布式架构的web项目来说SprigCloud是首选;因此,是时下最为流行和受开发者极力追捧的一项技术。如今发展到2.0版本了,建议Java开发者大家都得掌握。


相关文章
|
1月前
|
算法 Java 微服务
【SpringCloud(1)】初识微服务架构:创建一个简单的微服务;java与Spring与微服务;初入RestTemplate
微服务架构是What?? 微服务架构是一种架构模式,它提出将单一应用程序划分为一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。 每个服务允许在其独立的进程中,服务于服务间采用轻量级的通信机制互相协作(通常是Http协议的RESTful API或RPC协议)。 每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建
432 127
|
1月前
|
负载均衡 算法 Java
【SpringCloud(2)】微服务注册中心:Eureka、Zookeeper;CAP分析;服务注册与服务发现;单机/集群部署Eureka;连接注册中心
1. 什么是服务治理? SpringCloud封装了Netfix开发的Eureka模块来实现服务治理 在传统pc的远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册
230 0
|
3月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
674 3
|
1月前
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
2月前
|
监控 安全 Java
Spring Cloud 微服务治理技术详解与实践指南
本文档全面介绍 Spring Cloud 微服务治理框架的核心组件、架构设计和实践应用。作为 Spring 生态系统中构建分布式系统的标准工具箱,Spring Cloud 提供了一套完整的微服务解决方案,涵盖服务发现、配置管理、负载均衡、熔断器等关键功能。本文将深入探讨其核心组件的工作原理、集成方式以及在实际项目中的最佳实践,帮助开发者构建高可用、可扩展的分布式系统。
203 1
|
2月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
408 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
2月前
|
Kubernetes Java 微服务
Spring Cloud 微服务架构技术解析与实践指南
本文档全面介绍 Spring Cloud 微服务架构的核心组件、设计理念和实现方案。作为构建分布式系统的综合工具箱,Spring Cloud 为微服务架构提供了服务发现、配置管理、负载均衡、熔断器等关键功能的标准化实现。本文将深入探讨其核心组件的工作原理、集成方式以及在实际项目中的最佳实践,帮助开发者构建高可用、可扩展的分布式系统。
416 0
|
5月前
|
负载均衡 Java API
基于 Spring Cloud 的微服务架构分析
Spring Cloud 是一个基于 Spring Boot 的微服务框架,提供全套分布式系统解决方案。它整合了 Netflix、Zookeeper 等成熟技术,通过简化配置和开发流程,支持服务发现(Eureka)、负载均衡(Ribbon)、断路器(Hystrix)、API网关(Zuul)、配置管理(Config)等功能。此外,Spring Cloud 还兼容 Nacos、Consul、Etcd 等注册中心,满足不同场景需求。其核心组件如 Feign 和 Stream,进一步增强了服务调用与消息处理能力,为开发者提供了一站式微服务开发工具包。
614 0
|
9月前
|
传感器 监控 安全
智慧工地云平台的技术架构解析:微服务+Spring Cloud如何支撑海量数据?
慧工地解决方案依托AI、物联网和BIM技术,实现对施工现场的全方位、立体化管理。通过规范施工、减少安全隐患、节省人力、降低运营成本,提升工地管理的安全性、效率和精益度。该方案适用于大型建筑、基础设施、房地产开发等场景,具备微服务架构、大数据与AI分析、物联网设备联网、多端协同等创新点,推动建筑行业向数字化、智能化转型。未来将融合5G、区块链等技术,助力智慧城市建设。
469 1

热门文章

最新文章

下一篇
oss云网关配置