Linux内存泄露案例分析和内存管理分享
作者:京东科技 李遵举一、问题近期我们运维同事接到线上LB(负载均衡)服务内存报警,运维同事反馈说LB集群有部分机器的内存使用率超过80%,有的甚至超过90%,而且内存使用率还再不停的增长。接到内存报警的消息,让整个团队都比较紧张,我们团队负责的LB服务是零售、物流、科技等业务服务的流量入口,承接上万个服务的流量转发,一旦有故障影响业务服务比较多,必须马上着手解决内存暴涨的问题。目前只是内存报警,
浅谈Java内省
作者:京东物流 王国泰一、什么是内省讲内省,不得不说Java Bean,Bean在Java中是一种特殊的类,主要用于装载数据,数据会被存储在类的私有属性中,通常具有无参构造函数、可序列化、以及通过getter和setter方法来访问属性。内省是Java Beans规范的一部分,使用java.beans包中的类来实现,最常用的类是Introspector。通过内省,你可以获取一个Java
java小知识-ShutdownHook(优雅关闭)
作者:京东物流 崔冬冬一、先提出一个问题我们如果在JVM退出的时候做一些事情,比如关闭远程链接,怎么实现呢?二、ShutdownHook简介java里有个方法Runtime.getRuntime#addShutdownHook,是否了解呢?ShutdownHook是什么意思呢,看单词解释“关闭钩子”,addShutdownHook就是添加一个关闭钩子,这个钩子是做什么的呢?能否解决上面的问题?1、
MySQL存储引擎及索引简介
作者:京东物流 樊芳渝一、引言在信息技术飞速发展的今天,数据库作为信息系统的核心组件,其性能和稳定性直接关系到整个系统的运行效率和用户体验。而MySQL,作为目前的开源关系型数据库管理系统之一,凭借其强大的功能、灵活的扩展性和广泛的应用场景,早已成为众多开发者和企业的首选。然而,要想充分发挥MySQL的性能优势,深入了解其存储引擎和索引机制是必不可少的。存储引擎决定了MySQL如何存储
善用Optional,告别NPE
作者:京东物流 王亚宁NPE:NullPointerException(空指针异常)。可以说自Null的诞生以来它就让无数的程序员为之哀嚎,也是无数系统Bug的来源。托尼·霍尔(Tony Hoare),Null的发明者也表示过这是他十亿美元的错误。当程序试图在空引用(null)上调用方法或访问属性时,JVM会抛出NPE。例如:String str = null; i
真实案例解析缓存大热key的致命陷阱
作者:京东零售 曹志飞引言在现代软件架构中,缓存是提高系统性能和响应速度的重要手段。然而,如果不正确地使用缓存,可能会导致严重的线上事故,尤其是缓存的大热key问题更是老生常谈。本文将探讨一个常见但容易被忽视的问题:缓存大热key和缓存击穿问题。我们将从一个真实案例入手,分析其原因,并提供解决方案和预防措施。案例描述某系统在双十一大促期间,遇到了一个严重的线上事故。业务人员在创建一个大型活动,该大
nginx+lua+redis实现灰度发布
作者:马仁喜前言:授人以鱼不如授人以渔.先学会用,在学原理,在学创造,可能一辈子用不到这种能力,但是不能不具备这种能力。这篇文章主要是沉淀使用nginx+lua+redis实现灰度,当我们具备了这种能力,随时可以基于这种能力和思想调整实现方案:比如nginx+lua+(其他数据源)、nginx+(其他脚本语言)一、灰度方案:常见的灰度实现方案:1.请求路由:通过请求中的标识(如用户ID、设备ID、
解析$nextTick魔力,为啥大家都爱它?
作者:京东保险 卓雅倩1.为什么需要使用$nextTick?首先我们来看看官方对于$nextTick的定义:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。由于vue的试图渲染是异步的,生命周期的created()钩子函数进行的DOM操作一定要放在Vue.nextTick()的回调函数中,原因是在created()钩子函数执行的时候DOM其实并未
【玩转金融素材生成】探索交互式AIGC组合素材生成技术
作者:京东科技 蒋煜襄本文介绍了一种交互式可控组合素材生成技术,本方案基于Stable Diffusion模型,结合位置控制生成技术,实现了金融领域中的多元素素材组合交互式生成能力,增加了素材生成的丰富性以及使用上的易用性,可以帮助设计师和运营人员快速制作banner图或活动页中所需要的组合元素素材。一、引言1.1 金融组合元素介绍什么是金融组合素材? 金融场景的设计师在日常工作中经常需
关系型数据库设计三大范式
作者:京东科技 郑龙飞范式定义百度百科:设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。人类语言: 范式可以理解为设计一张数据表的表结构,符合的标准级别、规范和要求。而通常我们用的最多的就是第一范式(1NF)、第二范式(2NF)、第三范式(3NF),也就是本文要讲的“三大范式”。范式的优点采用范式可以
学习下Redis内存模型
作者:京东零售 吴佳前言redis,对于一个java开发工程师来讲,其实算不得什么复杂新奇的技术,但可能也很少人去深入了解学习它的底层的一些东西。下面将通过对内存统计、内存划分、存储细节、对象类型&内部编码这四个模块来学习学习redis的内存模型,手字笔录,潜心修行。一、redis的内存统计info memory 命令查看内存使用情况:服务器基本信息、CPU、内存、持久化、客户端连接信息等
垃圾短信?手机自动识别垃圾短信逻辑的分析
作者:京东科技 贾玉龙1 背景随着智能手机的普及和移动互联网的发展,短信作为一种传统的通讯方式,仍然保持着其独特的地位。然而,随着垃圾短信的泛滥,手机自动识别垃圾短信的技术也在不断进步。对于提供服务的企业来说,如何让自己的服务短信不被识别为垃圾短信,而让用户能够看到,成为了一个亟待解决的问题。本文将深入探讨手机自动识别垃圾短信的逻辑。2 手机自动识别垃圾短信的逻辑2.1 垃圾短信的定义与特征
轻松拿捏【伪需求】
作者:京东保险 陈雅文每一位产研工作者,无论是产品经理、研发还是测试在日常工作中不可避免的要面对各种五花八门的需求,在 “真需求” 和 “伪需求” 之间如何独具慧眼,见招拆招,本文以产品视角总结出发,简要剖析。欢迎大家留言交流,分享你们battle需求的经典桥段和秘笈🤓。一、背景在我的行云需求里,基本每个月都会有驳回的需求,这些需求基本都是从没沟通过,业务一股脑提上来认为该做的,有的合理,但业务提
提供方耗时正常,调用方毛刺频频
作者:京东零售 王森一 现象调用方A -> JSF -> 提供方B大多数情况下,调用方耗时 和 提供方耗时 基本没有差别个别情况下,调用方耗时 远高于 提供方耗时,大概5分钟20+次1.调用方A耗时如下图2.提供方B耗时如下图3.调用方监控添加在调用JSF接口前后加的监控,没有其他任何逻辑,包括日志打印4.提供方监控添加在代码最外层JSF接口加的监控,之外没有任何代码逻辑
与时俱进,京东云高性能计算平台
作者:京东科技 林顺利持续演进的高性能计算高性能计算是利用超级计算机实现并行计算的一门技术。通过使用大量通用型计算节点搭建阵列式计算集群,替代单体超级计算机的方式,来实现并行计算加速,已成为高性能计算的通用方案。经过多年发展,高性能计算已成为各个领域解决复杂计算和进行大规模数据分析的技术底座,如 汽车和航天行业通过空气动力模拟来提升燃油效率、能源行业通过分析地震和地质数据来实现石油勘探、医药行
Spring 应用合并之路(二):峰回路转,柳暗花明
作者:京东科技 李君书接上文,前面在 Spring 应用合并之路(一):摸石头过河 介绍了几种不成功的经验,下面继续折腾…四、仓库合并,独立容器在经历了上面的尝试,在同事为啥不搞两个独立的容器提醒下,决定抛开 Spring Boot 内置的父子容器方案,完全自己实现父子容器。如何加载 web 项目?现在的难题只有一个:如何加载 web 项目?加载完成后,如何持续持有 web 项目?经过思考后,可
彻底改变你的代码:JavaScript linter—Oxlint
作者:京东保险 张洁作为开发人员,总是在寻找能够简化工作流程并提高工作效率的工具。Oxlint 是一个用 Rust 编写的 JavaScript linter,现在提供了可以替代ESLint的新方案,其性能比ESLint提升了 50-100 倍。在本文中,将学习如何将 Oxlint 集成到开发流程中,充分利用其速度和效率。了解 OxlintOxc (The Oxidation Compiler)
提供方耗时正常,调用方毛刺频频
作者:京东零售 王森一 现象调用方A -> JSF -> 提供方B大多数情况下,调用方耗时 和 提供方耗时 基本没有差别个别情况下,调用方耗时 远高于 提供方耗时,大概5分钟20+次1.调用方A耗时如下图2.提供方B耗时如下图3.调用方监控添加在调用JSF接口前后加的监控,没有其他任何逻辑,包括日志打印4.提供方监控添加在代码最外层JSF接口加的监控,之外没有任何代码逻辑
Mybatis 拦截器实现单数据源内多数据库切换
作者:京东保险 王奕龙物流的分拣业务在某些分拣场地只有一个数据源,因为数据量比较大,将所有数据存在一张表内查询速度慢,也为了做不同设备数据的分库管理,便在这个数据源内创建了多个不同库名但表完全相同的数据库,如下图所示:现在需要上线报表服务来查询所有数据库中的数据进行统计,那么现在的问题来了,该如何 满足在配置一个数据源的情况下来查询该数据源下不同数据库的数据 呢,借助搜索引擎查到的分库实现大多是借
智慧之锤|如何通过有监督微调锻造大模型
作者:京东物流 李雪婷本文为《大规模语言模型-从理论到实践》 第五章有监督微调的学习笔记,在介绍基本内容的同时会补充一些扩展知识和案例来帮助大家更好地理解该章。一、前言大模型调整的历程经历了显著的演变,从最初的“预训练-微调”范式开始,模型首先在大规模无监督数据上进行预训练,然后在特定任务上通过有监督微调来优化性能。随着计算能力和数据集的扩展,模型规模迅速扩大,从数亿参数增长到数千亿参数,推动了如