- 博客(84)
- 资源 (2)
- 收藏
- 关注
原创 RocketMQ事务消息如何保证数据的最终一致性
前言在面过的几家大厂中,几乎每轮的面试官(没写错,几乎是每轮面试官)都问了同样一个问题:你们的系统是分布式的系统吗?答:是。面试官:那么你们分布式的系统是如何解决分布式事务这个问题的呢?也就是如何保证数据的一致性。答:我们的系统中通过 RocketMQ 的事务消息来保证数据的最终一致性。面试官:那你说说它是如何来保证数据的最终一致性的?答:分两部分来回答,第一部分先回答事务消息的实现流程,第二部分解释为什么它能保证数据的最终一致性。事务消息的实现流程[外链图片转存失败,源站可能有防盗链机
2021-03-06 15:48:43
4964
原创 面试题:Zookeeper实现分布式锁的原理
前言在面字节跳动时,遇到了这道面试题:如何用 Zookeeper 实现分布式锁?相信大部分面试都是说用 Redis 去实现分布式锁,用 Zookeeper 实现分布式锁相对而言遇到的较少,最近在整理之前的面经答案,因此特意写篇博客解释一下。实现一把分布式锁通常有很多方法,比较常见的有 redis 和 Zookeeper。相信大家对 redis 实现分布式锁已经非常了解,今天介绍的是如何通过 Zookeeper 去实现一把分布式锁。首先 Zookeeper 为什么能实现一把分布式锁呢?这是因为它有一个
2021-03-06 15:45:40
874
1
原创 金三银四跳槽季,美团、字节、阿里、腾讯面经
金三银四跳槽季,个人经历,大厂面经奉上——美团、字节、阿里、腾讯面经,祝各位老铁拿到心仪的offer
2021-02-24 00:14:15
1593
2
原创 JVM系列之STW、并行与并发、安全点与安全区域
封面前言在平时实际工作中,其实接触 JVM 的机会比较少,而学习 JVM 时,大部分时候也是看书或者网上看博客教程,然而在学习过程中,经常会碰到很多陌生的名词,难以理解,尤其是在垃圾回收...
2020-06-18 00:56:31
932
原创 MySQL是如何对LRU算法进行优化的?又该如何对MySQL进行调优?
MySQL是如何对LRU算法进行优化的?又该如何对MySQL进行调优?
2020-06-17 18:11:48
1785
4
原创 垃圾回收之垃圾标记算法
封面前言作为 Java 开发人员,其实是非常幸福的,因为 JVM 的存在,使得 Java 开发人员不需要像 C 或者 C++开发人员那样需要手动申请内存、释放内存,这些资源申请、垃圾回收...
2020-06-16 00:26:07
300
1
原创 面试官:为什么《阿里巴巴Java开发手册》中强制要求主键id是自增的?
为什么《阿里巴巴Java开发手册》中强制要求主键id是自增的?自增id用完后会出现什么现象?
2020-05-12 10:22:56
1561
原创 为什么《阿里巴巴Java开发手册》中强制要求主键id是自增的
前言在《阿里巴巴 Java 开发手册》第五章 MySQL 规定第九条中,强制规定了单表的主键 id 必须为无符号的 bigint 类型,且是自增的。为什么会这样强制规定呢?为什么通常主键...
2020-05-12 02:17:01
1513
1
原创 MySQL为什么不用数组、哈希表、二叉树等数据结构作为索引呢
MySQL为什么要用B+Tree作为索引的数据结构,而不用数组、哈希表、二叉树等数据结构作为索引呢
2020-04-24 15:06:47
2153
原创 索引数据结构之B-Tree与B+Tree(下篇)
B+Tree的数据结构,为什么MySQL选择使用B+Tree作为索引的数据结构,而不是B-Tree
2020-04-21 18:09:57
308
原创 backlog与TCP三次握手之间不得不说的事
JDK在创建套接字,可以为服务端配置backlog参数的值,在netty中我们也可以通过ChannelOption.SO_BACKLOG来设置。那么backlog参数到底有什么作用呢?它又是如何工作的呢?
2020-01-17 10:16:24
774
1
原创 Netty源码分析系列之writeAndFlush()下
write()只会将数据只是发送到了ChannelOutboundBuffer 缓冲区中,还没有被发送到操作系统的套接字中只有当调用了 flush()方法后,才会真正将数据发送到套接字中。那么 flush()方法的源码又是如何执行的呢?
2020-01-11 15:47:52
1467
原创 Netty源码分析系列之writeAndFlush()上
当我们的业务逻辑处理完成后,就需要给客户端响应消息,这就涉及到服务端如何通过 channel 将响应消息写出去的流程了,同时还会涉及到消息的编码过程,因为在 TCP 协议中,数据最终是通过字节流传输的,而我们通常在业务代码中是返回一个对象,因此需要进行编码。接下来本文将会重点分析这两个的过程的源码实现。
2020-01-07 21:36:11
2038
原创 Netty源码分析系列之常用解码器(下)——LengthFieldBasedFrameDecoder
在上一篇文章中分析了三个比较简单的解码器,今天接着分析最后一个常用的解码器:**LengthFieldBasedFrameDecoder**,这是一个基于长度字段的解码器。什么意思呢?就是在发送的数据中,使用一个字段来表示数据的长度,这样当接收方接收到数据后,先读出这个长度字段,读到了长度字段,那就知道了这次发送的数据有多长,这样就能解码出数据了。
2019-12-31 19:49:30
476
原创 Netty源码分析系列之TCP粘包、半包问题以及Netty是如何解决的
什么是粘包、半包现象?UDP协议会存在这个问题吗?netty又是如何解决粘包、半包问题的呢?
2019-12-29 19:57:37
639
1
原创 Netty源码分析系列之新连接的接入
当 netty 的服务端启动以后,就可以开始接收客户端的连接了。那么在 netty 中,服务端是如何来进行新连接的创建的呢?
2019-12-27 10:45:40
317
原创 Netty源码分析系列之NioEventLoop的执行流程
NioEventLoop作为一个NIO事件轮询器,到底在循环处理什么呢?JDK中臭名昭著的空轮询BUG,在netty中又是如何避免的呢?
2019-12-23 02:09:37
567
原创 Netty源码分析系列之服务端Channel的端口绑定
扫描下方二维码或者微信搜索公众号菜鸟飞呀飞,即可关注微信公众号,阅读更多Spring源码分析和Java并发编程文章。微信公众号问题本文内容是接着前两篇文章写的,有兴趣的朋友可以先去阅读下两篇文章: Netty 源码分析系列之服务端 Channel 初始化 和 Netty 源码分析系列之服务端 Channel 注册由于 Netty 是对 JDK 原生 NIO 的封装,对比 J...
2019-12-15 20:18:12
37088
原创 Netty源码分析系列之Reactor线程模型
什么是Reactor线程模型?Netty作为一款高性能的网络框架,其底层使用的网络IO模型是什么呢?
2019-12-02 10:47:53
426
spring开发常用的jar包spring.framework-4.3.2.RELEASE.required
2016-09-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人