架构师日记-从代码到设计的性能优化指南

一、前言 服务性能是指服务在特定条件下的响应速度、吞吐量和资源利用率等方面的表现。据统计,性能优化方面的精力投入,通常占软件开发周期的10%到25%左右,当然这和应用的性质和规模有关。性能对提高用户体验,保证系统可靠性,降低资源使用率,甚至增强市场竞争力等方面,都有着很大的影响。 性能优化是个系统性工程,宏观上可分为网络,服务,存储几个方向,每个方向又可以细分为架构,设计,代码,可用性,度量等多个子项。本文将重点从代码和设计两个子项展开,谈谈那些提升性能的知识点。当然,很多性能提升策略都是有代
分类: 其他 发布时间: 05-28 19:26 阅读次数: 0

Elasticsearch与Clickhouse数据存储对比 | 京东云技术团队

1 背景 京喜达技术部在社区团购场景下采用JDQ+Flink+Elasticsearch架构来打造实时数据报表。随着业务的发展Elasticsearch开始暴露出一些弊端,不适合大批量的数据查询,高频次分页导出导致宕机、存储成本较高。 Elasticsearch的查询语句维护成本较高、在聚合计算场景下出现数据不精确等问题。Clickhouse是列式数据库,列式型数据库天然适合OLAP场景,类似SQL语法降低开发和学习成本,采用快速压缩算法节省存储成本,采用向量执行引擎技术大幅缩减计算耗时。所以
分类: 其他 发布时间: 05-28 19:26 阅读次数: 0

混沌演练实践(二)-支付加挂链路演练 | 京东云技术团队

1. 背景 当前微服务架构下,各个服务间依赖高,调用关系复杂,业务场景很少可以通过一个系统来实现,常见的业务场景实现基本涉及多个上下游系统,要保证整体链路的稳定性,需要尽量减少系统之间的耦合性,避免因为单点失效引起整个链路的故障。 2. 目标 通过混沌演练验证链路中部分系统发生故障时候的整体链路的表现,对链路保持正常运作的能力进行校验和评估,提前识别未知隐患并进行修复,进而保障整个链路更好地抵御生产环境中的失控条件,提升整体场景功能的稳定性。 3. 演练链路 对真实的业务场景进行混沌演练,就需
分类: 其他 发布时间: 05-28 19:25 阅读次数: 0

Flutter三棵树系列之详解各种Key | 京东云技术团队

简介 key是widget、element和semanticsNode的唯一标识,同一个parent下的所有element的key不能重复,但是在特定条件下可以在不同parent下使用相同的key,比如page1和page2都可以使用ValueKey(1) 。 常用key的UML关系图如上,整体上key分为两大类-LocalKey和GlobalKey,这两个key都是抽象类,LocalKey的实现类有 ValueKey、ObjectKey和UniqueKey,GlobalKey实现类有Labe
分类: 其他 发布时间: 05-28 19:25 阅读次数: 0

Velocity不用愁!Velocity系统的前端工程化之路 | 京东云技术团队

Velocity是一个基于Java的Web页面模版引擎。十多年前,Velocity将Java代码从Web页面中分离出来,使得开发者能够并行网页开发和Java开发。随着十年前后端分离的浪潮涌动,回首再面对这些基于Velocity的旧系统,无论是后端还是前端人员维护,都会存在诸多问题: (1)后端人员维护:不熟悉前端开发模式,需要花费大量精力学习UI和Js框架; (2)前端人员维护:Velocity渲染依赖Java环境,需要花费大量精力学习Maven工程、环境配置,且前端MVC框架版本老,开发效率
分类: 其他 发布时间: 05-28 19:25 阅读次数: 0

我在京东做研发丨京东云全链路应用性能监控体系建设

随着业务的快速发展 相关技术的快速迭代 如何在庞杂的业务和技术架构的背景下 对我们的业务应用运行健康情况进行全面监控 帮助大家快速地发现、定位并解决问题 从而降低故障影响,提升用户体验 本期,京东云PaaS产品研发部产品经理为你带来 京东云全链路应用性能监控体系建设的故事 嘉宾介绍 辛宁 京东云PaaS产品研发部监控日志产品经理 15年互联网行业相关从业经历,10年toB产品和监控数据类产品设计经验,主导参与设计实现了拨测,移动端和前端真实用户体验监控,服务端应用性能监控,大数据中台可视化平台
分类: 其他 发布时间: 05-28 19:24 阅读次数: 0

京东购物车如何提升30%性能

本文主要介绍在业务复杂化背景下,京东零售购物车团队努力践行工匠精神,通过全异步化改造提升系统性能、提升用户体验。通过本文,读者可以了解购物车中台进行全异步化改造的总体方案,以及方案落地过程中遇到的问题及解决方法,读者可重点关注文中提到的多分页并行后,分页精细控制及底层RPC异常信息问题。 一、背景 购物车面临的挑战: 1)新业务 :随着业务形态的丰富,购物车在不断支持各种新业务,依赖的外部接口也随之增加; 2)下沉 :一些前端调用的接口下沉到购物车中台; 3)前置 :结算流程很多业务前置到购物
分类: 其他 发布时间: 05-28 19:23 阅读次数: 0

万字长文详述ClickHouse在京喜达实时数据的探索与实践 | 京东云技术团队

1 前言 京喜达技术部在社区团购场景下采用JDQ+Flink+Elasticsearch架构来打造实时数据报表。随着业务的发展 Elasticsearch开始暴露出一些弊端,不适合大批量的数据查询,高频次深度分页导出导致ES宕机、不能精确去重统计,多个字段聚合计算时性能下降明显。所以引入ClickHouse来处理这些弊端。 数据写入链路是业务数据(binlog)经过处理转换成固定格式的MQ消息,Flink订阅不同Topic来接收不同生产系统的表数据,进行关联、计算、过滤、补充基础数据等加工关联
分类: 其他 发布时间: 05-28 19:23 阅读次数: 0

前端微服务无界实践 | 京东云技术团队

一、前言 随着项目的发展,前端SPA应用的规模不断加大、业务代码耦合、编译慢,导致日常的维护难度日益增加。同时前端技术的发展迅猛,导致功能扩展吃力,重构成本高,稳定性低。因此前端微服务应运而生。 前端微服务优势 1.复杂度可控: 业务模块解耦,避免代码过大,保持较低的复杂度,便于维护与开发效率。 2.独立部署: 模块部署,减少模块影响范围,单个模块发生错误,不影响全局,提升项目稳定性。 3.技术选型灵活: 在同一项目下可以使用市面上所有前端技术栈,也包括未来的前端技术栈。 4.扩展性,提升业务
分类: 其他 发布时间: 05-28 19:22 阅读次数: 0

Elasticsearch之join关联查询及使用场景 | 京东云技术团队

在Elasticsearch这样的分布式系统中执行类似SQL的join连接是代价是比较大的,然而,Elasticsearch却给我们提供了基于水平扩展的两种连接形式 。这句话摘自Elasticsearch官网,从“然而”来看,说明某些场景某些情况下我们还是可以使用的 一、join总述 1、关系类比 在关系型数据库中,以MySQL为例,尤其B端类系统且数据量不是特别大的场景,我们经常用到join关键字对有关系的两张或者多张表进行关联查询。但是当数据量达到一定量级时,查询性能就是经常困扰的问题。由
分类: 其他 发布时间: 05-28 19:22 阅读次数: 0

开发者福利来了 | 京东云全系核心产品公开比价:我们承诺,买贵就赔!

今天我们官宣一件大事:京东云开启中国云市场的首次公开比价活动,承诺“买贵就赔”! 比价活动的底气,来源于京东云对技术降本的不懈追求——京东二十年来大规模的场景实践,推动京东云持续加大自研技术投入,提高资源利用率,进而最大化降低成本。今年3月,京东云负责人在京东云城市峰会广州站上提出,极致性价比是下一代数字基础设施所必备的重要特征。 恰逢京东618即将开启,京东云此举将进一步降低用云门槛,助力中小企业在数字化升级过程中降本增效。 {{o.name}} {{m.name}}
分类: 其他 发布时间: 05-28 19:20 阅读次数: 0

降低 Spark 计算成本 50.18 %,使用 Kyligence 湖仓引擎构建云原生大数据底座,为计算提速 2x

2023 中国开源未来发展峰会于 5 月 13 日成功举办。在大会开源原生商业分论坛,Kyligence 解决方案架构高级总监张小龙发表《云原生大数据底座演进 》主题演讲,向与会嘉宾介绍了他对开源发展的见解,数据底座向云原生湖仓一体架构演进的趋势,以及 Kyligence 湖仓引擎能够在构建下一代云原生数据底座发挥重要价值,通过提升计算性能,大幅度降低计算成本,以下是演讲内容: 大家好,本次演讲内容包含三个部分: 第一部分的内容,是基于个人经历、以及所见所闻产生的思考,来谈谈我对发展开源的一些
分类: 移动开发 发布时间: 05-28 19:19 阅读次数: 0

【实践篇】领域驱动设计:DDD工程参考架构 | 京东云技术团队

背景 为什么要制定参考工程架构 不同团队落地DDD所采取的应用架构风格可能不同,并没有统一的、标准的DDD工程架构。有些团队可能遵循经典的DDD四层架构,或改进的DDD四层架构,有些团队可能综合考虑分层架构、整洁架构、六边形架构等多种架构风格,有些在实践中可能引入CQRS解决读模型与写模型的差异化等等。即使无法制定通用的、标准的工程应用架构,但为团队制定一个遵循领域驱动设计思想的参考架构依然有价值。基于以下原因: 为团队实践DDD的战术设计提供可以快速开始的工程参考 参考工程大量的命名和结构决
分类: 移动开发 发布时间: 05-28 19:19 阅读次数: 0

Iframe在Vue中的状态保持技术 | 京东云技术团队

引言 Iframe是一个历史悠久的HTML元素,根据MDN WEB DOCS官方介绍,Iframe定义为HTML内联框架元素,表示嵌套的Browsing Context,它能够将另一个HTML页面嵌入到当前页面中。Iframe可以廉价实现跨应用级的页面共享,并且具有使用简单、高兼容性、内容隔离等优点,因此以Iframe为核心形成了前端平台架构领域第1代技术。 众所周知,当Iframe在DOM中初始渲染时,会自动加载其指向的资源链接Url,并重置内部的状态。在一个典型的平台应用中,一个父应用主页
分类: 移动开发 发布时间: 05-28 19:19 阅读次数: 0

Ehcache 缓存框架详解

一、Ecache 简介 Ecache 是一个广泛使用的 Java 缓存框架,能够有效提升应用性能,并减少与后端数据库的交互次数。
分类: 编程语言 发布时间: 05-28 19:17 阅读次数: 0

前端开发如何更好的避免样式冲突?级联层(CSS@layer)

作者:vivo 互联网前端团队 - Zhang Jiqi 本文主要讲述了CSS中的级联层(CSS@layer),讨论了级联以及级联层的创建、嵌套、排序和浏览器支持情况。级联层可以用于避免样式冲突,提高代码可读性和可维护性。 一、什么是级联层(Cascade Layers)? 1.1 级联层的官方定义 我们参看Cascading and Inheritance Level 5(13 January 2022) 中6.4节所述: 级联层提供了一种结构化的方式来组织和平衡单个起源中的问题。单个级联层
分类: 移动开发 发布时间: 05-28 19:17 阅读次数: 0

慢查询日志中的 Lock_time 从哪里来?

经常关注慢查询日志的读者,和 Lock_time 应该算是老相识了,大家对这位老相识了解有多少呢? 研究 Lock_time 之前,我对它的了解,仅限于它表示锁等待时间。至于它包含哪些锁等待时间、怎么计算得到的,我并不清楚。 所以,我一直有个困惑:为什么有些 SQL 执行时间很长,Lock_time 却很小(例如:0.001 秒)? 今天我们就一起来看看,Lock_time 包含哪些锁等待时间、以及是怎么计算得到的? 本文基于 MySQL 8.0.32 源码,存储引擎为 InnoDB。 目录
分类: 移动开发 发布时间: 05-28 19:17 阅读次数: 0

教你1分钟搞定2小时字幕

摘要:本文将介绍如何使用录音文件识别极速版给无字幕视频自动生成字幕。 本文分享自华为云社区《利用录音文件极速版为视频生成字幕》,作者:戈兀。 引言 越来越多的人们使用抖音、B站等视频app,记录、分享日常生活,随之互联网上产生了大量的长、短视频。字幕是影响视频观看体验的重要因素。以日常分享为主的视频创作者往往没有时间为视频制作字幕,在创作者发音不清楚的前提下,没有字幕的视频可能会让观众困惑甚至产生理解偏差。而带字幕的视频让观众有更好的观看体验,“一气呵成”顺畅地看完。 语音识别技术(Autom
分类: 移动开发 发布时间: 05-28 19:16 阅读次数: 0

构建高可用云原生应用,如何有效进行流量管理?

摘要:对于那些希望使用华为云的云原生服务的人来说,这篇文章提供了很好的指导,让他们了解如何通过容错来保证他们的服务的可用性和稳定性。 本文分享自华为云社区《构建高可用云原生应用,如何有效进行流量管理?》,作者: breakDawn。 随着云原生的概念越来越火,服务的架构应该如何发展和演进,成为很多程序员关心的话题。大名鼎鼎的《深入理解java虚拟机》一书作者于21年推出了新作《凤凰架构》,从这本书中可以看到当前时下很多最新的技术或者理念。 因此本文以及后续都将持续沉淀发布这本书的学习笔记和思考
分类: 移动开发 发布时间: 05-28 19:16 阅读次数: 0

超好用的回归测试工具,我不允许你还不会用!

AREX 是一款开源的基于真实请求与数据的自动化回归测试平台(项目地址:https://github.com/arextest),利用 Java Agent 技术与比对技术,通过流量录制回放能力实现快速有效的回归测试。同时提供了接口测试、接口比对测试等丰富的自动化测试功能,无需编程能力也可快速上手。 在使用 AREX 流量录制功能时,AREX Java Agent 会记录生产环境中 Java 应用的数据流量和请求信息,并将这些信息发送给 AREX 数据存取服务(Storage Service)
分类: 移动开发 发布时间: 05-28 19:15 阅读次数: 0