• 本文介绍如何使用开源 Chronicle Queue创建巨大的持久队列,同时保持可预测和一致的低延迟。在本文中,目标是维护来自市场数据馈送的对象队列(例如,在交易所交易的证券的最新价格)。也可以选择其他业务领域,例如来自物联网设备的感官输入或读取汽车行业的碰撞记录信息。原理是一样的。
  • Project Loom是Java/JVM 生态系统(由OpenJDK托管)中的一个较新的项目,它试图解决传统并发模型中的限制。特别是,Loo icon
  • 如何构建高性能系统一直是开发人员感兴趣的话题。很多业内人士提倡非阻塞编程的范式,表示基于非阻塞编程的应用相比传统的阻塞技术命令式编程,可以更高效地利用资源,实现更高的性能。许多文章解释了非阻塞编程的好处,它似乎是一种优越且面向未来的解决方案。但是,如果没有第一手经验来证明,我不相信。 icon
  • 在这篇文章中,我们展示如何使用Loom实现类似Go语言的绿色虚拟线程。Project loom 仍处于预览阶段,这意味着 api 可能随时更改。如果您想自己尝试这些示例,可使用 icon
  • 想象一个简单的市场,对同一产品感兴趣的买家和卖家聚集在一起进行交易。对于市场上的每个产品,对该产品感兴趣的买家可以形成一个有序的队列,按照“先到先得”的原则进行排序。然后,每个买家可以接近最便宜的卖家并进行交易,以卖家指定的价格从卖家那里购买尽可能多的产品。如果没有卖家以足够低的价格提供产品 icon
  • 使用Java、Rust、Go、JavaScript (NodeJS)、TypeScript 等流行语言构建并发 Web 服务器并对其进行基准测试(Deno) 和 Kotlin 来比较这些语言/平台之间的并发性及其性能。  Rust 中的并发< icon
  • Rust 的 Actor 框架。 异步和同步actor 本地/线程上下文中的 Actor 通信 使用期货进行异步消息处理 < icon
  • Shopify构建了一个自定义缓存解决方案,将数据库负载减少了 15%,整体应用延迟减少了大约 20%。 识别问题商店应用程序的主屏幕是最常用的功能,提供的主页提要Feed很复杂,因为除了处理来自数十家运营商的跟踪数据之外,它还需要汇 icon
  • Actor模型是一种这样的编程结构,它对大量独立作业进行建模,以任何顺序进行处理,无需锁同步。如Java中Play!框架。在本文中,我将描述如何在 golang 中实现一个原始的 Actor 模型。我们将利用 golang 提供的工具进行并发处理——goroutine、通道和等待组。 icon
  • 我们最近将会话管理从 MongoDB 迁移到了 Redis。迁移本身是由我们使用 MongoDB 的经验推动的,它不能特别好地处理高频率更新和更频繁的读取。另一方面,Redis 被称为经过验证的存储,可以准确处理该用例。数据库迁移并不总是那么容易,因为我们需要学习其他服务的新模式、最 icon
  • 我是一名 Java 开发人员,我知道在开发关键的安全应用程序时使用这种语言的主要优点和缺点。每个人接近 Java 的主要内容是它的 GC(又名垃圾收集器)。最早提出开箱即用的自动内存管理的语言是它。还有许多其他语言使用 GC、Javascript、Golang、python……在 R icon
  • 响应式编程的关键是做出反应。你不会说“现在就做”,而是说“什么时候做”。“何时”适用于您有工作要做的时间。工作以事件的形式出现:消息总线上的消息或 HTTP 请求。首先,我应该解释响应式编程很重要的原因。Java 的优点之一是相对容易的线程处理。这使得线程成为处理事件的主要模型。当你 icon
  • Rust 内置了对异步 ( async) 编程模型的支持,类似于 JavaScript 等语言。要充分利用多核和异步 I/O,必须使用运行时,虽然 Rust 社区有多种替代方案,但 Tokio 是事实上的标准。CPU 密集型计算定义:以消耗大量 CPU 用于存储重组、预先计算 icon
  • 线程是为了并行化计算密集型任务。然而,如今,许多应用程序都是 I/O(输入/输出)密集型应用程序。这样,线程就有两个重大问题: 他们使用大量(与其他解决方案相比)内存 启动和上下文切换的成本可以在大量(数万个)线程运行时感受到。 在实践中,这意味着通 icon
  •   LinkedHashSet 是一个也可以保持有序的集合。为了使这个线程安全,我们可以用 Collections.synchronizedSet() 包装它。然而,这不是一个好的选择,因为迭代仍然会很快失败。我们不能迭代的线程安全的 LinkedHashSet 有什么意义呢?在本期 icon
  • 下面是一个简单的 Web 服务器:u icon
  • Go 1.19 将拥有更快的race detector! 无限数量的 goroutine.运行类似命令即可: icon