什么是微服务,SpringBoot和SpringCloud的关系和区别

本文介绍了Spring Boot的核心功能,如独立运行、内嵌容器、自动配置等,并阐述了其优点与缺点。接着,文章讲解了微服务架构的概念、优势,以及与Spring Cloud的关系。Spring Cloud作为微服务的解决方案,提供了服务治理等一系列组件。

一、Spring Boot 概述
1. 什么是 Spring Boot
  Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。简单的来说 Spring Boot 这个项目整合目前很多的流行的第三方框架,并且做了一系列的默认配置,我们无需在进行手动配置,直接拿过来直接使用! 接下来我们比较一下Spring mvc和 Spring Boot的开发过程

2 Spring Boot 的核心功能
(1)独立运行的 spring 项目: Spring Boot 可以以 jar 包形式直接运行,如 java -jar xxx.jar 优点是:节省服务器资源
(2)内嵌 servlet 容器: Spring Boot 可以选择内嵌 Tomcat,Jetty,这样我们无须以 war 包形式部署项目。
(3)提供 starter 简化 Maven 配置: 在 Spring Boot 项目中为我们提供了很多的 spring-boot-starter-xxx 的项目(我们把这个依赖可以称之为起步依赖,我们导入指定的这些项目的坐标,就会自动导入和该模块相关的依赖包:例如我们后期再使用 Spring Boot 进行 web 开发我们就需要导入 spring-boot-starter-web 这个项目的依赖,导入这个依赖以后!那么Spring Boot 就会自动导入 web 开发所需要的其他的依赖包,如下图所示:
在这里插入图片描述
(4)自动配置 spring: Spring Boot 会根据在类路径中的 jar 包,类,为 jar 包里的类自动配置 Bean,这样会极大减少我们要使用的配置。当然 Spring Boot 只考虑了大部分开发场景,并不是所有的场景,如果在实际的开发中我们需要自动配置 Bean,而 Spring Boot 不能满足,则可以自定义自动配置。
(5)准生产的应用监控: Spring Boot 提供基于 http,ssh,telnet 对运行时的项目进行监控
(6)无代码生成和 xml 配置: Spring Boot 大量使用 spring4.x 提供的注解新特性来实现无代码生成和 xml 配置。spring4.x 提倡使用 Java配置和注解配置组合,而 Spring Boot 不需要任何 xml 配置即可实现 spring 的所有配置。
3. Spring Boot 的优点和缺点
3.1 优点
(1)快速构建项目
(2)对主流框架无缝集成
(3)项目可以独立运行,无需依赖外部 servlet 容器
(4)提供运行时的应用监控
(5)极大提高了开发,部署效率
3.2 缺点
(1)资料相对比较少
(2)版本迭代较快

一、 微服务架构

1.微服务架构

微服务是一种分布式系统架构,是一种思想,是一种设计原则。通过springboot来创建服务,而Spring Cloud是关注全局的服务治理框架。
springboot不是微服务注意面试坑

就目前而言对于微服务业界没有一个统一的,标准的定义.但通常而言,微服务是一种架构模式或者说是一种架构风格,
它提倡单一应用程序划分为一组小的服务,每个服务在其独立的自己的进程中,服务之间相互协调,互相配合,为用户提
供最终价值.服务之间采用轻量级的通信机制互相沟通(基于Http的Restful API)每个服务都围绕着具体的业务进行
构建,并且能够被独立的部署到生产环境,类生产环境进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,
可以使用不同的语言来编写服务,也可以使用不同的数据存储.

2.微服务的优势

(1)复杂度可控:即便再复杂的应用开发,我们把它拆分成多个小的微服务,就很简答的进行分组开发,大大的提高效率。

(2)独立部署:由于微服务具备独立的运行进程,所以每个微服务也可以独立部署。

(3)容错性能好:因为单个服务,所以即便出了故障,那么我们bug也会仅仅停留在某个服务中,不会影响其他服务的正常使用。

(4)扩展性高,我们需要什么功能直接增加服务就好了。

3.微服务与微服务架构?

  • 微服务强调的是服务的大小,他关注的是以点,是具体解决某一个问题/提供落地对象服务的一个服务应用,
    狭义的看,可以看做Eclipse中的一个个微服务工程.
  • 微服务架构为一种架构模式.他提倡将单一应用程序分成一组小的服务,服务之间互相协调,互相配合,为用户提供最终价值.
    每个服务运行在其独立的进程中,服务于服务间采用轻量级的通信机制互相协作(通常是Http 的Restful API) 每一个服务
  • 都围绕着具体业务进行构建,并且能够被独立的部署到生产环境,类生产环境中.另外,应当尽量避免统一的,集中式的服务管理机制,
    对具体的一个服务而言,应根据业务上下文,选择合适的语言,工具对其进行构建

SpringCloud 是什么?

  • 基于SpringBoot提供了一套为微服务(microservices)解决方案,包括服务注册与发现,
  • 配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开营组件做 高度抽象之外,还有一些选型中立了的开源组件.
  • 分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的结合体,俗称为微服务全家桶.

SpringBoot和SpringCloud的关系和区别
1.SpringBoot专注于方便的开发单个个体微服务
2.SpringCloud是关注于全局的微服务协调治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来.
为各个微服务之间提供配置管理,服务发现,断路器,路由,微代理,事件总线,决策竞选,分布式会话等集成服务.
3.SpringBoot可以离开SpringCloud单独使用,而SpringCloud离不开SpringBoot

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值