自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 RocketMQ死信队列

死信队列就是当消息发送失败达到了一个阈值后,消息被从正常的消息队列里移除,添加到了一个系统创建的一个%DLQ%XXX这样格式的一个队列里,不再被消费。

2023-04-11 15:49:26 1714

原创 RocketMQ顺序消息

顺序消息是指完全根据发送的消息顺序来顺序消费,遵循FIFO先进先出的规则。保证顺序消息的两种方式为,全局有序和分区有序。

2023-04-09 18:17:46 285 1

原创 RocketMQ的消息的发送和消费方式

这是默认的消费模式,同组的Consumer共同分担Topic下所有队列的消息,不会出现消息被重复消费。举例:启动一个Producer发送10条消息到TopicA,再启动两个Consumer属于同组GroupA,并都订阅TopicA,此时两个Consumer各分摊了一部分的消息进行消费,但消费的总数是10条。举例:启动一个Producer发送10条消息到TopicA,再启动两个Consumer属于同组GroupA,并都订阅TopicA,此时两个Consumer都会收到10条消息,总共会消费20条消息。

2023-04-09 15:35:22 820

原创 MappedByteBuffer

MappedByteBuffer是ByteBuffer的子类,和ByteBuffer的使用方式类似,一般用于加速文件和内存之间的IO传输的速度,原理可理解为是给磁盘文件和app应用内存之间建立了一条快速通道,而这条快速通道就是MappedByteBuffer,通过对它的读或写就相当于对文件的读或写,不需要再经过用户态和内核态的数据来回拷贝。下面示例通过socket的传输,把client的传输的结果写到磁盘mmap.txt中。

2023-04-09 09:06:11 507

原创 ByteBuffer详解

ByteBuffer是在nio中常用的一个buffer,可以理解为就是一个byte的数组,用于存放数据的同时增加了一些属性对这个byte数组进行一些管理。

2023-04-08 22:53:52 285

原创 网络通信NIO selector demo

selector里面存放的内容可理解为是channel+事件的一个组合,当selector轮询到某个channel的事件被触发了,系统就会告知用户系统可开始对该channel进行IO操作了。

2023-04-07 20:32:51 108 1

原创 网路通信bio demo

Sever端accept()一个client后执行后面的数据处理任务也是同步的,即需要完成一个client消息读取和响应后,才能进行下一个,这里可把accept后的任务处理改成多线程处理,以此来同时接收更多的client。

2023-04-07 15:01:50 78 1

原创 读写锁ReentrantReadWriteLock

准备了4个线程,readThread1 、readThread2两个获取读锁,writeThread1、writeThread2获取写锁。下方为四种组合输出结果。

2023-04-06 21:05:28 71 1

原创 排它锁ReentrantLock,lock.lock()、lockInterruptibly()、tryLock()的区别

上述的4个方法都是尝试获取锁的方法。lock():得到锁继续往下执行,反之一直阻塞。不可被中断lockInterruptibly():得到锁则继续往下,反之一直阻塞。可被中断tryLock():得到锁继续往下执行并返回true,反之也是继续往下执行并返回false。不可被中断tryLock(long time, TimeUnit unit):逻辑与tryLock(),只是增加超时机制,超时得不到锁就返回false。可被中断。

2023-04-06 19:49:55 636 2

空空如也

空空如也

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

TA关注的人

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