「2022 年什么会火?什么该学?本文正在参与“聊聊 2022 技术趋势”征文活动 」
对于中台(业务中台)技术开发来说主要是对基础技术栈的使用,还有就是对抽象能力的提升,因为我们是底层服务不能出错,需要不断的去做兼容性。需要具备一些 Java 技术功底,掌握设计模式,深入掌握最常用的技术原理。我们今天就一起来盘点一下 Java 业务中台常用的技术框架与一些将来可能会用到的技术。
Spring Framework 是 Spring 里面的一个基础开源框架,主要用于 JavaEE 的企业开发。Spring是什么呢?首先它是一个开源的项目,而且非常活跃;它是一个基于IOC和AOP的构架多层 JavaEE 系统的框架,但它不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,采用IOC使得可以很容易的实现 Bean 的装配,提供了简洁的AOP并据此实现Transaction Management 等等。
目前 Spring 支持的主流版本是 5.3,开源支持的时间最迟到 2025 年。
Spring Boot是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot 致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。Spring Cloud并 没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
Spring Cloud Netflix 可以算是 Spring-Cloud 1.x 最强的框架强者,提供了 Eureka ,Hystrix,Zuul,Ribbon 等非常优秀的组件。但是在一段时间爆出停更后,被 Spring-Cloud 的一些其他组件替代,比如 Spring Cloud Alibaba 。不管怎么说 Netflix 也是 Spring Cloud 历程中的核心推动者。
MyBatis 是一款优秀的数据持久层 ORM 中间件,我们常用的有 XML 、注解两种方式使用,而且还有 MyBatis-Generator 插件帮我们快速的生成数据库的 CRUD 代码。
MyBaits 还支持与 Spring 的集成,是目前互联网,业务中台比较常用的数据持久层框架之一。
其实优秀的持久层框架还有 Hibernate ,我自从 14,15 年用过后面个人涉及的公司就较少使用
不得不说 Alibaba 因为 Alibaba 目前来说也是 Java 技术栈的大牛团队之一,也贡献了非常多优秀的开源框架比如:Doubbo, Nacos, Seata, Sentinel 等。
Nacos 是一个服务发现、服务配置和服务管理中间件。Nacos 提供了一组简单易用的特性集,快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 可以让我们更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
Nacos 的关键特性包括:
Nacos 架构图:
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
Sentinel 具有以下特征:
\
Sentinel 生态
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。
AT 模式
基于支持本地 ACID 事务的关系型数据库。Java 应用,通过 JDBC 访问数据库。基于两阶段提交实现。
TCC 模式
TCC 模式主要关注业务拆分,在按照业务横向扩展资源时,解决微服务间调用的一致性问题,保证读资源访问的事务属性。
SAGE 模式
Saga模式是SEATA提供的长事务解决方案,在Saga模式中,业务流程中每个参与者都提交本地事务,当出现某一个参与者失败则补偿前面已经成功的参与者,一阶段正向服务和二阶段补偿服务都由业务开发实现。
Arthas 是 Alibaba 开源的 Java 诊断工具。比如我们遇到 OOM, 或者接口超时等常见问题,我们就需要 Arthas 等分析工具对程序进行运行时分析,找到性能瓶颈。
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
通常我们在项目中做首页数据查询,或者对于关系型数据库不能解决的一些历史数据查询,我们可以通过 ElasticSearch 作为一种查询的补充方案。