Spring Boot 和微服务的关系

Spring Boot 和微服务没关系, 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等,提供了搭建分布式系统及微服务常用的工具,如配置管理、服务发现、服务容错、服务路由等。下图可以参考。


当然,微服务应用生命周期要解决的问题不仅仅是微服务治理,网易云认为,完整的微服务平台应该可以提供覆盖从开发、测试、构建、发布到上线运维的问题。网易云轻舟微服务就是基于这样的理念设计的,并且是基于开源、兼容开源的。在微服务框架层面,轻舟微服务基于 Spring Cloud 优化,并兼容 Dubbo。



Spring Boot 作为一套全新的框架,来源于 Spring 大家族,因此 Spring 所有具备的功能它都有,而且更容易使用;Spring Boot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。Spring Boot 开发了很多的应用集成包,支持绝大多数开源软件,让我们以很低的成本去集成其他主流开源软件。

Spring Boot 特性:

. 使用 Spring 项目引导页面可以在几秒构建一个项目

. 方便对外输出各种形式的服务,如 REST API、WebSocket、Web、Streaming、Tasks

. 非常简洁的安全策略集成

. 支持关系数据库和非关系数据库

. 支持运行期内嵌容器,如 Tomcat、Jetty

. 强大的开发包,支持热启动

. 自动管理依赖

. 自带应用监控

. 支持各种 IED,如 IntelliJ IDEA 、NetBeans

      Spring Boot 的这些特性非常方便、快速构建独立的微服务。所以我们使用 Spring Boot 开发项目,会给我们传统开发带来非常大的便利度,可以说如果你使用过 Spring Boot 开发过项目,就不会再愿意以以前的方式去开发项目了。

总结一下,使用 Spring Boot 至少可以给我们带来以下几方面的改进:

. Spring Boot 使编码变简单,Spring Boot 提供了丰富的解决方案,快速集成各种解决方案提升开发效率。

. Spring Boot 使配置变简单,Spring Boot 提供了丰富的 Starters,集成主流开源产品往往只需要简单的配置即可。

. Spring Boot 使部署变简单,Spring Boot 本身内嵌启动容器,仅仅需要一个命令即可启动项目,结合 Jenkins 、Docker 自动化运维非常容易实现。

. Spring Boot 使监控变简单,Spring Boot 自带监控组件,使用 Actuator 轻松监控服务各项状态。

        微服务架构下,数据被分隔到 N 个独立的微服务中,如何应对市场、业务对大量数据的查询、分析就变的非常急迫,利用 Spring Boot 和 MongoDB 可以轻松的解决这个问题,通过技术手段将分裂到 N 个微服务的数据同步到 MongoDB 集群中,在同步的过程中进行数据清洗,来满足公司的各项业务需求。Spring Boot 对 MongoDB 的支持非常友好,一方面 Spring Data 技术预生成很多常用方法便于使用,另一方面 Spring Boot 封装了分布式计算的相关函数,可以让我们以较简洁的方式来实现统计查询。

  Spring Boot 是 Java 领域微服务架构最优落地技术,Spring Boot+MongoDB 方案是在微服务架构下数据治理的最佳方案之一。

你可能感兴趣的:(Spring Boot 和微服务的关系)