Spring Cloud之微服务

2023-10-26 19:15
文章标签 java 服务 spring cloud 之微

本文主要是介绍Spring Cloud之微服务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

微服务

微服务架构

微服务架构与单体架构

特点

框架

总结

SpringCloud

常用组件

与SpringBoot关系

版本


微服务

微服务:从字面上理解即:微小的服务;

微小:微服务体积小,复杂度低,一个微服务通常只提供单个业务功能的服务。

微服务架构

        微服务架构是一种系统架构的设计风格。微服务架构提倡将一个单一的应用程序拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间使用轻量级通信机制(通常是 HTTP RESTFUL API)进行通讯;

        小型服务都是围绕着某个特定的业务进行构建的,每一个服务只专注于完成一项任务并把它做好 

微服务架构与单体架构

        单体架构是微服务架构出现之前业界最经典的软件架构类型,许多早期的项目采用的也都是单体架构。单体架构将应用程序中所有业务逻辑都编写在同一个工程中,最终经过编译、打包,部署在一台服务器上运行。

特点

1.独立性:每个微服务都是相对独立的,拥有自己的代码库、数据库和团队

2.模块化:微服务架构将应用程序拆分为若干个小型服务,每个服务都是一个模块。这种模块化可以让开发人员更加专注于单一功能点的开发,提高应用程序的可维护性和可扩展性

3.松耦合:微服务之间采用API进行通信,服务之间的耦合度较低

4.可伸缩性:由于每个微服务都是独立的,可以按需进行水平扩展,从而提高整体应用程序的性能和可伸缩性

5.容错性:由于微服务之间是相对独立的,当某个服务出现故障时,不会影响整个应用程序的运行

6.简化部署:每个微服务可以独立部署,因此可以更快速地推出新功能和更新,同时也可以更容易地完成部署和回滚操作

7.原子性:微服务应该执行单一的业务功能,这样可以保证服务的原子性和可复用性

8.运维简化:由于微服务架构将应用程序拆分成若干小型服务,因此可以更轻松地进行监控和故障排除,提高运维效率

框架

Spring Cloud:它能够基于 REST 服务来构建服务,帮助架构师构建出一套完整的微服务技术生态链。

Dropwizard:用于开发高性能和 Restful 的 Web 服务,对配置、应用程序指标、日志记录和操作工具都提供了开箱即用的支持。

Restlet: 该框架遵循 RST 架构风格,可以帮助 Java 开发人员构建微服务。

Spark:最好的 Java 微服务框架之一,该框架支持通过 Java 8 和 Kotlin 创建微服务架构的应用程序。

Dubbo:由阿里巴巴开源的分布式服务治理框架。

总结

        微服务架构在解决应用程序扩展、维护和升级等方面具有明显的优势。但微服务架构同时也带来了部署、运维、网络通信、数据一致性和安全性等方面的挑战,需要在实际应用中根据需求灵活选择。

SpringCloud

Spring Cloud 是一款基于 Spring Boot 实现的微服务框架。

常用组件

与SpringBoot关系

        Spring Boot 和 Spring Cloud 都是 Spring 大家族的一员,它们在微服务开发中都扮演着十分重要的角色,两者之间既存在区别也存在联系

1.Spring Boot 和 Spring Cloud 分工不同;Spring Boot 是一个基于 Spring 的快速开发框架,它能够帮助开发者迅速搭 Web 工程。在微服务开发中,Spring Boot 专注于快速、方便地开发单个微服务;Spring Cloud 专注于全局微服务的协调和治理工作,是微服务架构下的一站式解决方案

2.Spring Cloud 是基于 Spring Boot 实现的

3.Spring Boot 和 Spring Cloud 依赖项数量不同;Spring Boot 属于一种轻量级的框架,构建 Spring Boot 工程所需的依赖较少;Spring Cloud 是一系列微服务框架技术的集合体,它的每个组件都需要一个独立的依赖项

4.Spring Cloud 不能脱离 Spring Boot 单独运行;Spring Boot 不需要 Spring Cloud,就能直接创建可独立运行的工程或模块;Spring Cloud 是基于 Spring Boot 实现的,它不能独立创建工程或模块,更不能脱离 Spring Boot 独立运行

虽然 Spring Boot 能够用于开发单个微服务,但它并不具备管理和协调微服务的能力,因此它只能算是一个微服务快速开发框架,而非微服务框架

版本

Spring Cloud 包含了许多子项目(组件),这些子项目都是独立进行内容更新和迭代的,各自都维护着自己的发布版本号

这篇关于Spring Cloud之微服务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/285742

相关文章

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

spring中的ImportSelector接口示例详解

《spring中的ImportSelector接口示例详解》Spring的ImportSelector接口用于动态选择配置类,实现条件化和模块化配置,关键方法selectImports根据注解信息返回... 目录一、核心作用二、关键方法三、扩展功能四、使用示例五、工作原理六、应用场景七、自定义实现Impor

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.