Spring Boot、微服务架构和大数据治理之间的故事

微服务架构:构建灵活,易扩展,可以快速应对需求的变化
微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。


整个业务数据被分散在各个子服务之后会带来两个最明显的问题:

1、业务管理系统对数据完整的查询,比如分页查询、多条件查询等,数据被割裂后如何来整合?

2、如何对数据进一步的分析挖掘?

这些需求可能需要分析全量的数据,并且在分析时不能影响到当前业务。从技术方案来讲,一般有两种选择来处理这些问题:

第一种是在线处理数据,第二种是离线处理数据。


在线处理数据的方案就是按照微服务的标准接口来进行,后端需要哪个系统的数据就去调用某个微服务提供的接口来获取。后端管理平台根据前端的需求去不同的微服务系统去获取数据,然后将返回的数据进行处理后将数据返回。

这种方案有两个弊端:

1)一方面微服务数据方需要提供数据接口,一方面数据的使用者需要去写调用方法,并且调用者需要编写大量的代码进行数据处理;

2)在对各个微服务进行调取数据时会影响微服务的正常业务处理性能。


离线处理数据方案,就是将业务数据准实时的同步到另外一个数据库中,在同步的过程中进行数据整合处理,以满足业务方对数据的需求,数据同步过来后,再提供另外一个服务接口专业负责对外输出数据信息。

这种方案有两个特点:

1)数据同步方案是关键,技术选型有很多,如何选择切合公司业务的技术方案;

2)离线数据处理对微服务正常业务处理没有影响。



MongDB:非关系数据库。可以保留类似关系数据库的数据库(DataBase)、集合(Collection)、文档对象(Document)。
MongoDB 最大的特点是支持的查询语言非常强大
,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引




spring boot:

Spring Boot 框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。采用 Spring Boot 可以大大的简化开发模式,所有你想集成的常用框架,它都有对应的组件支持。
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 开发,Spirng Boot 本身并不提供 Spring 框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于 Spring 框架的应用程序。也就是说,它并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 
Spring 开发者体验的工具。同时它集成了大量常用的第三方库配置(例如 Redis、MongoDB、Jpa、RabbitMQ、Quartz 等等),Spring Boot 应用中这些第三方库几乎可以零配置的开箱即用,大部分的 Spring Boot 应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。


Spring Boot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。Spring Boot 开发了很多的应用集成包,支持绝大多数开源软件,让我们以很低的成本去集成其他主流开源软件。


总结一下,使用 Spring Boot 至少可以给我们带来以下几方面的改进:
Spring Boot 使编码变简单,Spring Boot 提供了丰富的解决方案,快速集成各种解决方案提升开发效率。
Spring Boot 使配置变简单,Spring Boot 提供了丰富的 Starters,集成主流开源产品往往只需要简单的配置即可。
Spring Boot 使部署变简单,Spring Boot 本身内嵌启动容器,仅仅需要一个命令即可启动项目,结合 Jenkins 、Docker 自动化运维非常容易实现。
Spring Boot 使监控变简单,Spring Boot 自带监控组件,使用 Actuator 轻松监控服务


各项状态。
总结,Spring Boot 是 Java 领域最优秀的微服务架构落地技术,没有之一。
三者之间的纠葛了解完微服务架构、Spring Boot、大数据治理之后,我们就发现这样一个有趣的事情:


微服务架构是一种架构思想,是架构不断发展的必然结果,具有构建灵活、易扩展、快速应用、可伸缩性、高可用等特点;微服务架构思想的推出对技术有了更高的要求,在这样的背景下 Spring Boot 孕育而生,Spring Boot 出生名门,从一开始就站在一个比较高的起点,又经过这几年的发展,生态足够完善,Spring Boot 已经当之无愧成为 Java 领域最热门的技术。

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

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

猜你喜欢

转载自blog.csdn.net/gao_sl/article/details/80333133