springboot 与 springcloud

一、spring boot 可以理解为是spring的全家桶 启动器

他的场景是,你想开始一个工程,里面会用到很多的第三方工具,如

1,spring mvc 用来作VIEW层的控制器,

2,spring core,用来作ioc,

3,mybatis ,用来方便操作db,

4,连下redis,

5,连下 es

这么多组件,你是需要一个个研究怎么和spring 结合起来用,

spring boot 为了解决这些繁杂的事情,应运而生,只要一个配置,就能把相应的 组件 给加进来,如maven的例子:

“`

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-redis</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>1.3.2</version>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-quartz</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-elasticsearch</artifactId>

</dependency>

“`

从名字来看,就很明显了,一个start,就把后面你要找XX.JAR的事给省下来了,所以,它就像是腾讯系的 QQ入口, 阿里系的 支付宝入口,百度的搜索入口。

二,spring cloud

spring cloud 可以理解为 spring为 分布式&集群 (有个时髦的词汇叫微服务) 准备的大一统解决方案的组件集合.

所以,他不是 一个 jar包可以包括的,他是一堆的jar包。

他的场景是,当你的应用到了一定级别,系统 压力过大了,所以就需要把服务器运算扔到多台机器中去,即分布式&集群,这个时间你要考虑很多的问题

1,进程间的通信是怎样的?全部都写成接口太蛋疼了

2,进程太多了管不过来?有没有一个视图可以看到我所有的注册

3,多个进程,配置怎么办?各有一套也挺头痛的,有一个集中式配置就好了.

4,不同的业务间的负载均衡怎么办?每个都加个nginx?

5,系统中某个节点发生了崩溃怎么办?那我们的有一部分请求负载到那里就总会失败,能不能自动剔除掉?

现在这些个烦恼的问题,你可以自己解决,也可以引入spring cloud来更好的处理!至于怎么处理,你自己使用的时候体会吧。

结论:

这两货不是一样的概念,boot 是代码工程的架子,cloud是微服务架构的解决方案及基础实现.

Posted in Java