后端

详解RabbitMQ工作模式之路由模式

目录路由模式概念介绍工作原理特点应用场景实现步骤代码案例引入依赖常量类编写生产者代码编写消费者1代码编写消费者2代码运行代码路由模式概念介绍路由模式是发布订阅模式的变种, 在发布订阅基础上, 增加路由key。 发布订阅模式是⽆条件的将所有消息分发给所有消费者, 路由模式是Exchange根据RoutingKey的规则,将数据筛选后发给对应的消费者队列。工作原理 1.生产者发送消息&#xff1a

LeetCode-230-二叉搜索树中第K小的元素

二叉搜索树中第K小的元素 题目描述:给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。 示例说明请见LeetCode官网。 来源:力扣(LeetCode) 链接: 著作权归领扣网络所有。商业转载请联系

MySQL:CRUD(二)

目录一、截断表1、语法二、插入查询1、语法三、聚合函数1、常用函数(1)COUTN(2)SUM(3)AVG(4)MAX(5)MIN四、Group by分组查询1、语法五、having子句六、内置函数1、日期函数2、字符串处理函数3、数学函数4、其他常用函数一、

Spring Security 教程 (1) 搭建一个极简的安全网站

Spring Security 简介 Spring Security 项目是一个安全框架,提供了认证,授权和常见的网络攻击保护功能。在基于 Spring 开发的应用中,Spring Security 是一个被广泛应用的安全框架,成为了实际的标准。与所有 Spring 项目类似,Spring Security 易于扩展,满足定制要求。主要特点如下: 对认证和授权的全面、可扩展的支持 防范会话固定攻

2025年03月12日 Go生态洞察: Go 1.24 中新增os.Root 防遍历文件 API

2025年03月12日 Go生态洞察: Go 1.24 中新增os.Root 防遍历文件 API 摘要 ✨大家好,我是猫头虎。本篇文章将带你深入探索 Go 1.24 中新增的 os.Root API,全面解析路径遍历(Path Traversal)攻击的原理、传统防御方式的局限,以及 os.Root 提供的跨平台

nginx和gateway的区别

相同点:都是可以实现对[api]接口的拦截,负载均衡、反向代理、请求过滤等,可以实现和网关一样的效果。 a、底层实现 [Nginx]采用C语言编写的 [微服务]都是自己语言编写的 比如Gateway就是java写的。 毕竟Gateway属于Java语言编写的, 能够更好对微服务实现扩展功能,相比Nginx如果想实现扩展功能需要结合Nginx+Lua语言等。 b、负载均衡 Nginx实现[负载均衡]

说说HashMap原理吧?

HashMap主要是由数组和链表组成,它不是线程安全的。 核心点就是put插入数据的过程,get查询数据以及扩容的方式。JDK1.7和1.8的主要区别在于头插和尾插方式的修改,头插容易导致HashMap链表死循环,并且1.8后加入红黑树对性能有提升。 put插入数据流程 往map插入元素的时候,首先通过key 进行hash算法,然后与数组长度-1进行与运算((n - 1) & hash),

Redis集群Lettuce主从切换问题

一、问题描述 Redis Cluster集群,当master宕机,主从切换,客户端报错 timed out 二、原因 SpringBoot2.X版本开始Redis默认的连接池都是采用的Lettuce。当节点发生改变后,Letture默认是不会刷新节点拓扑的。 三、解决方案 3.1 方案一:把lettuce换成jedis 只需要在pom.xml里调整一下依赖的引用 <depende

Java 线程间通信

1. 线程之间如何通信 共享内存(隐式通信) 消息传递(显式通信 wait / notify synchronized) 1.2 阻塞 BLOCKED 和 WAITING 的线程都处于阻塞状态,不占用 CPU 时间片 BLOCKED 线程会在 Owner 线程释放锁时唤醒 WAITING 线程会在 Owner 线程调用 notify 或 notifyAll 时唤醒,但唤醒后并不意味着立刻获得

MySQL系列之数据类型(Numeric)

导览 前言 一、数值类型综述 二、数值类型详解 1. NUMERIC 1.1 UNSIGNED或SIGNED 1.2 数据类型划分 2. Integer类型取值和存储要求 3. Fixed-Point类型取值和存储要求 4. Floating-Point类型取值和存储要求 结语 精彩回放 前言MySQL系列最近三篇均关注了和我们日常工作或学习密切相关