01 2020 档案
摘要:GraalVM是一种高性能的多语言虚拟机,用于运行以JavaScript等基于LLVM的各种语言编写的应用程序。对于Java应用也可作为通常JVM的替代,它更具有性能优势。GraalVM带来的一个有趣功能是它能够在创建JVM应用程序的提前编译(create ahead of time:AOT)本机镜
阅读全文
摘要:从战略到战术,领域驱动设计(Domain Driven Design,DDD)给出了诸多关于软件架构、设计、建模与编码的方法和模式,以用于应对业务复杂度。然而,许多开发人员对于 DDD 的价值仍然心存疑惑,相反,对于它的难以理解、难以学习倒是确信不疑,甚至有人惊呼 DDD 是「反人类地难懂」。这真是
阅读全文
摘要:BIO (Blocking I/O):同步阻塞I/O模式。 NIO (New I/O):同步非阻塞模式。 AIO (Asynchronous I/O):异步非阻塞I/O模型。 先看阻塞和非阻塞的区别,以烧水为例: 阻塞VS非阻塞:人是否坐在水壶前面一直等。 同步VS异步:水壶是不是在水烧开之后主动通
阅读全文
摘要:前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。 在流量大时
阅读全文
摘要:转自:InfoQ 在刚刚过去的 2019 年:InfoQ 网站发布 11050 篇技术文章;InfoQ 公众号迎来第一百万位读者;QCon、ArchSummit 等技术大会邀请 746 位国内外技术专家。结合专家的观点以及记者的洞察,InfoQ 编辑部在开年跟你聊聊 2020 年值得关注的十大技术趋
阅读全文