Java修炼指南:核心框架精讲(MyBatis+DubboRPC+RocketMQ)!

Java修炼指南:核心框架精讲

前言

随着信息时代的到来,数字化经济革命的浪潮正在大刀阔斧地改变 着人类的工作方式和生活方式。在数字化经济时代,从抓数字化管理人 才、知识管理人才和复合型管理人才教育入手,加快培养知识经济人才 队伍,为企业发展和提高企业核心竞争能力提供强有力的人才保障。目   前,数字化经济在全球经济增长中扮演着越来越重要的角色,以互联 网、云计算、大数据、物联网、人工智能为代表的数字技术近几年发展 迅猛,数字技术与传统产业的深度融合释放出巨大能量,成为引领经济 发展的强劲动力。
阅读优秀的源代码是软件工程师提高自身编程能力和学习开源框架 的最佳手段之一。许多大咖写出过无数伟大的代码,后来者通过学习他 们的编程技巧和技术风格,完成自己的作品,是一件非常值得且有意义 的事情。
都说读书有三境界, Java 源码解读亦如此。
第一层境界: 昨夜西风凋碧树。独上高楼,望尽天涯路。 ”如果想 做个有思想的程序员,成为一个有探索精神的 码农 ”和一个有创新精神 的 后浪 ”。首先要有执着的追求,善于登高望远、瞰察路径,在源码中 寻找明确目标与方向。
第二层境界: “衣带渐宽终不悔,为伊消得人憔悴。”通达框架的原 理,不是轻而易举、随便可得的,一定是经过自己的努力和勤奋,最后 才能收获成功。与编程一样,阅读别人的源代码永远不是一件轻松的 事,或者说,是一件困难的事情,需要持续地投入、阅读、研究和实
践。
本书将引领读者去探索 MyBatis Dubbo RocketMQ这三个框架的 源码,教会读者如何阅读源码,让读者少走弯路。
第三层境界: 众里寻他千百度。蓦然回首,那人却在,灯火阑珊
处。”要达到第三境界,必须有专注的精神,努力去反复追寻、研究源 码,工具和方法永远不是最重要的,在阅读源码遇到困难和看不明白的 时候,需要咬牙坚持,抽丝剥茧,逐个击破。
本书精心选取了 MyBatis Dubbo RocketMQ 3个当前使用频率很 高的 Java框架,详细分析其底层的设计逻辑,深入解读其设计技巧及架 8构思想,从源码分析的角度带领读者认识这些优秀的框架是如何产生 的,使读者的编程技巧及能力得到提升。
通过阅读本书,读者能在冰冷的二进制世界里找到一张地图或一座 灯塔,然后去解释和还原这个底层世界中每一个细微方面的语义,重建 出高层次的抽象概念和关系。

学习目录

数据层主流框架——MyBatis学习指南

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程 以及高级映射。 MyBatis 简洁高效,免除了几乎所有的 JDBC代码以及设 置参数和获取结果集的工作。 MyBatis 可以通过简单的 XML或注解来配 置和映射原始类型、接口和普通老式 Java 对象( Plain Old Java Object, Java POJO )并记录在数据库中。
在学习 MyBatis 框架之前,需要具有以下几方面的基础知识。
1 Java 基础: MyBatis 框架是由 Java语言编写,所以需要读者有一 定的 Java 基础。
2 JDBC 基础: MyBatis是操作数据库的框架,所以需要用户对 JDBC 有一定的了解。
3 )数据库基础: MyBatis是操作数据库的框架,所以需要用户对 SQL 、主流数据库(如 MySQL Oracle )有一定的了解。
下面把 Mybatis 的功能架构分为三层。
1 )接口层:提供给外部使用的接口 API,开发人员通过这些本地 API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完 成具体的数据处理。
2 )核心处理层:负责具体的 SQL 查找、 SQL 解析、 SQL执行和执行 结果映射处理等。它主要的目的是根据调用的请求完成数据库操作。
3)基础支持层:负责最基础的功能支撑,包括连接管理、事务管 理、配置加载和缓存处理,这些都是系统共用的功能,将它们抽取出来 13 作为最基础的组件,为上层的数据处理层提供最基础的支撑。

微服务Dubbo通信解密

本章介绍微服务Dubbo RPC通信的有关知识,在分布式微服务架构 环境的基础下,服务远程调用已经成为必不可少的基础通信手段。一个 高性能、高可扩展的服务通信框架已成为服务框架的重要组成部分。
通信框架涉及的核心基础有Socket、多线程并发编程、框架协议通 信等相关知识,这部分知识很多业务开发工程师们也很少接触,因此比 较难掌握。本章将对 Dubbo微服务通信组建的各种实现与设计进行详细 讲解,期待大家可以尽快掌握通信架构的核心工作原理。

RocketMQ代码探索实践

3.1 RocketMQ 架构原理
消息队列( Message Queue MQ )已经逐渐成为企业IT系统内部通 信的核心手段。它具有低耦合、可靠投递、传播范围广、流量易于控 制、数据最终一致性好等优点,成为异步 RPC的主要手段之一。当前市 面上有很多主流的消息中间件,如老牌的 ActiveMQ RabbitMQ,炙手 可热的 Kafka ,阿里巴巴自主开发 RocketMQ 等。本章将会从RocketMQ 消息中间件代码层面深度解析 MQ底层原理,从实际生产环境出发,深 度结合现实生产中的问题,提出有效的解决方案。
本节主要目的是带读者从架构的层面认识消息中间件,深入理解消 息中间件各个组件的作用,认识消息中间件在实际生产环境中具体的应 用场景及工作原理。
3.1.1 为什么要使用消息中间件
MessageQueue是一个广泛应用在互联网项目且非常重要的技术, MessageQueue通常被用来解决在高并发压力下的流量削峰、服务解耦、 消息通信等问题。
在认识消息队列的消息中间件之前,读者对 MQ没有太直观的感 受,都有类似 “MQ到底是什么?需要在项目中使用它吗?使用它不就增 加项目的复杂度了吗? 等疑问。
以上问题确实存在,但是在互联网项目中,随着业务的拓展,项目 往往面临着越来越高的并发访问,为了解决项目面临的一些问题,项目 中不得不引入 MQ 消息中间件。
虽然引入消息中间件不得不让系统处理诸如单点故障、数据一致 性、接口的幂等性等复杂问题,但是引入它是以较小的成本提高项目性 能的方案之一。
为了让所有人能直观感受 MQ消息中间件在应用项目开发中的显著 作用,下面通过一个小实例来进一步详细说明 MQ在实际生产环境中所 发挥的作用。
1. 链式调用
216链式调用是服务调用时的一般流程,为了完成一个整体功能,会将 其拆分成多个函数(或子模块),比如模块 A 调用模块 B ,模块 B调用模 块 C ,模块 C 调用模块 D。但在大型分布式应用中,系统间的RPC交互繁 杂,一个功能背后甚至要调用上百个接口,那么如果有一个服务出现调 用阻塞或者任务处理时间较长,就会造成任务阻塞,甚至服务雪崩的可 怕后果。
这些接口之间耦合比较严重,每新增一个下游功能,都要对上游的 相关接口进行改造。举个例子:假如系统 A 要发送数据给系统 B和系统 C ,发送给每个系统的数据可能有差异,因此系统A对要发送给每个系 统的数据进行了组装,然后逐一发送;当代码上线后,新增了一个需 求,就是把数据也发送给系统 D 。此时就需要修改系统 A,让其感知到 系统 D 的存在,同时把数据处理好给系统 D。在这个过程中用户会看 到,每接入一个下游系统,都要对系统 A 进行代码改造,开发联调的效
率很低。其整体架构如图3-1所示。
因包含的内容较多,这里只做了简单的章节介绍,每个章节都有更加细化的内容;
注:需要完整版的小伙伴可以查看下方名片免费领取!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值