自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RocketMQ系列5——5.X版本延迟消息

延迟消息5.X版本比4.X版本新增了配置,支持自定义任意延迟时间。延迟消息实现任意时间的任务是基于时间轮做的,时间轮存储定时任务的环形队列,底层采用数组实现,数组中的每一个元素可以存放一个定时任务。

2023-06-15 14:20:14 2411

原创 JVM系列6——垃圾收集底层算法实现-三色标记算法

JVM判断对象是否存活的算法一般会采用可达性分析和引用计数法。引用计数法会存在循环引用的问题,比如两个对象相互引用,就形成了一个环形结构,一直无法被回收。可达性分析的过程STW时间长,在整个可达性分析阶段都需要STW,避免对象的状态发生变化,导致停顿时间长,影响了整体的性能。为了解决这两个算法的已知问题,引入了三色标记算法。

2023-06-06 18:45:00 165

原创 JVM系列5——垃圾收集器

java堆主要分为新生代和老年代两部分,新生代主要使用复制或者标记清除垃圾回收算法,老年代使用标记整理回收算法。java虚拟机提供了不同的收集器。垃圾收集的目标范围整个新生代(Minor GC)或者整个老年代(Major GC)或者整个Java堆(Full GC)。下图展示了七种作用于不同分代的收集器,如果两个收集器存在关联可以搭配使用。

2023-06-06 12:03:00 1666

原创 JVM系列4——垃圾回收算法

垃圾回收算法包含标记-清除、标记-复制、标记-整理、分代回收算法。

2023-06-05 15:32:38 147

原创 JVM系列3——对象创建过程

包含创建对象的过程、对象的内存布局、对象的访问定位以及对象内存分配。

2023-06-05 15:16:18 271

原创 JVM系列2——JVM运行时数据区域

对于java程序员来说,在虚拟机自动内存管理机制的帮助下,不在需要为每一个new的操作去写对应的delete的代码,不容易出现内存泄漏和内存溢出的问题,也就是由JVM(Java虚拟机)来控制内存。java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。每个区域有各自的用途,以及创建和销毁的时间。JVM(Java虚拟机)所管理的内存将会包括以下几个运行时数据区域。jdk版本不一样内存区域的划分不一样。

2023-06-05 15:00:50 43

原创 JVM系列1——类加载机制

使用java命令运行某个类的main函数启动程序时,首选需要通过类加载器把主类加载到JVM。类加载过程为加载->验证->准备->解析->初始化->使用->卸载七个阶段。

2023-04-18 20:02:13 576

原创 RocketMQ系列6——事务消息

RocketMQ在4.3.0版中支持分布式事务消息,这里RocketMQ的事务消息是采用2PC(两段式协议) +补偿机制(消息回查)的分布式事务功能。提供消息发送与业务落库的一致性。

2023-03-31 11:38:43 2548

原创 泛型

泛型是jdk5引入的类型机制,将类型参数化。泛型机制将类型转换时的类型检查从运行时提前到了编译时,使用泛型编写的代码比杂乱的使用object并在需要时再强制类型转换的机制具有更好的可读性和安全性。在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。

2023-03-29 20:04:29 57

原创 RocketMQ系列5——4.X版本延迟消息

延迟消息是在业务场景中比较常用的功能,可以作为延迟队列。比如订单n分钟未支付自动取消,活动倒计时,定时发消息都可以使用到延迟消息。

2023-03-29 19:38:44 3365 1

原创 RocketMQ系列4——负载均衡

RocketMQ中的负载均衡主要分为Producer端发送消息时候的负载均衡和Consumer端订阅消息的负载均衡。

2023-03-29 19:34:38 1132

原创 RocketMQ系列3——消息存储

数据持久化存储,当MQ收到一条消息后,需要向生产者返回一个ACK响应,并将消息存储到磁盘文件。MQ Push一条消息给消费者后,等待消费者的ACK响应,需要将消息标记为已消费。如果没有标记为消费,MQ会不断的尝试往消费者推送这条消息。MQ需要定期删除一些过期的消息,这样才能保证服务一直可用。

2023-03-28 17:05:15 1714

原创 RocketMQ系列2——通讯流程

RocketMQ启动的通讯流程介绍

2023-03-27 20:15:57 112

原创 RocketMQ系列1——基础角色介绍

RocketMQ是一个消息中间件,具有高性能、高可靠、高实时、分布式的特点。RocketMQ 技术架构中有四大角色 NameServer 、 Broker 、 Producer 、 Consumer。其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息,NameServer作为注册中心。

2023-03-27 20:13:39 785

原创 MQ(MessageQueue)介绍

MQ(MessageQueue)消息队列,先进先出的数据结构。消息由生产者发送到MQ进行排队,消费者按照顺序进行消费。MQ的优缺点和常用的MQ产品比较。

2023-03-27 20:03:14 317

原创 redis系列6——Cluster模式

Redis3.0版本增加Redis Cluster,Redis Cluster解决了Redis分布式方面的需求。如果遇到并发、流量瓶颈时,用Redis Cluster模式实现负载均衡。

2023-03-16 23:29:05 435

原创 redis系列8——缓存穿透、失效、雪崩

缓存能够加快读写速度,也可以降低数据库或者下游接口的压力。缓存穿透、失效、雪崩相关内容。

2023-03-16 21:38:34 73

原创 redis系列7——过期策略和淘汰策略

redis过期策略和淘汰策略。过期策略分为定时删除和惰性删除。淘汰策略分为针对设置过期时间的key,针对所有key和不处理。

2023-03-16 21:28:44 310

原创 redis系列5——Sentinel模式

Sentinel模式当主节点出现故障时,Redis Sentinel能自动完成故障发现和故障转移并通知应用方,实现了高可用。

2023-03-14 23:32:55 309

原创 redis系列4——复制模式

redis复制模式,实现多个数据相同的redis副本。如果主节点挂了,运维可以让从节点变成主节点,服务还可以继续使用。redis保证最终一致性。

2023-03-14 23:19:30 342

原创 redis系列3——持久化

redis持久化分为RDB(快照)和AOF(日志)和混合持久化三种持久化方式

2023-03-09 23:17:19 495 1

原创 redis系列2——基本数据结构编码方式

redis基本数据结构编码方式SDS、hashtable、intset、ziplist、quicklist、skiplist

2023-03-09 11:53:08 290 1

原创 redis系列1——基本数据结构

redis基本数据结构包含string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、HyperLogLog(基数统计算法)、GEO(地理信息定位)。

2023-03-07 10:59:26 178 1

原创 本地高性能缓存Caffeine

本地高性能缓存Caffeine

2023-03-03 00:32:37 2102 1

空空如也

空空如也

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

TA关注的人

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