2023-03-21
JAVA NIO新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的,弥补了原来的 I/O 的不足,提供了高速的、面向块的 I/O。
Java IO与NIO的区别标准IO是对字节流的读写,在进行IO之前,首先创建一个流对象,流对象进行读写操作都是按字节 ,一个字节一个字节的来读或写。而NIO把IO抽象成块,类似磁盘的读写,每次IO操作的单位都是一个块...
阅读全文
2023-03-21
Java IO分类从传输方式和数据操作两个方面分析Java IO的分类。
传输方式字节是给计算机看的,字符才是给人看的。
字节流InputStreamOutputStream
字符流ReaderWriter
字节和字符的区别和理解数据操作
文件(file)FileInputStream、FileOutputStream、FileReader、FileWrit...
阅读全文
2023-03-19
首次接触到Kafka的背景,实时同步mysql数据到doris,Mysql binlog + kafka + flink + doris
简介Kafka 是一种分布式的,基于发布 / 订阅的消息系统。主要设计目标如下:
以时间复杂度为 O(1) 的方式提供消息持久化能力,即使对 TB 级以上数据也能保证常数时间复杂度的访问性能。
高吞吐率。即使在非常廉价...
阅读全文
2023-03-18
什么是消息队列
消息队列的应用场景
消息队列技术选型,Kafka还是RocketMQ,还是RabbitMQ
消息中间件如何做到高可用?
消息队列如何解决消息丢失问题
消息队列有可能发生重复消费吗?如何幂等处理?
如何处理消息队列的消息积压问题
消息队列如何保证消息的顺序性。
如何保证数据一致性,事务消息如何实现
如果让你写一个消息队列,该如何进行架构设计...
阅读全文
2023-03-05
Redis的每种对象其实都由对象结构(redisObject)与对应编码的数据结构组合而成,而每种对象类型对应若干编码方式,不同的编码方式所对应的底层数据结构是不同的。
从一下两个角度来研究底层:
对象设计机制: 对象结构(redisObject)
编码类型和底层数据结构: 对应编码的数据结构
对象机制为什么Redis会设计redisObject对象
R...
阅读全文
2023-03-04
数据库主备搭建主从架构
主库对外提供读写的操作
从库对外提供读的操作
主从架构的优势
读写分离,减少主库压力,提升服务性能
备份数据
高可用,实时灾备
主从架构需要考虑的问题
主从一致性
主从延迟
主主、主从、主备
主主 两台都是主数据库,同时对外提供读写操作。 客户端访问任意一台。 数据存在双向同步。
主从 一台是主数据库,对外提供读写...
阅读全文
2023-03-03
数据库锁基本概念加锁的目的数据库的锁是为了解决事务的隔离性问题,为了让事务之间相互不影响,每个事务进行操作的时候都会对数据加上一把特有的锁,防止其他事务同时操作数据。
锁是基于什么实现的在Innodb中,锁是作用在索引上面的,当我们的SQL命中索引时,那么锁住的就是命中条件内的索引节点(行锁),如果没有命中索引的话,那我们锁的就是整个索引树(表锁)
锁的分类...
阅读全文
2023-03-03
AbstractQueuedSynchronizer抽象类是核心,需要重点掌握。它提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架。
AQS框架借助于两个类:Unsafe(提供CAS操作)和LockSupport(提供park/unpark操作)
带着BAT大厂的面试问题去理解
什么是AQS? 为什么它是核心?
AQS的核心思想是什么...
阅读全文
2023-03-03
可重入锁ReentrantLock的底层是通过AbstractQueuedSynchronizer实现。
带着BAT大厂的面试问题去理解
什么是可重入,什么是可重入锁? 它用来解决什么问题?
ReentrantLock的核心是AQS,那么它怎么来实现的,继承吗? 说说其类内部结构关系。
ReentrantLock是如何实现公平锁的?
ReentrantLoc...
阅读全文
2023-03-03
LockSupport是锁中的基础,是一个提供锁机制的工具类。
带着BAT大厂的面试问题去理解
为什么LockSupport也是核心基础类? AQS框架借助于两个类:Unsafe(提供CAS操作)和LockSupport(提供park/unpark操作)
写出分别通过wait/notify和LockSupport的park/unpark实现同步?
LockS...
阅读全文