• 为什么StampedLock会导致CPU100%?

    StampedLock 是 Java 8 引入的一种高级的锁机制,它位于 java.util.concurrent.locks 包中。与传统的读写锁(ReentrantReadWriteLock)相比,StampedLock 提供了更灵活和更高性能的锁解决方案,尤其适用于读操作远多于写操作的
    发布时间:2024-07-19 阅读:656
  • 火山引擎 RTC 实时媒体处理平台的技术实践

    1.背景介绍随着实时音视频(RTC)技术在娱乐、教育、会议、游戏等领域的广泛应用,用户对音视频通话的核心功能需求不断提升,同时也衍生出许多扩展需求。这些扩展功能在业务场景扮演着越来越重要的作用,已经成为许多业务场景
    发布时间:2024-07-19 阅读:295
  • Python 十个高阶函数

    高阶函数,顾名思义,是那些可以接收函数作为参数,或是返回函数作为结果的函数。它们让你的代码更加灵活、简洁,同时也提升了代码的复用性。接下来,我们将通过一系列的实例来深入理解高阶函数的魅力。让我们开始吧!实例一:map
    发布时间:2024-07-18 阅读:229
  • DDD领域驱动设计的四重边界,你知道吗?

    领域驱动设计(Domain-Driven Design, DDD)是一种针对复杂业务场景的软件设计方法,其核心思想是将业务领域知识贯穿整个软件开发生命周期,通过构建领域模型来指导设计和开发。DDD通过规划四重边界,将领域知识进行了合理的固
    发布时间:2024-07-17 阅读:703
  • 我用这11招,让接口性能提升了100倍

    前言接口性能优化对于从事后端开发的同学来说,肯定再熟悉不过了,因为它是一个跟开发语言无关的公共问题。该问题说简单也简单,说复杂也复杂。有时候,只需加个索引就能解决问题。有时候,需要做代码重构。有时候,需要增加缓存
    发布时间:2024-07-17 阅读:733
  • 新的 HTML <dialog> 标签:绝对改变游戏规则

    有了新的 <dialog> 标记,前端开发将从此不同...❌之前:看看我创建一个对话框要花费多少功夫
    发布时间:2024-07-17 阅读:692
  • SpringBoot + Sharding Sphere:轻松搞定数据加解密,支持字段级!

    01、故事背景在实际的软件系统开发过程中,由于业务的需求,在代码层面实现数据的脱敏还是远远不够的,往往还需要在数据库层面针对某些关键性的敏感信息,例如:身份证号、银行卡号、手机号、工资等信息进行加密存储,实现真正意
    发布时间:2024-07-17 阅读:700
  • 如何利用负载均衡器实现终极自由

    开源贡献、客户信任、行业认可和环境无关性是实现基础设施自由的关键要素。译自How to Achieve Ultimate Freedom with Your Load Balancer,作者 Tyler Charboneau; Floyd Smith。开源软件的流行程度与云计算的使用增
    发布时间:2024-07-17 阅读:703
  • 基于Netty的自研流系统缓存实现挑战: 内存碎片与OOM困境

    1.前言Kafka 作为流处理平台,在实时流计算和在线业务场景,追尾读追求端到端低延迟。在离线批处理和削峰填谷场景,数据冷读追求高吞吐。两个场景都需要很好的数据缓存设计来支撑,Apache Kafka 的数据存储在本地文件,通过 mm
    发布时间:2024-07-17 阅读:712
  • 两位巨佬吃了一顿晚饭,整个互联网彻底被改变了!

    1992年9月, 一个周三的下午,贝尔实验室。 Rob Pike (Go语言发明人之一) 正在操作系统Plan 9 上忙碌,这是继Unix之后的一个大工程, 马上就要完工了, 这个时候他突然接到了一个电话。 电话是IBM的人打来的,他们正在奥斯汀参
    发布时间:2024-07-17 阅读:720
  • Trip.com QUIC 高可用及性能提升

    首先介绍了QUIC多进程部署架构,随后分析了QUIC网络架构在生产应用中遇到的问题及其优化方案。在性能提升方面,分享了QUIC全链路埋点监控的实现思路及其收获,QUIC拥塞控制算法开发与调优思路等等。希望这些内容能够帮助大
    发布时间:2024-07-17 阅读:679
  • 浅析Vite插件机制

    前言对于Vite来说,它是基于esbuild与rollup双引擎设计的,在开发阶段使用esbuild进行依赖预构建,然后基于浏览器原生支持的ESM完成开发预览,而在生产环境打包时,直接使用的rollup构建。那么在这种背景下,Vite的插件机制应该
    发布时间:2024-07-17 阅读:760
  • 软件版本号为什么那么奇怪?你知道吗?

    软件版本号意味着什么?语义版本管理(SemVer)是一种软件版本管理方案,旨在传达版本中基本变更的含义。SemVer 使用由三部分组成的版本号: major.minor.patch.主版本:当出现不兼容的 API 变动时,版本号会递增。小版本:在以向后
    发布时间:2024-07-17 阅读:699
  • CSS锚点定位终于来了!

    盼了好久,最近 Chrome 125终于迎来了CSS 锚点定位的正式支持。这是一个和 CSS 滚动驱动动画一样,足以颠覆整个 Web 开发领域的新特性。有了这个特性,很多以前强依赖 JS 的方式,都可以纯 CSS解决,并且实现起来更加简单、更
    发布时间:2024-07-17 阅读:726
  • ES13 中最具变革性的五个 JavaScript 功能

    ES13 包含许多有价值的功能,彻底改变了我们编写 JavaScript 的方式。从异步升级到数组糖等等,让我们来看看它们,看看你错过了什么。1. 顶级 await在 ES13 之前,我们永远无法在全局范围内使用 await。之前:我们总是必须将其
    发布时间:2024-07-17 阅读:256
  • Python 解析 XML 格式数据:实战指南

    在数据处理和Web开发中,XML是一种广泛使用的数据格式,用于存储和传输信息。Python提供了几种库来解析XML数据,其中xml.etree.ElementTree是最常用的一种,因为它内置于Python标准库中,不需要额外安装。今天,我们将深入探讨如
    发布时间:2024-07-17 阅读:687
  • 负载均衡技术全解析:Pulsar 分布式系统的优秀实践

    背景Pulsar 有提供一个查询 Broker 负载的接口:/** * Get load for this broker. * * @return * @throws PulsarAdminException */LoadManagerReport getLoadReport() throws PulsarAdminExceptio
    发布时间:2024-07-17 阅读:742
  • B+树层面查询数据的全过程详解

    引言B+树是一种自平衡树数据结构,广泛应用于数据库和操作系统的索引结构中,特别是在MySQL的InnoDB存储引擎中。B+树通过保持数据排序,使得搜索、插入、删除等操作都能在对数时间内完成。本文将详细阐述B+树层面查询数据
    发布时间:2024-07-17 阅读:736
  • 线程池遇到父子任务,有大坑,要注意!

    你好呀,我是歪歪。最近在使用线程池的时候踩了一个坑,给你分享一下。在实际业务场景下,涉及到业务代码和不同的微服务,导致问题有点难以定位,但是最终分析出原因之后,发现可以用一个很简单的例子来演示。所以歪师傅这次先用
    发布时间:2024-07-17 阅读:701
  • React 新 Hook:UseFormStatus 使用详解

    一、action 支持异步回调一个令人振奋的特性就是,在 React19 中,action 支持传入异步回调函数。例如如下代码:async function formAction(formdata) { const title = formdata.get('title') const content = formdata.
    发布时间:2024-07-17 阅读:748
  • 别做平庸Coder!掌握这十个架构绝技,让你成为团队MVP

    一般来说,软件系统的需求可以分为两类:功能需求和非功能需求。软件系统的架构设计需要满足这两类需求。特别是系统架构对软件非功能需求的支持,成为架构的质量属性。本文描述了软件的10个质量属性,但这并不意味着每个质量
    发布时间:2024-07-17 阅读:716
  • 我们一起聊聊 Nginx 后端长连接

    nginx 后端长连接Nginx 后端长连接的优点包括:减少连接建立和关闭的消耗和延迟:在一个 TCP 连接上可以传送多个 HTTP 请求和响应,避免了频繁建立和关闭连接的开销,提高了性能。降低服务器负载:特别是对于 QPS(每秒请求数)较
    发布时间:2024-07-17 阅读:728
  • 不掉头发“逆向”旋转验证码

    验证码是爬虫程序绕不过的坎,有各种各样的验证码挡在前进的道路上,比如本文将要重点介绍的旋转验证码,网上能找到不少关于这种验证码的逆向方法,整体思路都是一样的,首先需要通过深度学习模型识别出图片的旋转角度,接下来逆
    发布时间:2024-07-17 阅读:707
  • 说说MQ延迟队列实现原理?

    使用 RabbitMQ 和 RocketMQ 的人是幸运的,因为这两个 MQ 自身提供了延迟队列的实现,不像用 Kafka 的同学那么苦逼,还要自己实现延迟队列。当然,这都是题外话,今天咱们重点来聊聊 RabbitMQ 延迟队列的实现原理,以及 RabbitMQ
    发布时间:2024-07-17 阅读:721
  • 微前端代码隔离方案,手把手实现一个 JS 沙箱隔离!

    今天我们一起来探究一下前端 js 沙箱的核心实现逻辑,我们将从以下几个方面来展开讨论:准备调试环境,探究沙箱需要解决的问题。创建沙箱环境。通过 with 语句改变沙箱变量作用域链。通过 proxy 拦截 with 上下文的get,set
    发布时间:2024-07-16 阅读:311
Top