自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 资源 (2)
  • 收藏
  • 关注

原创 RocketMQ事务消息如何保证数据的最终一致性

前言在面过的几家大厂中,几乎每轮的面试官(没写错,几乎是每轮面试官)都问了同样一个问题:你们的系统是分布式的系统吗?答:是。面试官:那么你们分布式的系统是如何解决分布式事务这个问题的呢?也就是如何保证数据的一致性。答:我们的系统中通过 RocketMQ 的事务消息来保证数据的最终一致性。面试官:那你说说它是如何来保证数据的最终一致性的?答:分两部分来回答,第一部分先回答事务消息的实现流程,第二部分解释为什么它能保证数据的最终一致性。事务消息的实现流程[外链图片转存失败,源站可能有防盗链机

2021-03-06 15:48:43 4153

原创 面试题:Zookeeper实现分布式锁的原理

前言在面字节跳动时,遇到了这道面试题:如何用 Zookeeper 实现分布式锁?相信大部分面试都是说用 Redis 去实现分布式锁,用 Zookeeper 实现分布式锁相对而言遇到的较少,最近在整理之前的面经答案,因此特意写篇博客解释一下。实现一把分布式锁通常有很多方法,比较常见的有 redis 和 Zookeeper。相信大家对 redis 实现分布式锁已经非常了解,今天介绍的是如何通过 Zookeeper 去实现一把分布式锁。首先 Zookeeper 为什么能实现一把分布式锁呢?这是因为它有一个

2021-03-06 15:45:40 773 1

原创 金三银四跳槽季,美团、字节、阿里、腾讯面经

金三银四跳槽季,个人经历,大厂面经奉上——美团、字节、阿里、腾讯面经,祝各位老铁拿到心仪的offer

2021-02-24 00:14:15 1470 2

原创 用字节码解释try、catch、finally、i++、++i的执行结果

为什么finally代码块一定会被执行?

2020-07-13 20:04:01 606 1

原创 JVM系列之垃圾回收器(下篇),最前沿的垃圾回收技术——ZGC

目前为止,最牛逼的垃圾回收器

2020-07-13 20:02:23 325

原创 JVM系列之垃圾回收器(下篇)——Shenandoah垃圾回收器

为什么Shenandoah垃圾回收器的延时很低?

2020-07-13 20:01:13 561

原创 JVM系列之垃圾回收器(中篇)——G1的运行原理以及调优思路

G1垃圾回收器的回收原理

2020-07-13 19:59:53 976

原创 JVM系列之经典垃圾回收器(上篇)

垃圾回收器

2020-07-13 19:58:33 485

原创 JVM系列之STW、并行与并发、安全点与安全区域

封面前言在平时实际工作中,其实接触 JVM 的机会比较少,而学习 JVM 时,大部分时候也是看书或者网上看博客教程,然而在学习过程中,经常会碰到很多陌生的名词,难以理解,尤其是在垃圾回收...

2020-06-18 00:56:31 855

原创 JVM系列之垃圾收集算法

清除-标记算法、复制算法、清除-压缩算法

2020-06-17 18:24:30 219

原创 垃圾回收之标记算法

引用计数算法、可达性分析算法

2020-06-17 18:20:53 781

原创 一道看了答案都不知道为什么的面试题

intern()方法、字节码指令、JVM内存结构

2020-06-17 18:18:52 338

原创 优先级队列PriorityQueue源码分析

优先级队列PriorityQueue源码分析

2020-06-17 18:16:25 260

原创 重温《数据结构与算法》之堆与堆排序

堆与堆排序

2020-06-17 18:14:39 180

原创 MySQL是如何对LRU算法进行优化的?又该如何对MySQL进行调优?

MySQL是如何对LRU算法进行优化的?又该如何对MySQL进行调优?

2020-06-17 18:11:48 1583 2

原创 垃圾回收之垃圾标记算法

封面前言作为 Java 开发人员,其实是非常幸福的,因为 JVM 的存在,使得 Java 开发人员不需要像 C 或者 C++开发人员那样需要手动申请内存、释放内存,这些资源申请、垃圾回收...

2020-06-16 00:26:07 246 1

原创 MySQL中order by语句的实现原理以及优化手段

order by工作原理,SQL如何优化,索引失效

2020-05-12 10:26:05 316

原创 最短路径问题——迪杰斯特拉算法(Dijkstra)

迪杰斯特拉算法(Dijkstra)

2020-05-12 10:24:41 1153

原创 面试官:为什么《阿里巴巴Java开发手册》中强制要求主键id是自增的?

为什么《阿里巴巴Java开发手册》中强制要求主键id是自增的?自增id用完后会出现什么现象?

2020-05-12 10:22:56 1358

原创 为什么《阿里巴巴Java开发手册》中强制要求主键id是自增的

前言在《阿里巴巴 Java 开发手册》第五章 MySQL 规定第九条中,强制规定了单表的主键 id 必须为无符号的 bigint 类型,且是自增的。为什么会这样强制规定呢?为什么通常主键...

2020-05-12 02:17:01 1281 1

原创 如何解决八皇后问题

回溯法,八皇后问题

2020-04-24 15:09:39 1740

原创 MySQL索引的工作原理

MySQL中索引是如何工作的?

2020-04-24 15:08:17 448 2

原创 MySQL为什么不用数组、哈希表、二叉树等数据结构作为索引呢

MySQL为什么要用B+Tree作为索引的数据结构,而不用数组、哈希表、二叉树等数据结构作为索引呢

2020-04-24 15:06:47 1929

原创 索引数据结构之B-Tree与B+Tree(下篇)

B+Tree的数据结构,为什么MySQL选择使用B+Tree作为索引的数据结构,而不是B-Tree

2020-04-21 18:09:57 270

原创 索引数据结构之B-Tree与B+Tree(上篇)

B+Tree 和 B-Tree的数据结构究竟长什么样

2020-04-21 18:08:10 324

原创 redo log —— MySQL宕机时数据不丢失的原理

redo log如何保证MySQL在宕机时数据不丢失

2020-04-21 18:06:29 4593 12

原创 backlog与TCP三次握手之间不得不说的事

JDK在创建套接字,可以为服务端配置backlog参数的值,在netty中我们也可以通过ChannelOption.SO_BACKLOG来设置。那么backlog参数到底有什么作用呢?它又是如何工作的呢?

2020-01-17 10:16:24 675 1

原创 Netty源码分析系列之writeAndFlush()下

write()只会将数据只是发送到了ChannelOutboundBuffer 缓冲区中,还没有被发送到操作系统的套接字中只有当调用了 flush()方法后,才会真正将数据发送到套接字中。那么 flush()方法的源码又是如何执行的呢?

2020-01-11 15:47:52 1369

原创 Netty源码分析系列之writeAndFlush()上

当我们的业务逻辑处理完成后,就需要给客户端响应消息,这就涉及到服务端如何通过 channel 将响应消息写出去的流程了,同时还会涉及到消息的编码过程,因为在 TCP 协议中,数据最终是通过字节流传输的,而我们通常在业务代码中是返回一个对象,因此需要进行编码。接下来本文将会重点分析这两个的过程的源码实现。

2020-01-07 21:36:11 1833

原创 Netty源码分析系列之常用解码器(下)——LengthFieldBasedFrameDecoder

在上一篇文章中分析了三个比较简单的解码器,今天接着分析最后一个常用的解码器:**LengthFieldBasedFrameDecoder**,这是一个基于长度字段的解码器。什么意思呢?就是在发送的数据中,使用一个字段来表示数据的长度,这样当接收方接收到数据后,先读出这个长度字段,读到了长度字段,那就知道了这次发送的数据有多长,这样就能解码出数据了。

2019-12-31 19:49:30 417

原创 Netty源码分析系列之常用解码器(上)

netty中几种常用的解码器,你知道它们的实现原理吗?一文带你搞懂解码器的原理

2019-12-30 23:47:05 294

原创 Netty源码分析系列之TCP粘包、半包问题以及Netty是如何解决的

什么是粘包、半包现象?UDP协议会存在这个问题吗?netty又是如何解决粘包、半包问题的呢?

2019-12-29 19:57:37 564 1

原创 Netty源码分析系列之新连接的接入

当 netty 的服务端启动以后,就可以开始接收客户端的连接了。那么在 netty 中,服务端是如何来进行新连接的创建的呢?

2019-12-27 10:45:40 243

原创 Netty源码分析系列之NioEventLoop的执行流程

NioEventLoop作为一个NIO事件轮询器,到底在循环处理什么呢?JDK中臭名昭著的空轮询BUG,在netty中又是如何避免的呢?

2019-12-23 02:09:37 409

原创 Netty源码分析系列之NioEventLoop的创建与启动

NioEventLoop的启动时机是什么时候?

2019-12-21 19:59:16 214

原创 Netty源码分析系列之服务端Channel的端口绑定

扫描下方二维码或者微信搜索公众号菜鸟飞呀飞,即可关注微信公众号,阅读更多Spring源码分析和Java并发编程文章。微信公众号问题本文内容是接着前两篇文章写的,有兴趣的朋友可以先去阅读下两篇文章: Netty 源码分析系列之服务端 Channel 初始化 和 Netty 源码分析系列之服务端 Channel 注册由于 Netty 是对 JDK 原生 NIO 的封装,对比 J...

2019-12-15 20:18:12 29956

原创 Netty源码分析系列之服务端Channel注册

Netty中服务端channel是如何注册到多路复用器上的?

2019-12-15 14:35:09 551

原创 阻塞队列LinkedBlockingQueue实现原理

阻塞队列时如何实现阻塞的?为什么它是线程安全的?

2019-12-13 10:13:55 3271

原创 Netty源码分析系列之服务端Channel初始化

Netty中服务端的Channel是如何初始化的

2019-12-06 07:58:48 300

原创 Netty源码分析系列之Reactor线程模型

什么是Reactor线程模型?Netty作为一款高性能的网络框架,其底层使用的网络IO模型是什么呢?

2019-12-02 10:47:53 378

JFreeChart最新版笨下载

jfreeChart开源jar包,完全没费,对于不想去官网下载的人来说,来CSDN下载频道更为方便,快捷

2016-10-05

spring开发常用的jar包spring.framework-4.3.2.RELEASE.required

最近自学spring过程中,发现spring官网下载的spring.framework-4.3.2.RELEASE.的jar包里面不够完整,当学到AOP编程时,需要导入AspectJ依赖的几个包,发现官网下载的包里没有这些包,就从网下下载了缺少的包,整合了一下,和大家一起分享

2016-09-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除