京东科技开发者

其他

JDK17下Netty导致堆内存疯涨原因排查

一、背景介绍天网风控灵玑系统是基于内存计算实现的高吞吐低延迟在线计算服务,提供滑动或滚动窗口内的count、distinctCout、max、min、avg、sum、std及区间分布类的在线统计计算服务。客户端和服务端底层通过netty直接进行tcp通信,且服务端也是基于netty将数据备份到对应的slave集群。低延迟的瓶颈灵玑第1个版本经过大量优化,系统能提供较大的吞吐量。如果对客户端设置10ms超时,服务端1wqps/core的流量下,可用率只能保证在98.9%左右,高并发情况下主要是gc导致可用率降低。如果基于cms
2023年9月12日
其他

JAVA多线程并发编程-避坑指南

一、前言开发过程中,多线程的应用场景可谓十分广泛,可以充分利用服务器资源,提高程序处理速度。我们通常也会使用池化技术,去避免频繁创建和销毁线程。本篇旨在基于编码规范、工作中积累的研发经验等,整理在多线程开发的过程中需要注意的部分,比如不考虑线程池参数、线程安全、死锁等问题,将会存在潜在极大的风险。并且对其进行根因分析,避免每天踩一坑,坑坑不一样。二、多线程并发场景有哪些坑?1.“不正确的创建”线程池常规来说,线程资源必须通过线程池提供,不允许在应用中自行显式创建线程,京东
2023年4月5日
其他

深入了解 JavaScript 内存泄漏

null,手动释放内存。六、如何发现内存泄漏内存泄漏时,内存一般都是周期性的增长,我们可以借助谷歌浏览器的开发者工具进行判断。这里针对下面的例子进行一步步的的排查和找到问题点:运行停止const
2023年3月22日
其他

全局视角看技术-Java多线程演进史

一、前言2022年09月22日,JDK19发布了,此版本最大的亮点就是支持虚拟线程,从此轻量级线程家族再添一员大将。虚拟线程使JVM摆脱了通过操作系统调度线程的束缚,由JVM自身调度线程。其实早期sun在Solaris操作系统的虚拟机中实现过JVM调度线程,基于其复杂性,和可维护性考虑,最终都回归到了由操作系统调度线程的模式。长安归来锦衣客,昨日城南起新宅。回想这一路走来,关于多线程的概念令人烟花缭乱,网上相关讲解也不胜枚举,但总感觉缺少一个全局性的视角。为此笔者系统性的梳理了Java关于多线程的演进史,希望对你掌握多线程知识有帮助。本文不讲什么:1.不讲某些技术点的详细实现原理,不拆解源码,不画图,如果从本文找到了你感兴趣的概念和技术可以自行搜索
2023年3月1日
其他

从历代GC算法角度刨析ZGC

本文所有介绍仅限于HotSpot虚拟机。本文先介绍了垃圾回收的必要手段,基于这些手段讲解了历代垃圾回收算法是如何工作的,每一种算法不会讲的特别详细,只为读者从算法角度理解工作原理,从而引出ZGC,方便读者循序渐进地了解。GC是Garbage
2023年2月9日
其他

跳跃表数据结构与算法分析

目前市面上充斥着大量关于跳跃表结构与Redis的源码解析,但是经过长期观察后发现大都只是在停留在代码的表面,而没有系统性地介绍跳跃表的由来以及各种常量的由来。作为一种概率数据结构,理解各种常量的由来可以更好地进行变化并应用到高性能功能开发中。本文没有重复地以对现有优秀实现进行代码分析,而是通过对跳跃表进行了系统性地介绍与形式化分析,并给出了在特定场景下的跳跃表扩展方式,方便读者更好地理解跳跃表数据结构。跳跃表[1,2,3]是一种用于在大多数应用程序中取代平衡树的概率数据结构。跳跃表拥有与平衡树相同的期望时间上界,并且更简单、更快、是用更少的空间。在查找与列表的线性操作上,比平衡树更快,并且更简单。概率平衡也可以被用在基于树的数据结构[4]上,例如树堆(Treap)。与平衡二叉树相同,跳跃表也实现了以下两种操作通过搜索引用[5],可以保证从任意元素开始,搜索到在列表中间隔为的元素的任意期望时间是实现线性表的常规操作(例如将元素插入到列表第k个元素后面)这几种操作在平衡树中也可以实现,但是在跳跃表中实现起来更简单而且非常的快,并且通常情况下很难在平衡树中直接实现(树的线索化可以实现与链表相同的效果,但是这使得实现变得更加复杂[6])一、预览最简单的支持查找的数据结构可能就是链表。Figure.1是一个简单的链表。在链表中执行一次查找的时间正比于必须考查的节点个数,这个个数最多是。Figure.1
2023年2月3日
其他

京东云分布式链路追踪在金融场景的最佳实践

微服务是近几年最流行的软件架构设计理念,和容器、devops一起构成了云原生的技术基础。微服务源于对产品快速交付的市场诉求,通过采取一系列的自动化测试、持续集成等敏捷开发实践,激活了组织效率,也增强了软件的可复用性,无形中为中台化演进铺平了道路,大量国内外互联网公司因此获得了技术红利。但是很多企业在引入微服务架构后,并没有达到预期效果。热力学第二定律告诉我们,一个孤立系统一定会向熵增的方向,也就是越来越复杂的方向演进。服务划分过细,单个服务的复杂度降低了,整个系统的复杂度却指数级上升。理论上计算,n个服务的复杂度是n×(n-1)/2,微服务将系统内的复杂度转移为系统间的复杂度,因此团队陷入混沌,反倒拖慢了交付速度。如何解决“熵增”的困境,真正享受微服务带来的红利呢?一方面需要通过一系列devops工具和方法使组织架构匹配软件架构,使新技术为我所用而不是成为工具的奴隶;另一方面则需要在运维领域引入上帝视角,即分布式全链路追踪技术,完全掌控微服务间的调用关系。京东云SGM(Service
2021年12月14日
其他

JOIN US | 京东智联云技术精英招聘

有IT类大型企业市场,竞分,营销相关5年以上工作经验,比如产品定位,市场化内容转化,上市营销资料实际操作经验;有成熟的分析思考框架,良好的商业嗅觉,具备对云计算和互联网产品较为成熟的洞察力和理解力;
2020年11月16日
其他

面对大促DevOps怎么做?这里有一份京东11.11 DevOps备战指南

所谓上工治未病。除去配置覆盖完整的报警,及时排查服务的潜在风险,避免大促流量洪峰时期出现服务质量的问题,日常巡检必不可少,京东智联云智能监控提供內建基础资源巡检大盘,帮助用户快速发现资源不足问题。
2020年11月12日
其他

护航11.11,如何筑牢安全防御系统?

Technology)是京东科技集团旗下为AI、云计算、IoT等相关领域开发者提供技术分享交流的平台。平台将发布京东产品技术信息、行业技术内容、技术活动等资讯。拥抱技术,与开发者携手预见未来!
2020年11月11日
其他

如何应对大促流量洪峰?揭秘京东技术人的备战手册

监控是我们看系统的眼睛,是线上系统的感知体系。如果监控没有做到位的话,整个系统就是两眼一抹黑的状态,线上运行是否正常就全靠人品和运气了,整个系统的运行就变成了玄学,所以做好系统监控是至关重要的。
2020年11月10日
其他

支持Pod 绑定静态 IP ,基于K8s的自定义控制器—Enhanced Statefulset

、daemonset。但在实际业务场景中,原生控制器无法满足一些复杂和大规模场景中的业务需求。京东智联云开发团队结合多年云原生开发与使用经验,推出了自定义控制器Enhanced
2020年8月6日
其他

云原生在京东丨ASF顶级分布式数据库中间件项目——Apache ShardingSphere

云妹导读:不知不觉【云原生在京东】已经进行了两期,在先前《云原生在京东丨揭秘五大云原生项目在京东的落地实践》和《云原生在京东丨最适合云原生的分布式存储平台——ChubaoFS》中,我们分别为大家揭秘了Kubernetes、Harbor、Vitess、Prometheus、Helm
2020年7月30日
自由知乎 自由微博
其他

云原生在京东丨最适合云原生的分布式存储平台—— ChubaoFS

可扩展元数据管理元数据操作有时候会成为文件系统的性能瓶颈。在我们的平台中,由于可能会有成百上千的客户端同时访问文件,这个问题变得非常突出。单独节点存储元数据很容易成为性能瓶颈。所以,ChubaoFS
2020年7月23日
其他

云原生在京东丨揭秘五大云原生项目在京东的落地实践

提供了一种更便捷、高效的资源组织和使用方式,让部署和维护变得更简单,便于资源的动态伸缩及可靠服务,大大提升了开发、交付、运维系列流程效率,让我们在软件开发中更关注应用逻辑本身,从而让开发更加高效。
2020年7月16日
其他

如何防止删库跑路?运维堡垒机高效安全运维设计与实践落地

资产快速云化。尤其是在当前非监管行业、非金融行业中云化的进展很快。而随着业务快速拓展,用户总会面临一些安全合规要求。这时候用户会发现自己的资产越来越分散,管理起来越来越困难。混合云的持续推广也使得
2020年7月7日
其他

如何决策快人一步? 用一块大屏轻松实现数据可视化

大数据时代,我们最常听到的一句话就是“用数据说话”。但数据本身都是冰冷的数字,它很难直接告诉我们哪些数据是有价值的信息。只有通过合适的可视化工具来进行数据的展示表达,才可以使传递给使用者的感受更加直观,也更容易获得其中价值。数据大屏就是一种非常流行的数据可视化工具,它可以将业务的关键指标以可视化的方式展示到一块或多块LED大屏上,不仅可以让业务人员快速从繁杂的业务数据中找到重要数据,还可以对决策人员起到辅助作用。在刚刚落幕的京东
2020年7月2日
其他

618 Tech Talk丨大促活动如何抵御大流量 DDoS 攻击?

多人来小王的店里捣乱。这些人看上去和普通顾客没什么区别,小王和服务员只能正常提供服务,但这些人只是不停地询问菜品和价格,并不点菜,霸占了所有的座位和服务员,使其他客人无法正常就餐,最终导致餐厅倒闭。
2020年6月30日
其他

30天如何实现超级APP从0到1开发?京东mPaaS EMOP最佳示范来了

当前,随着移动通信市场的成熟,企业提供服务的商业模式也随之改变,几乎每一个涉足移动互联网的企业都要拥有一款自己的APP。在此过程中,企业如何解决用户体验、质量把控、业务验证和研发速度等方面的挑战,对于快速构建场景化应用实现业务创新与移动化转型至关重要。
2020年6月29日
其他

618 Tech Talk| 2692 亿狂欢背后 只需这8步就可做好大促备战

监控是我们看系统的眼睛,是线上系统的感知体系。如果监控没有做到位的话,整个系统就是两眼一抹黑的状态,线上运行是否正常就全靠人品和运气了,整个系统的运行就变成了玄学,所以做好系统监控是至关重要的。
2020年6月24日
其他

618 Tech Talk|400%存储容量增长背后的成长之路

弹性伸缩的核心需求是在资源池里面有足够的资源来满足业务的增长,在传统IDC时代,客户都会规划好业务的最大增量,留下足够的buffer资源来应对它,三倍的业务增长至少需要预留200%的buffer。
2020年6月23日
其他

618 Tech Talk|高并发场景下的数据访问速度如何保障?

Technology)是京东科技集团旗下为AI、云计算、IoT等相关领域开发者提供技术分享交流的平台。平台将发布京东产品技术信息、行业技术内容、技术活动等资讯。拥抱技术,与开发者携手预见未来!
2020年6月22日
其他

MongoDB与MySQL关于写确认的异同

云妹导读:所谓写确认,是指用户将数据写入数据库之后,数据库告知用户写入成功的一个概念。根据数据库的特点和配置,可以在不同的写入程度上,返回给用户,而这其中,就涉及到了不同的性能、数据安全等级以及数据一致性的内容。不同的写入确认级别或配置,是数据库提供给用户的一种自我控制的能力,用户可以针对自身业务的特点、数据管理的需要、性能的考虑、数据一致性以及服务可用性各种因素进行考虑,选择适合的数据库配置,来实现自身的需要。首先介绍几个重要的概念,这些概念也是数据库中常识性的知识了,不过是在不同数据库的不同表述。这些概念主要涉及到写确认的两个重要考量点,一个是本地数据库写操作的不丢失,一个是分布式环境下,数据冗余的一致性。本地数据库写操作是指数据库在处理用户的写操作后,能够持续化,防止因为意外导致的数据丢失,这个主要涉及到日志,比如MySQL中的redo
2020年6月16日
其他

DevOps专题 |监控,可观测性与数据存储

的处理主要包括集中存储:事件种类很多,较难归纳共同的查询纬度,所以倒排索引在这种无法事先确定查询纬度的场景下,是非常合适的存储结构Dashboard:
2019年11月12日
其他

在线公开课 | 京东云监控系统设计及落地之路

的目标,监控系统应该具有这些能力:数据采集能力,获取可观测的数据数据能够方便加工,比如把相关的数据汇聚起来,得到我们需要关注的数据对这些关注的数据,做异常检测,及时产生告警收到告警后,通过
2019年11月6日
其他

DevOps专题 | 大型企业级监控系统设计

中国DevOps云市场2019,厂商评估》报告。京东云凭借丰富的场景和实践能力,以及高质量的服务交付和平台稳定性,取得优异出成绩,跻身“Major
2019年10月30日
其他

干货 | DRDS 与TiDB浅析

在谈论数据库架构和数据库优化的时候,会常听到“分库分表”、“分片”、“Sharding”…等关键词。值的高兴的是,这部分公司的业务量应该正在实现(或者即将面临)高速增长,或技术方面也面临着一些挑战。但让人担忧的部分是,他们的系统“分库分表”真的有选择正确吗?随着业务规模的不断扩大,用户需要选择合适的方案去应对数据规模的增长,以应对逐渐增长的访问压力和数据量。关于数据库的扩展主要包括:业务拆分、主从复制、数据库分库与分表等,本篇文章的灵感就来源自作者与朋友关于数据库分库分表问题的讨论。DRDS
2019年4月17日
其他

在线公开课 | 从理论走向实践,多角度详解Cloud Native

有了微服务这个平台后,我们可以把很多最佳实践整合进去。例如服务性能不够好就可以拆分成很多小服务;分析性能不好的关键点,例如调用链分析这类工具就出现了,作为微服务辅助工具来帮助大家解决这些方面问题。
2019年3月19日