RabbitMQ高级使用
概述
在支付场景中,支付成功后利用RabbitMQ通知交易服务,更新业务订单状态为已支付。但是大家思考一下,如果这里MQ通知失败,支付服务中支付流水显示支付成功,而交易服务中的订单状态却显示未支付,数据出现了不一致。此时前端发送请求查询支付状态时,肯定是查询交易服务状态,会发现业务订单未支付,而用户自己知道已 ...
Java 原生异步编程与Spring 异步编程 详解
简介
Java 异步编程是现代高性能应用开发的核心技术之一,它允许程序在执行耗时操作(如网络请求、文件 IO)时不必阻塞主线程,从而提高系统吞吐量和响应性。
异步 vs 同步
同步:任务按顺序执行,后续任务需等待前任务完成。
public String syncTask() {
// 模拟耗时操作
Thread.sleep(1000);
return "Resul ...
物联网之使用Vertx实现MQTT-Server最佳实践【响应式】
小伙伴们,你们好呀,我是老寇,跟我一起学习使用Vertx实现MQTT-Server
实现MQTT-Server【响应式】
vertx-mqtt地址
实现思路
1.启动MQTT Server并绑定很多端口记录到缓存,服务注册到Nacos,通过接口的方式获取IP和端口【负载均衡】
2.MQTT Client连接MQTT Server并上报数据
3.MQTT Server接收到数据并通过MQ转发出去
代码 ...
sensitive-word-admin v2.0.0 全新 ui 版本发布!vue+前后端分离
前言
sensitive-word-admin 最初的定位是让大家知道如何使用 sensitive-word,所以开始想做个简单的例子。
不过秉持着把一个工具做好的原则,也收到很多小伙伴的建议。
v2.0.0 在 ruoyi-vue(也非常感谢若依作者多年来的无私奉献) 的基础之上,对整体 UI 进行重构。
为了实现一个让用户可以开箱就用的敏感词控台。
项目介 ...
RabbitMQ基础入门
RabbitMQ介绍
RabbitMQ是基于Erlang语言开发的开源消息通信中间件,官网地址:
Messaging that just works — RabbitMQ
接下来,我们就学习它的基本概念和基础用法。
安装
在安装命令中有两个映射的端口:
15672:RabbitMQ提供的管理控制台的端口
5672:RabbitMQ的消息发送处理接口
安装完成后,访问 http://127.0.0.1:15 ...
程序员一线裸辞回老家了,真香!
大家好,我是R哥。
这次要分享的,是一个让人既感动、又佩服、又励志的面试逆袭故事。
这个兄弟我管他叫小方吧,双非本科、30+、非科班出身,之前一直在一线城市打拼,过着租房、加班、通勤三点一线的生活,虽然努力、踏实,也算混得还可以。
但是,在外面呆久了,家里长辈年龄都大了,他突然意识到:不能再留在一线城市了 ...
将数据导出 Excel 并异步发送到指定邮箱:一次性能优化实战
使用 Spring Boot 实现 Excel 导出 + 邮件异步发送功能,解决接口阻塞问题
一、背景介绍最近我在开发一个跑团管理系统的数据导出功能,需求是将用户查询的成员信息、跑量统计等数据导出为 Excel 文件,并通过邮件自动发送至指定邮箱,而非让用户手动下载文件。虽然功能逻辑看起来不复杂,但在实际开发过程中遇到了一些关键 ...
如何压缩pdf文件大小,完全免费?
前言
大家好,我是小徐啊。我们在开发Java应用的时候,经常是需要和PDF文档打交道的。
这极大地帮助我们提高了开发效率。
今天,小徐要来聊一聊,如何利用工具,将pdf文档压缩大小,方便我们上传,最重要的是,这是完全免费的。一起来看下吧!
如何压缩pdf文件大小,完全免费?
首先,我们打开微信,在搜索框里面,输入pdf ...
Java实现minio上传文件加解密操作
一、背景与需求
在云存储场景中,数据安全是核心需求之一。MinIO作为高性能对象存储服务,支持通过客户端加密(CSE)在数据上传前完成加密,确保即使存储服务器被攻破,攻击者也无法获取明文数据。本文将详解如何通过Java实现MinIO文件的加密上传与解密下载,结合AES对称加密算法和BouncyCastle加密库,提供完整代码示例及 ...
Redis 8.0 正式发布,宣布再次开源!!
大家好,我是R哥。
前几天 Redis 官方发布了一个重磅消息:Redis 8.0 正式发布!这次发布,不仅是版本号的迭代,更是一次态度上的回归——它宣布重新开源了!
你是不是好奇,Redis 本来不就是开源的吗?
不,从 Redis 7.4 开始,它就悄悄把核心协议换了:
没错,Redis 7.4 不是真正的 “开源” 了,它把核心协议换成了 SS ...
SpringBoot三大组件之拦截器(Interceptor)
一、概述
在Spring Boot中,拦截器是一种用于拦截和处理HTTP请求的机制。它是Spring框架提供的一种中间件,用于在请求到达控制器(Controller)之前或之后执行一些共享的逻辑。
Spring Boot的拦截器基于Spring MVC框架中的HandlerInterceptor接口实现。通过创建一个自定义的拦截器类并实现HandlerInterceptor接口,可以定义 ...
SpringBoot三大组件之过滤器(Filter)
一、概述
1.1 含义
过滤器是Web三大组件之一,也是项目中常用的工具。过滤器由Servlet提供,基于函数回调实现链式对网络请求和响应的拦截与修改。由于基于Servlet,几乎可以拦截Web服务器管理的所有资源(JSP、图片文件、HTML文件、CSS文件等)。
定义过滤器需要实现javax.servlet.Filter接口。过滤器不是Servlet,无法直接 ...
【Elasticsearch】一文读懂ES向量搜索:原理剖析与技术全景
大家好,我是大任,今天给大家分享一下Elasticsearch的向量搜索技术
注:本文若未说明ES版本则为7.10,其他版本会特别标记,由于ES版本不同,部分差异较大,具体请以官方文档为准
一、向量搜索的核心原理
1.1 向量化表示的本质
现代AI技术将文本、图像等非结构化数据转化为高维向量(通常128-1024维),这些向量在数学空 ...
公司新招了个牛逼的架构师,把代码重构了一遍,老板决定裁掉一半人...架构师也被搞走!
大家好,我是R哥。
最近看到一个很有意思的话题:
看完真让我哭笑不得。。
这件事可不是段子,而是真实的行业写照,虽然说不是每家公司都这么干,但这种现象在国内也并不少见。
有能力、有追求的技术人想做点事,碰到的不是技术挑战,而是职场人性难题。
说到底,这位架构师的问题不是技术不行,而是太理想主义。他以为把 ...
Excel如何插入指定数量的行或列?
前言
大家好,我是小徐啊。Excel是我们在Java开发的时候,常用到的软件,非常方便,能帮助我们快速开发应用。
然后,有时候,我们需要在Excel里面进行数据的插入,比如插入几行或者几列。
今天,小徐就来介绍在如何在Excel里面插入指定数量的行或者指定数量的列。
Excel如何插入指定数量的行或列?
首先,我们选中要插入的 ...
双一流硕二,从焦虑到拿下顶级互联网大厂实习 offer!
大家好,我是R哥。
近几年,每到十月份前后,喜欢逛知乎的同学一定能看到类似热帖——如何看待 202X 年秋招 XXX 岗哀鸿遍野?
当然,类似标题的帖子还有——如何看待 202X 年秋招 XXX 岗灰飞烟灭/普天同庆/直接破防?
那么作为 2026 届的同学,如何避免成为这些热帖中吐槽的一员呢?
答案就是——尽早布局。
这不,已经有好 ...
PDF如何免费拆分?免费编辑?
前言
大家好,我是小徐啊。我们在开发Java应用的时候,经常是需要使用PDF文档的。
有的时候,我们的PDF是很多内容荷载一起的,我们想要拆分PDF文档,但是,有些工具是不支持的,而且不是免费的。
今天,小徐就来介绍一款免费的PDF文档拆分工具,免费PDF编辑器。
如何使用PDF编辑器,拆分PDF
首先,我们打开微信,在搜索框里 ...
数字马力的职级与待遇,程序员必看!
大家好,我是R哥。
最近面试辅导又有兄弟挺进数字马力了,学历:双非本科,坐标:郑州,他找我的目的就是想进数字马力,没想到在他和导师的共同努力下,目标竟然达成了。
关于数字马力,很多人还不了解,以为数字马力是外包,我们面试辅导了一些人进去,也还有双非的同学拿到数字马力的 offer 还犹豫还要不要去。。
和之前 ...
编写一段代码,使其必定产生死锁
编写一段代码,使得这段代码必定会产生死锁
使用Thread.sleep
以下是一个经典的 Java 死锁实现,通过两个线程互相持有对方需要的锁来确保必定发生死锁:
public class DeadlockDemo {
// 创建两个锁对象
private static final Object lock1 = new Object();
private static final Object lock2 = new Object(); ...
spring详解-循环依赖的解决
Spring循环依赖
重点提示: 本文都快写完了,发现“丈夫” 的英文是husband....... 在“②有AOP循环依赖” 改过来了,前面用到的位置太多了就没改。我是说怎么idea的hansband英文下面怎么有波浪线。各位能够理解意思就行,英文拼写不要过于在意.
1.案例引入
在这篇文章中,"②容器刷新"这一小节,留下了如下这样一个疑问。 ...