- 博客(25)
- 收藏
- 关注
原创 RocketMQ系列5——5.X版本延迟消息
延迟消息5.X版本比4.X版本新增了配置,支持自定义任意延迟时间。延迟消息实现任意时间的任务是基于时间轮做的,时间轮存储定时任务的环形队列,底层采用数组实现,数组中的每一个元素可以存放一个定时任务。
2023-06-15 14:20:14
2709
原创 JVM系列6——垃圾收集底层算法实现-三色标记算法
JVM判断对象是否存活的算法一般会采用可达性分析和引用计数法。引用计数法会存在循环引用的问题,比如两个对象相互引用,就形成了一个环形结构,一直无法被回收。可达性分析的过程STW时间长,在整个可达性分析阶段都需要STW,避免对象的状态发生变化,导致停顿时间长,影响了整体的性能。为了解决这两个算法的已知问题,引入了三色标记算法。
2023-06-06 18:45:00
203
原创 JVM系列5——垃圾收集器
java堆主要分为新生代和老年代两部分,新生代主要使用复制或者标记清除垃圾回收算法,老年代使用标记整理回收算法。java虚拟机提供了不同的收集器。垃圾收集的目标范围整个新生代(Minor GC)或者整个老年代(Major GC)或者整个Java堆(Full GC)。下图展示了七种作用于不同分代的收集器,如果两个收集器存在关联可以搭配使用。
2023-06-06 12:03:00
1722
原创 JVM系列2——JVM运行时数据区域
对于java程序员来说,在虚拟机自动内存管理机制的帮助下,不在需要为每一个new的操作去写对应的delete的代码,不容易出现内存泄漏和内存溢出的问题,也就是由JVM(Java虚拟机)来控制内存。java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。每个区域有各自的用途,以及创建和销毁的时间。JVM(Java虚拟机)所管理的内存将会包括以下几个运行时数据区域。jdk版本不一样内存区域的划分不一样。
2023-06-05 15:00:50
59
原创 JVM系列1——类加载机制
使用java命令运行某个类的main函数启动程序时,首选需要通过类加载器把主类加载到JVM。类加载过程为加载->验证->准备->解析->初始化->使用->卸载七个阶段。
2023-04-18 20:02:13
664
1
原创 RocketMQ系列6——事务消息
RocketMQ在4.3.0版中支持分布式事务消息,这里RocketMQ的事务消息是采用2PC(两段式协议) +补偿机制(消息回查)的分布式事务功能。提供消息发送与业务落库的一致性。
2023-03-31 11:38:43
2640
原创 泛型
泛型是jdk5引入的类型机制,将类型参数化。泛型机制将类型转换时的类型检查从运行时提前到了编译时,使用泛型编写的代码比杂乱的使用object并在需要时再强制类型转换的机制具有更好的可读性和安全性。在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。
2023-03-29 20:04:29
74
原创 RocketMQ系列5——4.X版本延迟消息
延迟消息是在业务场景中比较常用的功能,可以作为延迟队列。比如订单n分钟未支付自动取消,活动倒计时,定时发消息都可以使用到延迟消息。
2023-03-29 19:38:44
3506
1
原创 RocketMQ系列4——负载均衡
RocketMQ中的负载均衡主要分为Producer端发送消息时候的负载均衡和Consumer端订阅消息的负载均衡。
2023-03-29 19:34:38
1206
原创 RocketMQ系列3——消息存储
数据持久化存储,当MQ收到一条消息后,需要向生产者返回一个ACK响应,并将消息存储到磁盘文件。MQ Push一条消息给消费者后,等待消费者的ACK响应,需要将消息标记为已消费。如果没有标记为消费,MQ会不断的尝试往消费者推送这条消息。MQ需要定期删除一些过期的消息,这样才能保证服务一直可用。
2023-03-28 17:05:15
1829
原创 RocketMQ系列1——基础角色介绍
RocketMQ是一个消息中间件,具有高性能、高可靠、高实时、分布式的特点。RocketMQ 技术架构中有四大角色 NameServer 、 Broker 、 Producer 、 Consumer。其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息,NameServer作为注册中心。
2023-03-27 20:13:39
851
原创 MQ(MessageQueue)介绍
MQ(MessageQueue)消息队列,先进先出的数据结构。消息由生产者发送到MQ进行排队,消费者按照顺序进行消费。MQ的优缺点和常用的MQ产品比较。
2023-03-27 20:03:14
369
原创 redis系列6——Cluster模式
Redis3.0版本增加Redis Cluster,Redis Cluster解决了Redis分布式方面的需求。如果遇到并发、流量瓶颈时,用Redis Cluster模式实现负载均衡。
2023-03-16 23:29:05
492
原创 redis系列7——过期策略和淘汰策略
redis过期策略和淘汰策略。过期策略分为定时删除和惰性删除。淘汰策略分为针对设置过期时间的key,针对所有key和不处理。
2023-03-16 21:28:44
343
原创 redis系列5——Sentinel模式
Sentinel模式当主节点出现故障时,Redis Sentinel能自动完成故障发现和故障转移并通知应用方,实现了高可用。
2023-03-14 23:32:55
367
原创 redis系列4——复制模式
redis复制模式,实现多个数据相同的redis副本。如果主节点挂了,运维可以让从节点变成主节点,服务还可以继续使用。redis保证最终一致性。
2023-03-14 23:19:30
384
原创 redis系列2——基本数据结构编码方式
redis基本数据结构编码方式SDS、hashtable、intset、ziplist、quicklist、skiplist
2023-03-09 11:53:08
333
1
原创 redis系列1——基本数据结构
redis基本数据结构包含string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、HyperLogLog(基数统计算法)、GEO(地理信息定位)。
2023-03-07 10:59:26
215
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人