#java
  • Java 查看对象布局工具 - Java Object Layout

    引入依赖!-- https://mvnrepository.com/artifact/org.openjdk.jol/jol-core -- dependency groupIdorg.openjdk.jol/groupId artifactIdjol-core/artifactId version0.10/version /depe...

  • JAVA HashMap 中的死循环

    前言在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在并发下必然出现问题。但是,我发现近几年,很多人都经历过这个事(在网上...

  • Redis 分布式锁以及 Redisson 的使用

    场景设计:购买车票,扣减库存 假设存在一个 SpringBoot 的控制器,其扣减库存的业务逻辑如下: @Autowired private StringRedisTemplate stringRedisTemplate; @RequestMapping(value = buy) public String but() { // 将商品库存获取...

  • RabbitMQ 消息队列:SpringBoot 整合 RabbitMQ

    准备工作:导包: !-- RabbitMQ -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-amqp/artifactId /dependency 配置 yml 文件: spring: application: ...

  • Redis 发布订阅:监听 Key 失效事件实现自动清理 markdown 编辑器产生的废弃图片

    在使用 markdown 编辑发布文章,在需要上传图片的时候,markdown 编辑器上传需要回调链接形式的图片,只能选择直接上传到服务器,然后回调图片链接以达到上传即可预览的效果,但这样带了的问题就是,假如上传了图片到服务器,但后来觉得不需要图片直接删除了,这时你删除的只是文本编辑框中的图片链接,真正的图片文件还躺在服务器中,这样会造成服务器堆积不需要使...

  • RabbitMQ 消息队列:Confirm、Return 机制以及 TTL、死信队列

    Confirm 机制 放入队列中的消息,如何知道它是否成功发送?我们可以引入 Confirm 机制,只要发送消息到队列中是成功的,队列会给我们返回一个结果 生...

  • RabbitMQ 消息队列:五种消息通讯模型

    RabbitMQ消息模型 RabbitMQ 提供了6种消息模型,但是第6种其实是RPC,并不是MQ,因此不予学习。那么也就剩下5种。但是其实3、4、5这三种都属...

  • RabbitMQ 消息队列:安装使用以及 web 管理器

    消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。其主要用途:不同...

  • Redis 持久化配置以及主从模式、哨兵模式、集群模式的简单使用

    Redis 实现持久化我们说 Redis 是基于内存的、所以速度快、但是 Redis 的数据放到内存里面、当 Redis 重启的时候,这个数据会发生丢失。假设我们能把写入到内存的数据、持久化到硬盘 那是不是就能保证我们的数据即使发生丢失 也不会全部丢失、或者全部不丢失呢?于是,Redis的持久化就产生了,默认情况下 Redis本身也是有持久化策略的 RDB...

  • Redis 的安装与常见的基本命令

    Redis 是什么?Redis 是一个基于键值对(key value)存储结构的 no sql 数据库 Redis 能干什么?数据缓存、秒杀、实现 session 共享、分布式锁等待… Redis 的特点 Redis 是基于内存的,存储速度快,但如果出现了断电,那么内存中的数据会发生丢失,所以 Redis 的使用场景一定是对数据的要求不是那么严格的Redis...