猿java

猿java的博客

进程、线程和协程是程序设计中三个重要的知识点,这篇文章,我们将从概念、通信方式、区别和优缺点等方面深入探讨它们。
阅读全文 »

Netty 是一个基于 Java 的高性能网络应用框架,广泛用于开发高并发和低延迟的网络应用程序,其核心是一个强大的异步事件驱动的网络应用框架,支持 TCP、UDP 和 HTTP 协议。这篇文章,我们将深入探讨 Netty 的线程模型,包括其原理、示例、使用场景以及优缺点。
阅读全文 »

内存溢出(Out of Memory)和内存泄漏(Memory Leak)是我们经常听到的两种内存管理问题,它们是如何导致的?又该如何解决?这篇文章,我们来进行深度分析。
阅读全文 »

Log 是Kafka的核心组件之一,用于持久化存储消息,为了有效管理存储空间和保证系统性能,Kafka 提供了日志保留和数据清理策略。这篇文章,我将详细分析它们的工作原理。
阅读全文 »

Kafka作为一款优秀的分布式消息中间件,内部也存在一些选举机制,这篇文章,我们将详细地分析 Kafka如何实现选择 Leader?
阅读全文 »

在我的技术文章中,经常会通过分析一些核心源码来帮助读者更好地理解该技术点,自己也一直想写一篇文章来介绍如何阅读源码,刚好这段时间在 Google 1面中遇到了类似的题目:如何阅读源代码?因此,这篇文章,我将结合自身的经验以及身边一些小伙伴的经验,聊聊如何高效阅读源代码
阅读全文 »

在很长一段时间里,ZooKeeper都是 Kafka的标配,现如今,Kafka官方已经在慢慢去除ZooKeeper,Kafka 为什么要抛弃 Zookeeper?这篇文章我们来聊聊​其中的缘由。
阅读全文 »

作为一名程序员,代码质量是我们必须守住的底线,那么,如何才能写出优雅且高质量的代码呢?这篇文章,我们将从软件角度和硬件角度进行分析。
阅读全文 »