Jiefang's Blog

过去心不可得,现在心不可得, 未来心不可得

RabbitMQ 面试题 下面试题,基于网络整理,和自己编辑。具体参考的文章,会在文末给出所有的链接。 如果胖友有自己的疑问,欢迎在星球提问,我们一起整理吊吊的 RabbitMQ 面试题的大保健。 而题目的难度,艿艿尽量按照从容易到困难的顺序,逐步下去。 艿艿:我们生产主要使用的是 RocketMQ ,所以对 RabbitMQ 灰常不熟悉(😈 看了《RabbitMQ 实战指南》...

RocketMQ 面试题 下面试题,基于网络整理,和自己编辑。具体参考的文章,会在文末给出所有的链接。 如果胖友有自己的疑问,欢迎在星球提问,我们一起整理吊吊的 RocketMQ 的大保健。 而题目的难度,艿艿尽量按照从容易到困难的顺序,逐步下去。 友情提示:在开始阅读之前,胖友至少对 《RocketMQ —— 角色与术语详解》 有简单的了解。 另外,这个面试题是建立在胖友...

消息队列面试题 以下面试题,基于网络整理,和自己编辑。具体参考的文章,会在文末给出所有的链接。 如果胖友有自己的疑问,欢迎在星球提问,我们一起整理吊吊的【消息队列】面试题的大保健。 而题目的难度,艿艿尽量按照从容易到困难的顺序,逐步下去。 另外,本文只分享通用的【消息队列】的面试题,关于 RocketMQ、Kafka、RabbitMQ 会单独分享。 什么是消息队列? 消息队列,是...

MyBatis 面试题 以下面试题,基于网络整理,和自己编辑。具体参考的文章,会在文末给出所有的链接。 如果胖友有自己的疑问,欢迎在星球提问,我们一起整理吊吊的 MyBatis 面试题的大保健。 而题目的难度,艿艿尽量按照从容易到困难的顺序,逐步下去。 MyBatis 编程步骤 创建 SqlSessionFactory 对象。 通过 SqlSessionFactory 获...

Spring Cloud 面试题 以下面试题,基于网络整理,和自己编辑。具体参考的文章,会在文末给出所有的链接。 如果胖友有自己的疑问,欢迎在星球提问,我们一起整理吊吊的 Spring Cloud 面试题的大保健。 而题目的难度,艿艿尽量按照从容易到困难的顺序,逐步下去。 为什么标题会带有 Beta 呢? 因为艿艿自己生产并未使用 Spring Cloud ,而是使用 D...

Spring Boot 面试题 以下面试题,基于网络整理,和自己编辑。具体参考的文章,会在文末给出所有的链接。 如果胖友有自己的疑问,欢迎在星球提问,我们一起整理吊吊的 Spring Boot 面试题的大保健。 而题目的难度,艿艿尽量按照从容易到困难的顺序,逐步下去。 在内容上,我们会分成两大块: 核心技术篇,分享 Spring Boot 的核心技术相关的内容。 整合篇,...

Spring MVC 面试题 以下面试题,基于网络整理,和自己编辑。具体参考的文章,会在文末给出所有的链接。 如果胖友有自己的疑问,欢迎在星球提问,我们一起整理吊吊的 Spring MVC 面试题的大保健。 而题目的难度,艿艿尽量按照从容易到困难的顺序,逐步下去。 当然,艿艿还是非常推荐胖友去撸一撸 Spring MVC 的源码,特别是如下两篇: 《精尽 Spring MVC...

Spring 面试题 注意 1 ,这个面试题,暂时不包括 Spring MVC 部分。主要以 Spring IoC、Spring AOP、Spring Transaction 为主。 注意 2 ,T T Spring 怎么会有这么多问题,艿艿自己面试很多都不太问,跟背书一样。所以整理的过程,真的是痛苦万分。 Spring 是一个很庞大的技术体系,可以说包容一切,所以本文我们...

Netty 面试题 BIO 是什么? 🦅 概念 BIO ,全称 Block-IO ,是一种阻塞 + 同步的通信模式。 是一个比较传统的通信方式,模式简单,使用方便。但并发处理能力低,通信耗时,依赖网速。 🦅 原理 服务器通过一个 Acceptor 线程,负责监听客户端请求和为每个客户端创建一个新的线程进行链路处理。典型的一请求一应答模式。 若客户端数量增多,频...

Dubbo 面试题 Dubbo 有几种配置方式? 正如在 《Dubbo 用户指南 —— 配置》 中所见,一共有四种配置方式: XML 配置 注解配置 属性配置 Java API 配置 实际上,还有第五种方式,外部化配置。参见 《Dubbo 新编程模型之外部化配置》 。 目前,主要使用的是 XML 配置和注解配置。具体使用哪一种,就看大家各自的喜好。目前,艿艿偏好...

RocketMQ-20丨RocketMQ DLedger主从切换

RocketMQ DLedger主从切换 流程图 BrokerController#initialize() 1 2 3 4 5 6 7 8 9 10 11 12 13 /** * Broker初始化 * @return boolean * @throws CloneNotSupportedException 不支持克隆异常 */ public boolean initia...

RocketMQ-19丨RocketMQ整合DLedger

RocketMQ整合DLedger RocketMQ 的消息存储文件主要包括CommitLog 文件、ConsumeQueue 文件与Index 文件。Commitlog 文件存储全量的消息,ConsumeQueue、Index 文件都是基于CommitLog 文件构建的。要使用DLedger 来实现消息存储的一致性,应该关键是要实现CommitLog 文件的一致性,即DLedger 要整...

RocketMQ-18丨DLedger存储实现

DLedger存储实现 存储类 DLedgerStore 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 ...

RocketMQ-18丨DLedger日志复制机制

DLedger日志复制机制 类 RequestOrResponse 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 /** * 请求或响应 */ public class RequestOrResponse { //该集群所属组名 protected String group; //请求目的节点ID protect...

RocketMQ-17丨DLedger选主机制

DLedger选主机制 核心类图 DLedgerConfig:多副本模块相关的配置信息,例如集群节点信息; MemberState:节点状态机,即raft 协议中的follower、candidate、leader 三种状态的状态机实现; Raft 协议相关: DLedgerClientProtocol:DLedger 客户端协议 ...

分布式原理-06丨Raft协议

Raft协议 Raft 协议是解决分布式领域一致性的著名协议之一,主要包含Leader 选举、日志复制两个部分。 All our nodes start in the follower state. 我们所有的节点都从follower状态开始。 If followers don’t hear from a leader then they can become a candidate...

RocketMQ-16丨RocketMQ事务消息

RocketMQ事务消息 实现思想 应用程序在事务内完成相关业务数据落库后,需要同步调用RocketMQ 消息发送接口,发送状态为prepare 的消息。消息发送成功后, RocketMQ 服务器会回调RocketMQ 消息发送者的事件监听程序,记录消息的本地事务状态,该相关标记与本地业务操作同属一个事务,确保消息发送与本地事务的原子性; RocketMQ 在收到类型为prep...

RocketMQ-15丨RocketMQ主从复制

RocketMQ主从复制 原理 为了提高消息消费的高可用性,避免Broker 发生单点故障引起存储在Broker 上的消息无法及时消费, RocketMQ 引入了Broker 主备机制, 即消息消费到达主服务器后需要将消息同步到消息从服务器,如果主服务器Broker 宕机后,消息消费者可以从从服务器拉取消息。 流程 master服务器启动,并在特定端口上监昕从服务器的连接;...

RocketMQ-14丨顺序消息

顺序消息 RocketMQ 支持局部消息顺序消费,可以确保同一个消息消费队列中的消息被顺序消费,如果需要做到全局顺序消费则可以将主题配置成一个队列,例如数据库binLog 等要求严格顺序的场景。根据并发消息消费的流程,消息消费包含如下4 个步骤: 消息队列负载、消息拉取、消息消费、消息消费进度存储。 消息队列负载 RocketMQ 首先需要通过RebalanceService 线程实现...

数据结构-01丨堆

堆(Heap) 堆就是用数组实现的二叉树,所以它没有使用父指针或者子指针。堆根据“堆属性”来排序,“堆属性”决定了树中节点的位置。 堆的常用方法: 构建优先队列 支持堆排序 快速找出一个集合中的最小值(或者最大值) 堆属性 堆分为两种:最大堆和最小堆,两者的差别在于节点的排序方式。 在最大堆中,父节点的值比每一个子节点的值都要大。在最小堆中,父节点的值比每一个子节...