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. 名词用作动词举例_哪些词后面加动名词,哪些词加不定式,两者都可以加的又有那些?...
  2. Spring和SpringMVC自动扫描注解类的冲突问题
  3. linux shell 语句出错自动退出 调试 检查 脚本
  4. 物联网时代下的MCU,是市场倒逼还是彼此互相成就
  5. 为什么Redis是单线程?为什么能处理大并发量?(举例不错)
  6. 文件读写错误坑 之 UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position
  7. 简单聊聊Glide的内存缓存
  8. Spark _10_补充部分算子【三】
  9. 从数百万个光纤(而不是数千个线程)中查询数据库
  10. spark中saveAsTextFile如何最终生成一个文件
  11. 前端页面使用ace插件优化脚本
  12. php提取bing背景,PHP代码获取bing每日背景
  13. sql 怎么查一个账号连续登录失败的次数_黑客到底是怎么入侵的,我展示给你看...
  14. C语言实现String字符串及其函数
  15. 为什么要用用例图 用例图是什么 用例图怎么画 用例图有哪些元素
  16. 点云算法(深度学习)
  17. c语言编程求广义逆矩阵,求大神解答求广义逆矩阵的问题 拜谢了!!
  18. PyQt5报错Process finished with exit code -1073740791 (0xC0000409)
  19. mac备忘录html,MAC 使用备忘录
  20. yolov5训练时的dataset not found

热门文章

  1. 宏碁关闭bios密码_宏碁笔记本No bootable device处理与取消BIOS密码实用攻略
  2. 作为无人机方面做嵌入式编写的飞控总结5-磁力计对航向角yaw的校准1(磁力计如何校正航向)
  3. DNN、RNN、CNN
  4. 电子学会 2021年6月 青少年软件编程Python编程等级考试一级真题解析(选择题+判断题+编程题)
  5. Java处理时间/时区/普通时间与时间戳的转换
  6. win2008r2 惠普g160鼠标_坚决拒绝假货 惠普键鼠正品辨别方式
  7. 积分卡礼品卡回收系统
  8. Spring AOP中是如何注册Advisor的?
  9. 单片机并口开发经验记录
  10. 微信小程序之常用js脚本