RabbitMQ 延时队列

​ 上一章介绍了RabbitMQ中死信队列的使用,接下来介绍RabbitMQ中延时队列的使用,包括队列TTL,消息TTL和RabbitMQ延迟插件。

定时任务

阅读全文

RabbitMQ 死信队列

​ 上一章介绍了RabbitMQ在SpringBoot项目中简单队列的使用,介绍RabbitMQ的死信队列的使用。

​ 为了保证订单业务的消息数据不丢失,需要使用到RabbitMQ的死信队列机制,当消息消费发生异常时,将消息投入死信队列中。死信是RabbitMQ中的一种消息机制 ,当消息被拒绝或者超出ttl,队列消息数量达到最大数量时,消息会成为死信。如果配置了死信队列信息,那么该消息将会被丢进死信队列中,如果没有配置,则该消息将会被丢弃。

阅读全文

RabbitMQ消息队列

​ 上一章介绍了RabbitMQ的安装与配置,本章基于SpringBoot项目,介绍RabbitMQ的消息队列的简单使用。

消息队列

阅读全文

RabbitMQ的安装与配置

RabbitMQ 是一个在AMQP协议标准基础上完整、可复用的消息系统。采用 Erlang 实现的工业级消息队列。

rabbitmq.png

阅读全文

JVM 生命周期

JVM实例对应一个独立运行的Java程序(进程级别)。当启动一个Java程序时,一个JVM实例诞生;当程序关闭/退出时,这个JVM也随之消亡。如果一台机器上同时运行多个Java程序,将产生多个JVM实例。

  • JVM实例的诞生:启动Java程序,任何一个由main函数的class都可以作为JVM实例运行的起点。

阅读全文

MYSQL 定时任务

需要简单3步,此处记录下:

  • 开启数据库任务调度

  • 创建存储过程

阅读全文

JVM 内存结构(运行时数据区)

​ JVM类加载器将类数据的字节码.Class文件加载到内存,并对数据进行验证、准备、解析、初始化。最终加载到运行数据区。JVM运行时会分配好方法区和堆,每遇到一个线程,就会为其分配一个程序计数器、Java栈、本地方法栈。当线程终止时,程序计数器、Java栈、本地方法栈所占用的内存空间会被释放掉。
方法区、堆 是线程共享; 程序计数器、Java栈和本地方法栈 是非线程共享。GC只发生在线程共享的区域(大部分发生在堆上)

阅读全文

Windows 系统下关闭被占用端口的进程

查看端口被占用情况,然后直接根据进程号杀死进程即可。涉及命令:

  • netstat -ano : 查看所有端口号
  • netstat -ano|findstr 端口号 : 查看特定端口号使用情况
  • taskkill /pid 进程号 /f

阅读全文

JVM 类加载器

JVM 把描述类数据从Class文件加载到内存,然后经过校验、转换解析和初始化,最终形成能被JVM直接使用的Java类型,这就是JVM的类加载机制。

一般类从加载到内存 到 卸载出内存到整个过程分为 7 个阶段 : 加载、 验证、 准备、 解析、 初始化、 使用 和 卸载

阅读全文

Spring AOP 简单实践

本文介绍下Spring AOP的简单实例,功能很简单,给类或者方法添加日志功能。

准备

使用IDEA新建Maven项目,添加SpringBoot相关配置和依赖(或直接新建SpringBoot项目)。

阅读全文