目录
1.SpringBoot与微服务
SpringBoot 的使命——化繁为简
SpringBoot让我们开发spring的应用变得简单。之前在使用Spring时,用XML配置的话,需要定义各式各样的bean,需要定义服务、接口、实现、缓存、数据源、消息队列、序列化,所以如果项目中没有几个配置文件,很难看出这是一个spring项目。而spring的宗旨就是化繁为简。下面是spring的核心功能:
◆ 独立运行 java -jar xxx.jar
之前运行spring服务得先有一个web服务器,比如Tomcat、Jetty,然后把代码发布到服务器指定的位置,然后启动服务。而SpringBoot的运行方式就非常简单,它仅仅是以一个java命令让一个服务运行起来。
◆ 内嵌web服务器
为什么SpringBoot仅仅以一个命令就可以让服务运行起来呢?这得益于它内嵌了web服务器,它通过把web服务器和应用的jar包都打在一起,并且来协调它们的位置,让我们不用去关心这些细节,只需要运行一个命令就可以把整个服务运行起来。
◆ 简化配置—尽可能的自动化配置spring
不管是spring还是SpringMVC都需要添加大量的依赖,这些依赖有很多都是固定的。SpringBoot通过starter以帮助我们简化maven的配置。
◆ 准生产的应用监控
有一些metric指标可以动态的获取 ,还有一些在生产环境上需要的功能,这些SpringBoot都给我们准备好了。
SpringBoot与微服务的关系——SpringBoot是Java的润滑剂,即SpringBoot是Java开发微服务的润滑剂。
SpringBoot的核心——简化开发、简化配置、简化部署;微服务的特征——轻量级、数量多、灵活多变。使用spring来开发微服务正好应对了微服务的特征,springboot让开发和部署变快了。
2.SpringCloud与微服务
SpringCloud的使命——简化Java的分布式系统。当我们把Java应用或者web服务或者其他类型的服务部署到多个服务器上,提供分布式能力时,想想可能会遇到的问题,很容易想到的是web服务的上线共享需要在每个Tomcat上配置,还有多个服务的负载均衡,一般我们需要在Nginx上配置一个Ribbon,然后轮询的访问每个Tomcat,还有服务之间的调用,比如,有一个文件代理服务,单机的情况下,我们可以直接写上IP+端口就可以访问了,但是在分布式情况下,我们不得不自己写一个既有负载均衡又有容错能力的客户端,还有在分布式下,我们的事务管理怎么办。而SpringCloud就是在简化上述的遇到的一些通用问题。
SpringCloud为开发者提供了快速构建,具有分布式能力的服务。有哪些分布式能力呢?统一的配置管理、服务的注册、服务的发现、服务之间的调用、负载均衡、分布式session 等。下面对SpringCloud做一个深入了解:
◆ 一系列框架
SpringCloud是一些列框架的集合,而不是单一的框架实现了所有的功能。
◆ 简化Java的分布式系统
SpringCloud正是利用了SpringBoot简化的能力去简化了分布式系统的基础设施的开发,比如服务注册、发现、配置中心、消息总线、负载均衡等,它都是利用了SpringBoot,不但做到了简化,还做到了