SpringBoot和微服务的关系
要知道微服务,就要先知道什么是单体应用。
单体应用就是很多个功能都在一起打包和部署的应用,就像你练手的ssm项目一样,里面有很多很多的功能模块,比如订单模块,购物车模块,用户模块,支付模块,相当于一个箱子装了很多个苹果,每一个苹果就是一个功能模块。
微服务就是将这些功能模块都从这个单体应用里面拆出来,拆出来的每个功能都独立的打包部署到不同的系统去,比如拆成订单微服务,采购微服务,财务微服务,收费微服务。类似于一箱苹果每个人去拿了一个,每个人就是系统,苹果就是功能模块也就是微服务。
微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。
拆开之后的各个微服务怎么调用呢?这时候就需要用到springcloud的或者dubbo的远程调用协议了,相当于每个人怎么去沟通就需要有一种沟通的语言,也就是普通话,普通话就是大家都遵守的协议。
当然就得学习springcloud或者dubbo。
那么这么多的微服务都是一个应用系统了,都需要去搭ssm吗?不需要使用ssm,那么多的配置,而且是重复配置和重复的搭建ssm不就麻烦了吗?所以这时候就使用到了springboot来解决ssm搭建应用时候大量的手工配置问题;所以springboot是一个快速搭建应用的框架,不是微服务,解决了ssm大量手工配置,不需要再去配置各种各样的文件了;直接一个springboot构建起来就可以运行了。
所以,Spring Boot 和微服务没关系,SpringBoot只是一种快速应用开发框架,微服务是一种架构风格。
Java 微服务治理框架普遍用的是 Spring Cloud。
Spring Boot 产生的背景,是开发人员对 Spring 框架越来越复杂的配置吐槽越来越多,Pivotal 设计 Spring Boot 用来简化新 Spring 应用的初始搭建以及开发过程。正如题主感觉的,Spring Boot 在简化配置、打包和集成第三方工具方面确实做得很好,可以减低 Spring 开发人员的入门门槛。
Spring Cloud 是 Pivotal 推出的基于Spring Boot的一系列框架的集合,旨在帮助开发者快速搭建一个分布式的服务或应用。Spring Cloud 由众多子项目组成,如Spring Cloud Config、Spring Cloud Netflix、Spring Cloud Consul等,提供了搭建分布式系统及微服务常用的工具,如配置管理、服务发现、服务容错、服务路由等。下图可以参考。
参考:
1、https://www.jianshu.com/p/236fc8778250,使用dubbo对传统单体应用进行改造。
2、http://www.itcast.cn/news/20200410/1359230448.shtml,用springboot构建微服务。
3、http://www.itcast.cn/news/20200318/1346504782.shtml,用springcloud做微服务注册和发现。