摘要:
延迟队列是指当消息被发送以后,并不是立即执行,而是等待特定的时间后,消费者才会执行该消息。 延迟队列的使用场景有以下几种: 1. 未按时支付的订单,30 分钟过期之后取消订单。 2. 给活跃度比较低的用户间隔 N 天之后推送消息,提高活跃度。 3. 新注册会员的用户,等待几分钟之后发送欢迎邮件等。
阅读全文
posted @ 2023-09-05 16:00
磊哥|www.javacn.site
阅读(990)
推荐(1)
摘要:
负载均衡策略是实现负载均衡器的关键,而负载均衡器又是分布式系统中不可或缺的重要组件。使用它有助于提高系统的整体性能、可用性、可靠性和安全性,同时支持系统的扩展和故障容忍性。对于处理大量请求的应用程序和微服务架构来说,负载均衡器是不可或缺的重要工具。 ## 负载均衡分类 负载均衡分为服务器端负载均衡和
阅读全文
posted @ 2023-09-01 15:35
磊哥|www.javacn.site
阅读(341)
推荐(0)
摘要:
限流是一种控制访问速率的策略,用于限制系统、服务或API接口的请求频率或数量。它的目的是为了保护系统免受过多请求的影响,防止系统因过载而崩溃或变得不可用。限流是一种重要的性能优化和资源保护机制。 限流的好处有以下几个: - **保护系统稳定性**:如果系统接受太多请求,超出了其处理能力,可能导致系统
阅读全文
posted @ 2023-08-25 17:02
磊哥|www.javacn.site
阅读(2096)
推荐(3)
摘要:
首先来说 Redis 作为一个独立的三方系统,其天生的优势就是可以作为一个分布式系统来使用,因此使用 Redis 实现的锁都是分布式锁,理解了这个概念才能看懂本文所说的内容。 分布式锁的示意图,如下所示: 
推荐(0)
摘要:
HttpServletRequest 简称 Request,它是一个 Servlet API 提供的对象,用于获取客户端发起的 HTTP 请求信息。例如:获取请求参数、获取请求头、获取 Session 会话信息、获取请求的 IP 地址等信息。 那么问题来了,在 Spring Boot 中,获取 Re
阅读全文
posted @ 2023-08-14 17:48
磊哥|www.javacn.site
阅读(1080)
推荐(1)
摘要:
幻读是 MySQL 中一个非常普遍,且面试中经常被问到的问题,如果你还搞不懂什么是幻读?什么是 MVCC?以及 MySQL 中的锁?那么请好好收藏和阅读本篇文章,因为它非常重要。 ## RR 隔离级别 在 MySQL 中,RR 代表 Repeatable Read(可重复读),是数据库事务隔离级别中
阅读全文
posted @ 2023-08-09 17:26
磊哥|www.javacn.site
阅读(778)
推荐(0)
摘要:
无论是在项目开发中,还是在面试中过程中,总会被问到或使用到并发编程来完成项目中的某个功能。 例如某个复杂的查询,无法使用一个查询语句来完成此功能,此时我们就需要执行多个查询语句,然后再将各自查询的结果,组装之后返回给前端了,那么这种场景下,我们就必须使用线程池来进行并发查询了。 > PS:磊哥做的最
阅读全文
posted @ 2023-08-04 11:25
磊哥|www.javacn.site
阅读(1000)
推荐(1)
摘要:
线程通信是指多个线程之间通过某种机制进行协调和交互,例如,线程等待和通知机制就是线程通讯的主要手段之一。 在 Java 中,线程等待和通知的实现手段有以下几种方式: 1. Object 类下的 wait()、notify() 和 notifyAll() 方法; 2. Condition 类下的 aw
阅读全文
posted @ 2023-08-03 16:12
磊哥|www.javacn.site
阅读(113)
推荐(0)
摘要:
在分布式事务中,通常使用两阶段协议或三阶段协议来保障分布式事务的正常运行,它也是 X/Open 公司定义的一套分布式事务标准。 > X/Open 公司是由多家国际计算机厂商所组成的联盟组织,它建立之初是为了向 UNIX 环境提供标准。 分布式事务是指在分布式系统中,多个节点之间进行的事务操作。比如在
阅读全文
posted @ 2023-07-27 09:24
磊哥|www.javacn.site
阅读(3937)
推荐(0)
摘要:
话说 TP-LINK 联洲的秋招提前批已经开启很久了,6 月份就已经开启了,并且最近已经有人陆陆续续拿到口头 Offer 了,所以今天就来给大家介绍一下 TP-LINK 的面试流程和真题及答案解析。 ## 秋招提前批投递地址 官网投递地址:[https://hr.tp-link.com.cn/job
阅读全文
posted @ 2023-07-11 13:25
磊哥|www.javacn.site
阅读(351)
推荐(0)
摘要:
问题来源于某客,如下图所示: 
推荐(0)
摘要:
问题来源如下: > 问题链接:[https://www.nowcoder.com/discuss/493178141461041152](https://www.nowcoder.com/discuss/493178141461041152) # 答案解析 ## 1.解释脏读/不可重复读/幻读 -
阅读全文
posted @ 2023-06-29 11:41
磊哥|www.javacn.site
阅读(180)
推荐(0)
摘要:
今天分享的这道题来自于蔚来的真实面试题。 Java 面试不可能不问 Redis,问到 Redis 不可能不问 Redis 的常用数据类型,问到 Redis 的常用数据类型,不可能不问跳跃表,当问到跳跃表经常会被问到跳跃表的查询和添加流程,所以接下来我们一起来看这道题的答案吧。 Redis 有序集合
阅读全文
posted @ 2023-06-27 16:42
磊哥|www.javacn.site
阅读(244)
推荐(0)
摘要:
最近朋友圈被阿里的 Chat2DB 刷屏了,磊哥也是第一时间下载并体验了阿里巴巴的 Chat2DB,今天就迫不及待和大家分享一下。 ## 什么是 Chat2DB? Chat2DB 是一款由阿里巴巴开源免费的多数据库客户端工具,支持 windows、mac 本地安装,也支持服务器端部署,web网页访问
阅读全文
posted @ 2023-06-26 09:30
磊哥|www.javacn.site
阅读(2607)
推荐(0)
摘要:
问题如下: 
推荐(0)
摘要:
MVCC 和间隙锁是两种完全不同的机制,但它们的目的都是相同的,都是用来保证数据库并发访问的,我们先来看二者的定义。 MVCC 定义 MVCC 是多版本并发控制(Multi-Version Concurrency Control)的缩写,是一种并发控制的方法。 在 MVCC 中,每个读操作会看到一个
阅读全文
posted @ 2023-03-26 21:31
磊哥|www.javacn.site
阅读(388)
推荐(0)
摘要:
限流的实现算法有很多,但常见的限流算法有三种:计数器算法、漏桶算法和令牌桶算法。 1.计数器算法 计数器算法是在一定的时间间隔里,记录请求次数,当请求次数超过该时间限制时,就把计数器清零,然后重新计算。当请求次数超过间隔内的最大次数时,拒绝访问。 计数器算法的实现比较简单,但存在“突刺现象”。 突刺
阅读全文
posted @ 2023-02-20 07:35
磊哥|www.javacn.site
阅读(262)
推荐(0)
摘要:
熔断和降级都是系统自我保护的一种机制,但二者又有所不同,它们的区别主要体现在以下几点: 概念不同 触发条件不同 归属关系不同 1.概念不同 1.1 熔断概念 “熔断”一词早期来自股票市场。熔断(Circuit Breaker)也叫自动停盘机制,是指当股指波幅达到规定的熔断点时,交易所为控制风险采取的
阅读全文
posted @ 2023-02-17 08:31
磊哥|www.javacn.site
阅读(5018)
推荐(0)
摘要:
在 JVM 中,有两个非常重要的知识点,一个是 JVM 的内存布局(JVM 运行时的数据区域),另一个就是垃圾回收。而垃圾回收中又有两个重要的知识点,一个是如何确定 JVM 中的垃圾对象,另一个是使用不同的垃圾收集器进行垃圾回收。而本篇要讨论的是前者,后面的内容咱们下一篇再聊。 垃圾对象的判定有两种
阅读全文
posted @ 2023-02-16 08:00
磊哥|www.javacn.site
阅读(570)
推荐(1)
摘要:
宽表在BI业务中比比皆是,每次建设BI系统时首先要做的就是准备宽表。有时系统中的宽表可能会有上千个字段,经常因为“过宽”超过了数据库表字段数量限制还要再拆分。 为什么大家乐此不疲地造宽表呢?主要原因有两个。 一是为了提高查询性能。现代BI通常使用关系数据库作为后台,而SQL通常使用的HASH JOI
阅读全文
posted @ 2023-02-15 08:20
磊哥|www.javacn.site
阅读(492)
推荐(0)
摘要:
永久代和元空间都是 HotSpot 虚拟机中的概念,HotSpot 虚拟机是 Sun JDK 和 Open JDK 中自带的虚拟机,也是目前使用范围最广泛的 Java 虚拟机,当我们提到虚拟机时,大概率指的就是 HotSpot 虚拟机。 但从《Java 虚拟机规范》的层面来说,并没有所谓的“永久代”
阅读全文
posted @ 2023-02-13 08:37
磊哥|www.javacn.site
阅读(586)
推荐(1)
摘要:
对于 JVM(Java 虚拟机)来说,它有两个非常重要的区域,一个是栈(Java 虚拟机栈),另一个是堆。堆是 JVM 的存储单位,所有的对象和数组都是存储在此区域的;而栈是 JVM 的运行单位,它主管 Java 程序运行的。那么为什么它有这样的魔力?它存储的又是什么数据?接下来,我们一起来看。 1
阅读全文
posted @ 2023-02-09 08:40
磊哥|www.javacn.site
阅读(800)
推荐(1)
摘要:
我们通常所说的 Java 虚拟机(JVM)的内存布局,一般是指 Java 虚拟机的运行时数据区(Runtime Data Area),也就是当字节码被类加载器加载之后的执行区域划分。当然它通常是 JVM 模块的第一个面试问题,所以,接下来我们一起来看它里面包含了哪些内容。 官方定义 《Java虚拟机
阅读全文
posted @ 2023-02-06 20:19
磊哥|www.javacn.site
阅读(693)
推荐(1)
摘要:
双亲委派模型是 Java 类加载器的一种工作模式,通过这种工作模式,Java 虚拟机将类文件加载到内存中,这样就保证了 Java 程序能够正常的运行起来。那么双亲委派模型究竟说的是啥呢?接下来我们一起来看。 1.类加载器 双亲委派模型针对的是 Java 虚拟机中三个类加载器的,这三个类加载器分别是:
阅读全文
posted @ 2023-02-03 08:13
磊哥|www.javacn.site
阅读(1009)
推荐(1)
摘要:
在 Java 中,类加载的流程有一个专门的机制叫做“类加载机制”。类加载机制是指一个类在 Java 虚拟机(JVM)中的执行流程,它也是 Java 程序能够正常执行的关键所在,那它的具体执行流程是啥?接下来我们一起来看。 流程概述 在 JVM 中,类加载会经历以下 5 个阶段: 加载阶段(Loadi
阅读全文
posted @ 2023-01-28 10:46
磊哥|www.javacn.site
阅读(581)
推荐(0)