批处理 vs 流处理,如何选择? 发表于 2024-07-12 更新于 2024-07-13 分类于 Java 本文字数: 3.3k 阅读时长 ≈ 3 分钟 在大数据时代,我们常常需要处理各种量级以及不同场景的数据,通常有`批处理(Batch Processing)`和`流处理(Stream Processing)` 两种方式,那么它们是如何工作的?两者之间有存在什么区别?我们又该如何选择?这篇文章我们将一一解答这些问题。 阅读全文 »
Java函数式接口,一文彻底剖析! 发表于 2024-07-10 更新于 2024-07-11 分类于 Java 本文字数: 9.9k 阅读时长 ≈ 9 分钟 自从 Java 8 引入函数式编程后,给很多 Java 程序员带来了福音,函数式编程是一种专注于使用函数来创建清晰简洁的代码的范式,它不像传统的命令式编程那样修改数据和维护状态,而是将函数视为一等公民。这样就可以将它们分配给变量,作为参数传递,并从其他函数返回,这种方法可以使代码更易于理解和推理。 阅读全文 »
程序员需要掌握的 5种编程范式! 发表于 2024-07-10 更新于 2024-10-11 分类于 系统设计 本文字数: 5k 阅读时长 ≈ 5 分钟 编程范式本应该是程序员的一个常识,但是日常工作中发现很多程序员对它不熟悉,因此,这篇文章,我们一起来分析下常见的几种编程范式。 阅读全文 »
Spring Security是如何工作的? 发表于 2024-07-09 分类于 系统设计 本文字数: 7.4k 阅读时长 ≈ 7 分钟 Spring Security 是一个帮助保护企业应用程序的框架。通过与 Spring MVC、Spring Webflux 或 Spring Boot 集成,我们可以创建一个功能强大且高度可定制的身份验证和访问控制框架。在本文中,我们将解释核心概念,并仔细研究 Spring Security 提供的默认配置以及它们的工作原理。 阅读全文 »
什么是幂等性? 发表于 2024-07-07 分类于 系统设计 本文字数: 3.8k 阅读时长 ≈ 3 分钟 随着互联网的快速发展,诸如云计算、微服务、开源工具和基于容器交付等技术,使得应用程序在日益复杂的环境中更加分散,因此,追踪请求在分布式系统中链路变得至关重要。 阅读全文 »
分布式追踪是如何工作的? 发表于 2024-07-06 分类于 系统设计 本文字数: 4.2k 阅读时长 ≈ 4 分钟 随着互联网的快速发展,诸如云计算、微服务、开源工具和基于容器交付等技术,使得应用程序在日益复杂的环境中更加分散,因此,追踪请求在分布式系统中链路变得至关重要。 阅读全文 »
同步通信 vs 异步通信,如何选择? 发表于 2024-07-05 更新于 2024-08-03 分类于 系统设计 本文字数: 1.8k 阅读时长 ≈ 2 分钟 在日常工作中,我们经常会遇到同步通信和异步通信这两种常见的通信方式,它们主要用于计算机网络、分布式系统和并发编程中,这篇文章,我们将分析两者之间的差异点以及该如何选择? 阅读全文 »
在分布式系统中,服务发现是如何工作的? 发表于 2024-07-04 更新于 2024-07-03 分类于 Spring 本文字数: 2.2k 阅读时长 ≈ 2 分钟 在分布式系统中,多个服务需要在网络上相互交互,因此,我们需要一种机制使得这些服务能够有效地相互查找和通信,而本文,我们将探讨分布式系统中常见的一种方案:服务发现。 阅读全文 »
系统设计中的垂直扩展和水平扩展,该如何选择? 发表于 2024-06-27 分类于 系统设计 本文字数: 2k 阅读时长 ≈ 2 分钟 在系统设计时,我们需要预估系统的容量,但是,随着系统流量的增大,我们会通过扩容来应对流量,常见的扩容方式是垂直扩展和水平扩展,因此,这本文章,我们将深入探讨这两种扩展策略的优缺点以及该如何选择? 阅读全文 »
Google二面:聊聊系统设计思路!(推荐阅读) 发表于 2024-06-27 分类于 系统设计 本文字数: 3.7k 阅读时长 ≈ 3 分钟 不管是技术面试,还是日常开发,系统设计都是一个非常具备挑战性的技术点,特别是往技术管理岗或者高P岗位发展时,系统设计能力更是一个必备技能,因此,有没有什么结构化的方法,可以帮助我们更好地驾驭它呢?这篇文章,我们将通过详细步骤来分析如何设计系统。 阅读全文 »