Spring Cloud之微服务

目录

微服务

微服务架构

微服务架构与单体架构

特点

框架

总结

SpringCloud

常用组件

与SpringBoot关系

版本


微服务

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

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

微服务架构

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

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

微服务架构与单体架构

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

Spring Cloud之微服务_第1张图片

特点

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 实现的微服务框架。

Spring Cloud之微服务_第2张图片

常用组件

Spring Cloud之微服务_第3张图片

与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之微服务_第4张图片

你可能感兴趣的:(Spring,Cloud,java,spring,cloud,springboot,微服务,1024程序员节)