Elasticsearch 从来都不是一个数据库
25 min本篇是 Elasticsearch Was Never a Database 一文的中文翻译,其讲述 ES 并非是一个数据库的种种理由,你的团队正在将 ES 作为数据库使用,那么你可先思考下,面对文章提到的问题是否都有对应的解决方案。以下是...
DDD 学习笔记:从思想到术语
24 min在学习了 DDD(领域驱动设计,Domain Driven Design)后,对 DDD 这一领域建模方法论有了更深的理解。不过与其说是方法论,笔者更认为是一种系统设计方面的指导思想,其价值在于,即便不进行全面的 DDD 重构,依然能借鉴其...
Java 可插拔注解处理器
16 minJava 1.5 新增了一种 Java 语言机制「注解」,允许使用注解类型来注解类、字段和方法。这些注解通常由构建时工具或运行时库处理,以实现新的语义效果。为了支持构建时自定义注解处理,JSR-269 定义了 API,允许使用标准的可插拔...
为什么 OAuth 在 2025 年仍然难以实现?
38 min本篇是 Why is OAuth still hard in 2025? 一文的中文翻译,文章内容翔实,说明了 OAuth 的复杂性、安全性、实际应用困难等方面的问题。以下是太长不看版(由 AI 整理):尽管 OAuth 2.0 是一个旨在...
Jenkins 流水线快速理解
32 minJenkins Pipeline(简称 Pipeline/流水线)是一套插件,支持实现持续交付管道(CDP,continuous delivery pipelines)并将其集成到 Jenkins 中。[!TIP] CDP 是将软件从版本控...
TCP 杂谈
27 min[!NOTE] 本篇是关于 TCP 的知识点记录,会比较琐碎。TCP(Transmission Control Protocol):传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议;是为了在不可靠的互联网络上提供可靠的端到...
深入浅出 String 字符串
26 min相信每个 Javaer 都遇到过这个问题:String abc = new String("123"); 创建了几个对象?其作为八股文已是老生常谈,考究的是大伙对对象创建以及字符串在 JVM 中的存储理解。本篇文章就来深入探讨下 Strin...
WebSocket vs SSE vs Long-Polling vs WebRTC vs WebTransport
44 min本篇是 WebSockets vs Server-Sent-Events vs Long-Polling vs WebRTC vs WebTransport 一文的中文翻译,文章表达了在如今的实时 Web 应用程序中,由服务器主动推送事件数...
Spring Cloud Stream 系列(三)
15 minSpring Cloud Stream 提供对给定应用程序的多个实例之间的数据分区的支持。在分区场景中,物理通信介质(例如 Broker 的 Topic)被视为由多个分区组成。一个或多个生产者应用程序实例将数据发送到多个消费者应用程序实例...
Spring Cloud Stream 系列(二)
15 min上篇主要讲了 Spring Cloud Stream 的基础用法以及对 RabbitMQ 的配置使用,但若只看这点,那么跟 Spring Boot 集成 MQ 的方式比起来并没有什么突出的地方。Spring Cloud Stream 强大之...
Spring Cloud Stream 系列(一)
19 minSpring Cloud Stream:是用于构建与共享消息传递系统连接的高度可扩展的事件驱动微服务,其提供一个灵活的编程模型,基于 Spring 习语来实现对各类常见的 MQ 系统的支持,如官方自己提供的 RabbitMQ Binder...
分布式事务
19 min分布式事务是在分布式系统下绕不开的一个话题,它的概念是指:在分布式系统下,一个业务跨多个服务或数据源,每个服务都是一个分支事务,要保证多个分支事务最终一致性,即为分布式事务。本篇便是来介绍常见的几种分布式事务实现方案。先来了解下分布式领域的...
B 树如何让您的查询更快?
25 min本篇是 How does B-tree make your queries fast? 一文的中文翻译,主要讲述了 B-Tree 是什么以及它的工作原理,解释 B-Tree 针对硬件的数据访问方式而做出的优化 - 顺序访问与节点自平衡算法...
是时候放弃 MySQL 和 PostgreSQL 而转而使用 SQLite 了吗?
35 min本篇是 Is it time to ditch MySQL and PostgreSQL for SQLite? 一文的中文翻译,文章主要描述了 SQLite 与 MySQL 的对比,自身的优缺点以及在现实生产环境中的应用情况;并且作者也给...
WebSocket 集成(二)
8 min本篇介绍 Spring 集成 WebSocket 的第二种方式:使用 Spring 本身的 WebSocket 模块,先从基础开始。使用的 Spring Boot 版本为3.2.2,添加依赖如下:<dependency> <groupId>...
WebSocket 集成(一)
14 minWebSocket 协议 是基于 TCP 协议的全双工通信协议,是通过单个 TCP 连接在客户端和服务器之间建立全双工、双向通信通道,可让客户端与服务端建立持久连接,并实时互传数据。它与 HTTP 同为应用层协议,但相比于 HTTP 的请求...
分片并不意味着分布式
12 min本篇是 Sharded Does Not Imply Distributed 一文的翻译。对于后端人员来说,分片的概念并不陌生,诸如 ElasticSearch、Redis、MySQL 等数据库都有针对于分片的实现方案来解决某些业务场景。文...
枚举字典的巧用
10 min一般在项目当中,关于字典的管理方式可概括为以下两种:交由数据库维护,前后端需要时调用接口获取,好处是可以对字典做成页面配置,随时增删查改,前后端同步; 前后端根据业务约定好字典内容后,各自存储,这样就无需依赖 API 调用。第一种做法比较有...
J2Cache 缓存框架:快速上手指南
13 minJ2Cache 是 OSChina 研发的两级缓存框架。第一级缓存 L1 使用内存(同时支持 Ehcache 2.x、Ehcache 3.x 和 Caffeine),第二级缓存 L2 使用 Redis(推荐)/Memcached。我们知道像...
Spring 事务同步
16 min事务功能在日常开发中使用并不少,本质上是为了保证一次业务请求处理过程中涉及多次 DB 数据操作时的原子性。而本篇主要讲述的事务功能是实现在事务执行的某个阶段去做某些事,即事务同步。在常规的 Web 应用中,大多是直接使用@Transacti...
Java 8 中 HashMap 的改变
19 min在聊聊 HashMap 篇中,通过 JDK1.7 的 HashMap 的几个方法:put()、get()、resize()/transfer()讲解了其原理,在最后简单描述了 HashMap 死链问题。引出了在 Java 8 中,HashM...
聊聊 HashMap
12 minMap,Java 三大集合框架之一,JDK1.2 时便已存在,是一个Key-Value键值对映射的接口,即一个Key对应一个Value。在日常开发使用中,我们常见的 Map 实现类有:HashMap、Hashtable、TreeMap、Li...
JVM 类加载机制
14 min在 JVM-内存模型 篇已经详细讲解了 JVM 内存模型的结构,如果想先了解 JVM 的内存模型,可以戳一下链接先去看看哦。这一篇,我将着重描述 Java 类加载机制,在 JVM 中类的加载到底经历了哪些过程。类的加载指的是将类的 .cla...
JVM 内存模型
13 minJVM 是 Java Virtual Machine(Java 虚拟机)的缩写,是一种用于计算设备的规范、能够运行 Java 字节码的虚拟机,拥有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。引入 Java 虚拟机后...