2022 年什么会火?什么该学?本文正在参与“聊聊 2022 技术趋势”征文活动 」

对于中台(业务中台)技术开发来说主要是对基础技术栈的使用,还有就是对抽象能力的提升,因为我们是底层服务不能出错,需要不断的去做兼容性。需要具备一些 Java 技术功底,掌握设计模式,深入掌握最常用的技术原理。我们今天就一起来盘点一下 Java 业务中台常用的技术框架与一些将来可能会用到的技术。

Spring

Spring Framework 是 Spring 里面的一个基础开源框架,主要用于 JavaEE 的企业开发。Spring是什么呢?首先它是一个开源的项目,而且非常活跃;它是一个基于IOC和AOP的构架多层 JavaEE 系统的框架,但它不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,采用IOC使得可以很容易的实现 Bean 的装配,提供了简洁的AOP并据此实现Transaction Management 等等。

目前 Spring 支持的主流版本是 5.3,开源支持的时间最迟到 2025 年。

Spring Boot

Spring Boot是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot 致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

Spring Cloud

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

MyBatis 是一款优秀的数据持久层 ORM 中间件,我们常用的有 XML 、注解两种方式使用,而且还有 MyBatis-Generator 插件帮我们快速的生成数据库的 CRUD 代码。

MyBaits 还支持与 Spring 的集成,是目前互联网,业务中台比较常用的数据持久层框架之一。

其实优秀的持久层框架还有 Hibernate ,我自从 14,15 年用过后面个人涉及的公司就较少使用

Alibaba 中间件

不得不说 Alibaba 因为 Alibaba 目前来说也是 Java 技术栈的大牛团队之一,也贡献了非常多优秀的开源框架比如:Doubbo, Nacos, Seata, Sentinel 等。

Nacos

Nacos 是一个服务发现、服务配置和服务管理中间件。Nacos 提供了一组简单易用的特性集,快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 可以让我们更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

Nacos 的关键特性包括:

  • 服务发现和服务健康监测Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生SDK、OpenAPI、或一个独立的Agent TODO注册 Service 后,服务消费者可以使用DNS 或HTTP&API查找和发现服务。Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。Nacos 支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查。 对于复杂的云环境和网络拓扑环境中(如 VPC、边缘网络等)服务的健康检查,Nacos 提供了 agent 上报模式和服务端主动检测2种健康检查模式。Nacos 还提供了统一的健康检查仪表盘,帮助您根据健康状态管理服务的可用性及流量。
  • 动态配置服务动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。Nacos 提供了一个简洁易用的UI 帮助您管理所有的服务和应用的配置。Nacos 还提供包括配置版本跟踪、金丝雀发布、一键回滚配置以及客户端配置更新状态跟踪在内的一系列开箱即用的配置管理特性,帮助您更安全地在生产环境中管理配置变更和降低配置变更带来的风险。
  • 动态 DNS 服务动态 DNS 服务支持权重路由,让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以 DNS 协议为基础的服务发现,以帮助您消除耦合到厂商私有服务发现 API 上的风险。Nacos 提供了一些简单的 DNS APIs 帮助您管理服务的关联域名和可用的 IP:PORT 列表.
  • 服务及其元数据管理Nacos 能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据。\

Nacos 架构图:

Sentinel

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

Sentinel 具有以下特征:

  • 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。
  • 完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。
  • 广泛的开源生态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Apache Dubbo、gRPC、Quarkus 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。同时 Sentinel 提供 Java/Go/C++ 等多语言的原生实现。
  • 完善的 SPI 扩展机制:Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。

\

Sentinel 生态

Seata

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。

AT 模式

基于支持本地 ACID 事务的关系型数据库。Java 应用,通过 JDBC 访问数据库。基于两阶段提交实现。

TCC 模式

TCC 模式主要关注业务拆分,在按照业务横向扩展资源时,解决微服务间调用的一致性问题,保证读资源访问的事务属性。

SAGE 模式

Saga模式是SEATA提供的长事务解决方案,在Saga模式中,业务流程中每个参与者都提交本地事务,当出现某一个参与者失败则补偿前面已经成功的参与者,一阶段正向服务和二阶段补偿服务都由业务开发实现。

Arthas

Arthas 是 Alibaba 开源的 Java 诊断工具。比如我们遇到 OOM, 或者接口超时等常见问题,我们就需要 Arthas 等分析工具对程序进行运行时分析,找到性能瓶颈。

ElasticSearch

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。

通常我们在项目中做首页数据查询,或者对于关系型数据库不能解决的一些历史数据查询,我们可以通过 ElasticSearch 作为一种查询的补充方案。

Java 中台技术盘点,这些技术你了解还远远不够相关推荐

  1. 3D 小游戏《欢乐贪吃龙》关键技术盘点 | Cocos 技术派第13期

    <欢乐贪吃龙>是由 SK2GAME 基于 Cocos Creator v2.2 研发的一款 3D 休闲小游戏,游戏画面卡通精美,玩法简单,玩家将扮演一只"贪吃龙",在 ...

  2. 年度Java技术盘点,懂这些技术的程序员2019年薪资翻倍!

    与一年前一样,Java仍然是最流行的编程语言.据TIOBE的数据显示,几十年来,Java比其他语言更常名列榜首,Java因为它拥有可移植性.可扩展性和庞大的用户社区,所以许多知名互联网公司使用Java ...

  3. 中台之上(一):重视业务架构,不要让“业务的归业务、技术的归技术”

    很多企业都将促进业务与科技的深度融合作为发展战略,也都想学学阿里的中台战略,其实,除了中台战略之外,基于企业级业务架构设计来实现组件化开发也是企业数字化转型的优选路径,是弥合业务与技术之间" ...

  4. 云原生年度技术盘点出炉,乘风破浪正当时

    2021年,数字产业蓬勃发展,传统云计算产业走向成熟,大数据.物联网.人工智能.区块链各种新兴技术百花齐放. 云原生已经成为势不可挡的技术趋势.Gartner 预测到 2025 年,95%数字化运维将 ...

  5. 2019年技术盘点微服务篇(二):青云直上云霄 | 程序员硬核评测

    戳蓝字"CSDN云计算"关注我们哦! 程序员硬核评测:客观.高效.不说软话.无论是技术质量.性能水平,还是工具筛选,一测便知! 作者:孙浩峰 过去几年来,"微服务架构&q ...

  6. 我用Java+SeimiCrawler+Redis+ES+Kibana技术对数百万知乎用户进行了数据分析,得到了这些......

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:_artoria_ 来源:http://tinyurl.co ...

  7. Java开发中Websocket的技术选型参考

    1. 前言 Websocket是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议.WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据 ...

  8. 横瓜执导众程序员开展大讨论关于C、JAVA及其它主流IT技术使用情况和优点缺点。...

    横瓜执导众程序员开展大讨论关于C.JAVA及其它主流IT技术使用情况和优点缺点. 遥执乾坤(44758121)  18:21:23 mysql据说只能使用一个索引,我这里几乎所有字段都有索引. 但每个 ...

  9. 近几年前端技术盘点以及 2016 年技术发展方向

    近几年前端技术盘点以及 2016 年技术发展方向 Web 发展了几十个春秋,风起云涌,千变万化.我很庆幸自己没有完整地经历过这些年头,而是站在前人的肩膀上行走.Web 技术发展的速度让人感觉那几乎不是 ...

  10. Java开发与技术挑战——关于技术的技术思考

     Java开发与技术挑战--关于技术的技术思考 width="22" height="16" src="http://hits.sinajs.cn ...

最新文章

  1. 如何创建vss2005的数据库
  2. 区块链BaaS云服务(37)荷兰Techruption 区块链
  3. 图像分割-LOG检测器和DOG检测器
  4. sqlserver 还原bak文件 查看不到_SQL server中用T-SQL语句实现(建库,分离,附加,备份,还原)...
  5. 浅谈python MRO与Mixin模式
  6. c语言的程序结构语序,第3章 C语序结构.doc
  7. Redis缓存持久化:RDB持久化和AOF持久化
  8. python和jsp交互_Servlet与JSP进阶
  9. python3.7 matplotlib增加坐标说明_python matplotlib:如何在极坐标图中的轴和刻度标签之间插入更多空格?...
  10. python读取图片转cvs_python将图片转换为csv
  11. @Scope作用域代理的应用:@RefreshScope注解实现动态刷新配置的底层原理与实现
  12. GB2312 字库表
  13. redis/memcache监控管理工具——treeNMS
  14. 夏普M3508U复印机无法打印的解决方法
  15. 付呗聚合支付快速教程 基础篇②——FubeiUtils付呗工具类(封装参数和签名规则)
  16. hashcat工具的使用----再也不用担心自己的word等文件的密码忘记啦!
  17. Hivesql常用优化技巧
  18. 部署asp.net mvc_在ASP.NET 2.0上部署ASP.NET MVC
  19. 【阿朱标红】参与感(3):新媒体营销篇
  20. 最新小程序反编译详细教程,亲测可用

热门文章

  1. 对象族谱之类实例化过程
  2. heic图片格式转换工具
  3. 被oracle搞死的部分语句(持续更新中)
  4. m语言控制rtw仿真
  5. 2023届秋招,我重新认清了自己
  6. 小红书分析,11月千瓜品牌机构创作者排行榜(小红书平台)
  7. java web登陆注册表_Java 访问注册表 - Rayn——做今天最好的自己 - OSCHINA - 中文开源技术交流社区...
  8. CCleaner软件免费试用版与付费专业版区别
  9. percona-toolkit之pt-online-schema-change(在线更改表结构)
  10. 全世界32条谣言 你被骗了多少