数据库的乐观锁怎么实现的? 发表于 2020-11-05 | 分类于 mysql 字数统计: 126 | 阅读时长 ≈ 1 [TOC] MySql最经常使用的乐观锁时进行版本控制,也就是在数据库表中增加一列,记为version,当我们将数据读出时,将版本号一并读出,当数据进行更新时,会对这个版本号进行加1,当我们提交数据时,会判断数据库表中当前的version列值和当时读出的version是否相同,若相同说明没有进行更新 ... 阅读全文 »
一些比较偏门的面试题 发表于 2020-11-05 | 分类于 其他 字数统计: 7.5k | 阅读时长 ≈ 26 [TOC] Java基础大端序小端序1.小端法(Little-Endian)就是低位字节排放在内存的低地址端(即该值的起始地址),高位字节排放在内存的高地址端; 2.大端法(Big-Endian)就是高位字节排放在内存的低地址端(即该值的起始地址),低位字节排放在内存的高地址端; 枚举可以new吗 ... 阅读全文 »
spring剖析 发表于 2020-11-05 | 分类于 框架 字数统计: 499 | 阅读时长 ≈ 2 [TOC] IOCIoC(Inverse of Control:控制反转)是一种设计思想,就是 将原本在程序中手动创建对象的控制权,交由Spring框架来管理。 IoC 在其他语言中也有应用,并非 Spring 特有。 IoC 容器是 Spring 用来实现 IoC 的载体, IoC 容器实际上就是 ... 阅读全文 »
分布式事务 发表于 2020-11-05 | 分类于 分布式 字数统计: 3.2k | 阅读时长 ≈ 11 [TOC] 分布式事务指事务的操作位于不同的节点上,需要保证事务的 ACID 特性。例如在下单场景下,库存和订单如果不在同一个节点上,就涉及分布式事务。 两阶段提交(2PC)两阶段提交(Two-phase Commit,2PC),通过引入协调者(Coordinator)来协调参与者的行为,并最终决定 ... 阅读全文 »
JWT认证 发表于 2020-11-05 | 分类于 计算机网络 字数统计: 2.5k | 阅读时长 ≈ 9 [TOC] JWT 身份认证优缺点分析以及常见问题解决方案之前分享了一个使用 Spring Security 实现 JWT 身份认证的 Demo,文章地址:适合初学者入门 Spring Security With JWT 的 Demo。 Demo 非常简单,没有介绍到 JWT 存在的一些问题。所以, ... 阅读全文 »
两阶段提交 发表于 2020-11-04 | 分类于 mysql 字数统计: 1.5k | 阅读时长 ≈ 5 [TOC] redo logredo log日志模块redo log是InnoDB存储引擎层的日志,又称重做日志文件,用于记录事务操作的变化,记录的是数据修改之后的值,不管事务是否提交都会记录下来。在实例和介质失败(media failure)时,redo log文件就能派上用场,如数据库掉电,In ... 阅读全文 »
kafka副本同步 发表于 2020-11-04 | 分类于 消息队列 字数统计: 1.8k | 阅读时长 ≈ 6 [TOC] Kafka副本Kafka中主题的每个Partition有一个预写式日志文件,每个Partition都由一系列有序的、不可变的消息组成,这些消息被连续的追加到Partition中,Partition中的每个消息都有一个连续的序列号叫做offset,确定它在分区日志中唯一的位置。Kafka每 ... 阅读全文 »
kafka的分区再平衡 发表于 2020-11-04 | 分类于 消息队列 字数统计: 499 | 阅读时长 ≈ 1 [TOC] 所谓的再平衡,指的是在kafka consumer所订阅的topic发生变化时发生的一种分区重分配机制。一般有三种情况会触发再平衡: consumer group中的新增或删除某个consumer consumer订阅的topic发生变化 consumer所订阅的topic发生了新增分 ... 阅读全文 »
kafka的集群选举、数据同步 发表于 2020-11-04 | 分类于 消息队列 字数统计: 474 | 阅读时长 ≈ 1 [TOC] Broker选举所谓控制器就是一个Borker,在一个kafka集群中,有多个broker节点,但是它们之间需要选举出一个leader,其他的broker充当follower角色。集群中第一个启动的broker会通过在zookeeper中创建临时节点/controller来让自己成为控制 ... 阅读全文 »
kafka怎么保证顺序消费 发表于 2020-11-04 | 分类于 消息队列 字数统计: 118 | 阅读时长 ≈ 1 [TOC] 如果Kafka要保证多个partition有序,不仅broker保存的数据要保持顺序,消费时也要按序消费。假设partition1堵了,为了有序,那partition2以及后续的分区也不能被消费,这种情况下,Kafka 就退化成了单一队列,毫无并发性可言,极大降低系统性能。因此Kafka ... 阅读全文 »