Fork me on GitHub
摘要: 我们在使用 Kafka 时,最简单、最常用的方式是只设置 topic(主题)和 value(消息体),如下所示: 这样的话获取消息的代码也很简单,如下所示: @KafkaListener(topics = "mytopic", groupId = "my-group") public void li 阅读全文
posted @ 2024-08-28 11:34 磊哥|www.javacn.site 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 这是一道非常经典的 Kafka 问题,是关于 Leader 在“异常”情况下的选举问题。 背景 我们知道 Kafka 中的 Partition(分区)是存储消息的最终介质,但 Partition 又有两种分类: Leader Partition:主分区,负责数据写入和读取。 Follower Par 阅读全文
posted @ 2024-08-27 12:11 磊哥|www.javacn.site 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 了解了 Kafka 架构就掌握了 Kafka 最核心的知识,Kafka 作为业界最知名、最流行的消息系统和流式处理组件,在面试中和日常工作中经常会见到。那么今天,我们就来聊聊 Kafka 的架构演化与升级,并通过图解的方式让你一目了然。 1.Kafka 初印象 Kafka 最初由 LinkedIn 阅读全文
posted @ 2024-08-23 16:09 磊哥|www.javacn.site 阅读(5) 评论(0) 推荐(0) 编辑
摘要: MySQL 主从同步是 MySQL 集群方案中的一种,也是实现难度最低的一种。 然而,现在的面试都不问 MySQL 主从同步原理了,而是开始问主从同步怎么保证数据一致性问题了。 所以,今天就给大家安排上了。 1.什么是数据一致性? 数据一致性是指在一个系统中,数据在不同的部分、不同的时间点,以及不同 阅读全文
posted @ 2024-08-20 16:12 磊哥|www.javacn.site 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 设计模式是前辈们经过实践验证总结的解决方案,帮助我们构建出更具可维护性、可扩展性和可读性的代码。当然,在面试的过程中,也会或多或少的被问到。那么今天,我们就来看一道设计模式中的常见面试问题:JDK 中都用了哪些设计模式? 我按照大家比较熟悉且好理解的方式,把 JDK 中使用的设计模式总结了一下,如下 阅读全文
posted @ 2024-08-15 15:53 磊哥|www.javacn.site 阅读(85) 评论(1) 推荐(0) 编辑
摘要: volatile 是并发编程中的重要关键字,它的名气甚至是可以与 synchronized、ReentrantLock 等齐名,也是属于并发编程五杰之一。 需要注意的是 volatile 并不能保证原子性,因此使用 volatile 并没有办法保证线程安全。 并发编程五杰: PS:“并发编程五杰”是 阅读全文
posted @ 2024-08-14 11:59 磊哥|www.javacn.site 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 在实际项目开发中,并发编程一定会用(提升程序的执行效率),而用到并发编程那么锁机制就一定会用,因为锁是保证并发编程的主要手段。 在 Java 中常用的锁有以下几个: synchronized(内置锁):Java 语言内置的关键字,JVM 层级锁实现,使用起来较为简单直观。 ReentrantLock 阅读全文
posted @ 2024-08-12 17:23 磊哥|www.javacn.site 阅读(105) 评论(0) 推荐(2) 编辑
摘要: CMS(Concurrent Mark Sweep)垃圾收集器是以“最短的停顿”著称的垃圾回收器,因此也是 JDK 9 之前使用最广泛的垃圾回收器之一。那么,问题来了,为什么 CMS 能实现最短停顿时间?CMS 垃圾回收器的工作原理又是啥呢?接下来,我们一起来看。 CMS 工作原理 CMS 之所以能 阅读全文
posted @ 2024-08-09 16:47 磊哥|www.javacn.site 阅读(25) 评论(0) 推荐(0) 编辑
摘要: MySQL 作为关系型数据库的典型代表,其流行程度超越于任何数据库,因此在 Java 面试中,MySQL 是一定会被问到的重要知识点。而在 MySQL 中有一道极其常见的面试题,我们这里系统的来看一下,这就是我们今天要讨论的 MySQL 调优问题。 MySQL 调优的大体思路如下: 具体调优思路如下 阅读全文
posted @ 2024-08-08 16:57 磊哥|www.javacn.site 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 消息队列是面试中一定会被问到的技术模块,虽然它在面试题占比不及并发编程和数据库,但也属于面试中的关键性问题。所以今天我们就来看一道,MQ 中高频,但可能会打破你以往认知的一道面试题。 所谓的关键问题指的是这道面试题会影响你整体面试结果。 我们在面试消息队列(Message Queue,MQ)时,尤其 阅读全文
posted @ 2024-08-06 18:01 磊哥|www.javacn.site 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 项目亮点和项目难点是面试问到项目时,最常问的两个问题,因为之前的文章已经把项目难点的问题分析过了,所以咱们今天来看看怎么回答项目亮点问题。 PS:项目亮点问题是一个能深度考察求职者对项目理解、技术深度掌握情况的一道经典面试题。今天,就让我们深入探讨一下如何回答这个关键问题,才能展现自己的技术实力。 阅读全文
posted @ 2024-08-05 17:42 磊哥|www.javacn.site 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 项目难点是指在项目执行过程中遇到的具有挑战性、复杂性或不确定性的问题和障碍,这些问题可能会影响项目的进度、质量、成本和目标的实现。 我这里提供一些比较常见的难点问题: 具体来说。 1.技术难题 常见的技术难题和解决方案有以下这些: 高并发请求问题:在一个短时间内有大量的用户同时访问服务器或应用程序, 阅读全文
posted @ 2024-08-02 18:06 磊哥|www.javacn.site 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 在 MySQL 集群架构中有两种主流的集群实现,一种是读写分离,而另外一种则是数据分片。所谓的数据分片其实就是今天要聊的分库分表技术。 分库分表技术不但是日常工作中用于解决数据库中的数据量会急剧增长,解决单库单表性能瓶颈的一种方案,更是面试中的高频知识点。 在阿里巴巴的《Java 开发手册》中规定: 阅读全文
posted @ 2024-07-25 17:05 磊哥|www.javacn.site 阅读(190) 评论(0) 推荐(1) 编辑
摘要: 所谓的一致性问题是指,在同时使用缓存和数据库的情况下,要确保数据在缓存与数据库中的更新操作保持同步。也就是当对数据进行修改时,无论是先修改缓存还是先修改数据库,最终都要保证两者的数据是一样的,不会出现数据不一样的问题。 1.一致性问题解决方案 缓存和数据库一致性的经典解决方案有以下两个: 使用延迟双 阅读全文
posted @ 2024-07-23 17:50 磊哥|www.javacn.site 阅读(83) 评论(0) 推荐(0) 编辑
摘要: StampedLock 是 Java 8 引入的一种高级的锁机制,它位于 java.util.concurrent.locks 包中。与传统的读写锁(ReentrantReadWriteLock)相比,StampedLock 提供了更灵活和更高性能的锁解决方案,尤其适用于读操作远多于写操作的场景。 阅读全文
posted @ 2024-07-18 20:03 磊哥|www.javacn.site 阅读(189) 评论(0) 推荐(0) 编辑
摘要: XXL Job 是一个开源的分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展的分布式任务调度框架。 这两天咱们开发的 AI Cloud 项目中,也使用到了 XXL Job 来执行分布式任务的调度,可以看出它的部署和使用虽然步骤很多,但用起来还是很简单的。 因为其本身为 Spri 阅读全文
posted @ 2024-07-17 18:01 磊哥|www.javacn.site 阅读(358) 评论(0) 推荐(1) 编辑
摘要: 使用 RabbitMQ 和 RocketMQ 的人是幸运的,因为这两个 MQ 自身提供了延迟队列的实现,不像用 Kafka 的同学那么苦逼,还要自己实现延迟队列。当然,这都是题外话,今天咱们重点来聊聊 RabbitMQ 延迟队列的实现原理,以及 RabbitMQ 实现延迟队列的优缺点有哪些? 很多人 阅读全文
posted @ 2024-07-16 18:35 磊哥|www.javacn.site 阅读(529) 评论(4) 推荐(2) 编辑
摘要: 萝卜快跑是百度旗下的自动驾驶出行服务平台,提供全无人、半无人、有人驾驶三种模式的出行选择,目前已经正式投放到武汉市场开始运营了。 我们可以通过百度地图 APP、“萝卜快跑”小程序等打到“萝卜快跑”无人驾驶网约车。不过目前“萝卜快跑”只开放了汽车的后排座位,所以一辆车最多能乘坐三人。 也有很多人会担忧 阅读全文
posted @ 2024-07-12 16:46 磊哥|www.javacn.site 阅读(755) 评论(0) 推荐(0) 编辑
摘要: 在职业生涯中,几乎每个 Java 开发者都可能遇到所谓的“空窗期”(一段没有正式工作的时间),而这些空窗期有长有短,短的空窗期一般不用担心,HR 和技术面试官通常不会追究,也不会影响获得面试的机会。 但如果空窗期比较长,那就比较麻烦了,首先它可能会影响你拿到面试机会,其次招聘方也一定会询问空档期长的 阅读全文
posted @ 2024-07-10 17:38 磊哥|www.javacn.site 阅读(40) 评论(0) 推荐(0) 编辑
摘要: @Async 是 Spring 3.0 提供的一个注解,用于标识某类(下的公共方法)或某方法会执行异步调用。 接下来,我们来看下 @Async 的基本使用和实现原理。 1.基本使用 @Async 基本使用可以分为以下 3 步: 项目中开启异步支持 创建异步方法 调用异步方法 1.1 开启异步支持 以 阅读全文
posted @ 2024-07-05 17:44 磊哥|www.javacn.site 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 简历的重要性相信大家都是清楚的,简历的好坏直接决定了面试机会的多少,以及是否有面试机会。 例如,上周我这把一个 92 院校的同学推荐给朋友表哥了,他表哥是某知名电商公司 Leader 级别的人物,他去这个 PDD 已经 5 年了,是位不折不扣的大佬,但推荐的结果却令人感到失望,不出意外的挂掉了,这是 阅读全文
posted @ 2024-07-03 17:18 磊哥|www.javacn.site 阅读(31) 评论(1) 推荐(0) 编辑
摘要: 零拷贝技术和多路复用技术是现代计算机系统和网络编程中两项重要的优化手段,旨在提高数据处理和传输的效率。如高性能框架 Netty 中,即使用了零拷贝技术又使用了多路复用技术,同时来保证 Netty 框架的高性能运行。 1.零拷贝技术 零拷贝(Zero-copy)技术是一种计算机操作系统中用于提高数据传 阅读全文
posted @ 2024-07-01 10:39 磊哥|www.javacn.site 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 要了命了,25 届的大部分同学还在忙学校的期末考试呢,有位重庆邮电大学的帅哥已经拿到了 25 届提前批的 Offer 了,这真是光速啊,如果不是看到 Offer 截图,打死我也不信啊。 而且人家拿的还是深信服的 SP 档的 Offer,啧啧,太强了。 其实这也是情理之中的事,深信服在今年 5 月初就 阅读全文
posted @ 2024-06-27 14:55 磊哥|www.javacn.site 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 这几天面试哈啰,本来以为小小哈啰可以轻松拿捏,但没成想,问的还挺深,差点要了狗命,一起来看看吧~ 创建一个线程时底层发生了什么? 在 Java 中,创建一个线程时,底层发生了以下几个主要步骤: 分配线程栈:线程对象被创建后,Java 虚拟机会为该线程分配一个独立的线程栈(Thread Stack), 阅读全文
posted @ 2024-06-26 08:44 磊哥|www.javacn.site 阅读(64) 评论(0) 推荐(0) 编辑
摘要: JWT(JSON Web Token)一种开放的标准规范(RFC 7519),用于在网络上安全的传输信息,通常被用于身份验证。 简单来说,你可以把 JWT 想象成一张小巧的、自包含的电子通行证。这张通行证里面包含了用户的身份信息,就像你在某个俱乐部的会员卡,上面有你的名字、会员等级等信息,拿着这张卡 阅读全文
posted @ 2024-06-21 14:50 磊哥|www.javacn.site 阅读(154) 评论(0) 推荐(0) 编辑