背景 部门内有一些亿级别核心业务表增速非常快,增量日均100W,但线上业务只依赖近一周的数据。随着数据量的迅速增长,慢SQL频发,数据库性能下降,系统稳定性受到严重影响。本篇文章,将分享如何使用MyBatis拦截器低成本的提升数据库稳定性。   业界常见方案 针对冷数据多的大表,常用的策略有以2种: 1.删除/归档旧数据。 2.分表。   归档/删除旧数据 定期将冷数据移动到归档表或者冷存储中,或定期对表进行删除,以减少表的大小。此策略逻辑简单,只需要编写一个JOB定期执行SQL删除数据。我们开始也是用这种方案,但此方案也有一些副作用: 1.数据删除会影响数据库性能,引发...

  GlkGUhBxsw3T   2024年01月26日   13   0   0 Java

一、前言 1、不规范的错误码有什么问题? 1)理解困难 描述:如果错误码的命名或描述不清晰,可能导致其他开发人员难以理解其含义。 举例:例如,一个错误码命名为“ERR1001”,没有进一步的注释或描述,可能导致其他开发人员不知道这个错误码代表的具体问题。 2)不一致性 描述:如果错误码的命名、描述或分类不统一,可能导致代码的可读性和可维护性降低。 举例:例如,有的错误码使用三位数,有的使用两位数;有的错误码描述具体的问题,而有的描述则较为模糊。 3)排查困难 描述:如果错误码没有清晰的命名和描述,可能使得调试过程变得困难。 举例:当出现问题时,开发人员需要查看大量的日志或代码来定位问...

前言 随着金融App业务的不断发展,为了满足不同场景下的用户体验及丰富的业务诉求,业务产品层面最直接体现就是大量新功能的上线及老业务的升级,随之也给研发带来了巨大的压力,所以研发效率的提升就是当前亟需解决的问题,今天我们来看下“画眉”平台是如何帮助前端研发同学提效的。 前端开发流程概述 在讨论之前,我们先看下前端开发流程,下图是一个典型的场景:     通过上图我们可以发现,前端开发主要分为“UI还原”和“业务逻辑实现”两个阶段,其中UI还原阶段需要通过编写代码对设计稿进行1:1像素级还原,业务逻辑实现阶段主要包括数据绑定及交互效果实现。 “UI还原”阶段,研发通常需...

  GlkGUhBxsw3T   2024年01月22日   14   0   0 云计算

Elasticsearch在db_ranking的排名不断上升,其在存储领域已经蔚然成风且占有非常重要的地位。 随着Elasticsearch越来越受欢迎,企业花费在ES建设上的成本自然也不少。那如何减少ES的成本呢?今天我们就特地来聊聊ES降本增效的常见方法: 弹性伸缩 分级存储 其他:(1)数据压缩(2)offheap 1弹性伸缩 所谓弹性伸缩翻译成大白话就是随时快速瘦身与增肥,并且是头痛医头,按需动态调整资源。当计算能力不足的时候我们可以快速扩充出计算资源;当存储资源不足时,能够快速扩容磁盘,。 1-1计算存储分离 ES使用计算存储分离架构之后,解决了资源预...

  GlkGUhBxsw3T   2024年01月15日   14   0   0 云计算

​  1前言 在《ElasticSearch降本增效常见的方法》一文中曾提到过zstd压缩算法[1],一步一个脚印我们终于在京东ES上线支持了zstd;我觉得促使目标完成主要以下几点原因: Elastic官方原因:zstd压缩算法没有在Elastic官方的开发计划中;Elastic的licenes变更,很多功能使用受限 ES产品竞争力:提升京东ES产品在业界的竞争力,两大云友商和其他大厂都在陆续支持,在对外比拼的时候,我们需要提升我们这方面的能力 信创大背景:我们需要对开源组件有更好的自主管控和建设能力 京东零售ES与云ES产品融合:有更好的机会去打磨我们的ES内核 降本增效:zt...

  GlkGUhBxsw3T   2024年01月15日   15   0   0 算法与数据结构

引言 在京东家居事业部,线索CRM系统扮演着至关重要的角色,它作为构建家居场景核心解决方案集的首要环节,肩负着获客和拓展业务的重要使命。然而,随着业务的不断扩张和市场需求的日益增长,系统原有的架构开始显露出诸多不适应之处,如架构设计不再清晰,代码存在过量冗余,核心的读写接口响应时间长等问题,这些问题严重制约了业务的敏捷性和快速发展。鉴于这一状况,系统的性能优化和调整势在必行,以确保其能够更好地支撑业务的快速发展需求。 系统优化概述 一.线索提交接口的统一与性能优化 系统优化前存在的问题 1.新渠道接入周期长,代码冗余, 系统中存在五个主要的线索创建渠道,它们的处理流程高度相似,但是代码却是分散...

  GlkGUhBxsw3T   2024年01月11日   17   0   0 项目与团队管理

1、前言 不要犹豫了, GC最大停顿时间小于1ms,支持16TB内存,这么高的性能提升,也不需要复杂的调优,节省了这个时间,你去陪对象不香嘛。 上篇文章给大家带来了JDK11升级JDK17的最全实践,相信大家阅读后对于升级JDK17有了基本的了解。同时我们也会比较好奇,ZGC的原理是啥样的,怎么做到停顿时间那么短?本文将通过对比ZGC与传统垃圾回收器的改动点,从多个维度综合分析为什么ZGC的停顿时间那么短。同时由于ZGC的深层次原理可能较为晦涩难懂,本文将尽可能采用图文并茂的方式,以使大家更容易理解ZGC的核心原理。   2、ZGC是什么 ZGC垃圾收集器(ZGarbageCol...

  GlkGUhBxsw3T   2024年01月10日   15   0   0 Java

一、业务背景 系统业务功能:系统内部进行数据处理及整合,对外部系统提供结果数据的初始化(写)及查询数据结果服务。 系统网络架构:       部署架构对切量上线的影响内部管理系统上线对其他系统的读业务无影响 分布式缓存可进行单独扩容,与存储及查询功能升级无关 通过缓存层的隔离,系统扩展期间外部系统可保持不变,只对内部管理系统升级 内部系统上线/验证时,除了业务场景1相关的初始化操作,仍可提供读服务,降低上线影响   二、本次升级整体实施方案:   整体实施方案图例:       (一)、设立目标...

  GlkGUhBxsw3T   2024年01月09日   14   0   0 架构设计

1什么是数字化资产 维克托·迈尔·舍恩伯格在《大数据时代》中提到:“虽然数据还没有被列入企业的资产负债表,但这只是一个时间问题。”数据资源将和土地、人力、资金等生产要素一样,成为企业的资产。业界对于数据资产的定义是企业或组织拥有或控制的,能在未来带来经济利益的数据资源。 数字化资产是指由企业拥有或控制的,任何以数字化形式存在(便于电脑处理,通常是二进制)或由数字化方式生成或转化为数字化形式时能给企业带来经济利益的资源。业界对于数据资产的定义是企业或组织拥有或控制的,能在未来带来经济利益的数据资源。 数字化资产的对象包括数据(以数字化形式存在)和能够通过技术手段转化为数字化形式(数据)的一切资源...

  GlkGUhBxsw3T   2024年01月09日   19   0   0 大数据

物流的分拣业务在某些分拣场地只有一个数据源,因为数据量比较大,将所有数据存在一张表内查询速度慢,也为了做不同设备数据的分库管理,便在这个数据源内创建了多个不同库名但表完全相同的数据库,如下图所示: 现在需要上线报表服务来查询所有数据库中的数据进行统计,那么现在的问题来了,该如何 满足在配置一个数据源的情况下来查询该数据源下不同数据库的数据 呢,借助搜索引擎查到的分库实现大多是借助Sharding-JDBC框架,配置多个数据源根据分库算法实现数据源的切换,但是对于只有一个数据源的系统来说,我觉得引入框架再将单个数据源根据不同的库名配置成多个不同的数据源来实现分库查询的逻辑我...

  GlkGUhBxsw3T   2024年01月08日   22   0   0 Java

​ 当项目的SQL查询慢得像蜗牛爬行时,用户的耐心也在一点点被消耗,作为研发,我们可不想看到这样的事。这篇文章将结合行云部署项目的实践经验,带你走进SQL优化的奇妙世界,一起探索如何让那些龟速的查询飞起来! 序章:EXPLAIN揭开查询的神秘面纱 EXPLAIN命令是数据库管理员和SQL开发人员的一项强大工具,它可以帮助理解MySQL如何执行特定的查询。它显示了MySQL执行查询的详细信息,包括如何连接表以及连接的顺序,是否使用了索引,以及每个表的读取行数等。通过这些信息,你可以判断查询性能瓶颈,并对查询或表结构进行相应的优化。 使用EXPLAIN的常见列解释: •id:查询的标识符,如果是复...

  GlkGUhBxsw3T   2024年01月08日   19   0   0 MySQL

书接上文,前面在Spring应用合并之路(一):摸石头过河介绍了几种不成功的经验,下面继续折腾…   四、仓库合并,独立容器 在经历了上面的尝试,在同事为啥不搞两个独立的容器提醒下,决定抛开SpringBoot内置的父子容器方案,完全自己实现父子容器。 如何加载web项目? 现在的难题只有一个:如何加载web项目?加载完成后,如何持续持有web项目?经过思考后,可以创建一个boot项目的SpringBean,在该Bean中加载并持有web项目的容器。由于SpringBean默认是单例的,并且会伴随Spring容器长期存活,就可以保证web容器持久存活。结合Spring扩展点概览及实践...

  GlkGUhBxsw3T   2024年01月05日   14   0   0 Java

一、背景简介 站长工作台,致力于为京东物流所有站长、运营管理人员提供高效工作平台,拥有多元化的业务形态。我们力求提升团队研发效率、实现敏捷业务交付,以打造一支具备灵活性、高度协作和强适应能力的敏捷团队。 二、提效案例描述 2.1、痛点分析 站长工作台的报表页面和任务卡片页面,大多数的UI风格和交互方式一致,面对新业务诉求时,开发人员难以避免重复工作,从而导致团队开发效率降低、代码质量难把控以及项目维护困难等诸多问题。 2.2、解决方案 根据业务场景,构建一套低代码工具链,涵盖代码编辑器、版本管理、解析器、能力编排等,提供可视化开发能力、预设组件、集成部署等功能。借助图形化界面和组件,助力开发人...

  GlkGUhBxsw3T   2024年01月05日   12   0   0 敏捷开发

本篇我们讲红黑树的经典实现,Java中对红黑树的实现便采用的是经典红黑树。前一篇文章我们介绍过左倾红黑树,它相对来说比较简单,需要大家看完上篇再来看这一篇,因为旋转等基础知识不会再本篇文章中赘述。本篇的大部分内容参考《算法导论》和Java实现红黑树的源码,希望大家能够有耐心的看完。 在正文开始之前我们先看如下问题: 为什么红黑树比AVL树要应用得更广泛呢? 关于红黑树和AVL树,大家可能看过“在最坏情况下,AVL树和红黑树的查找次数都是对数级别的,虽然红黑树的系数更高一些,但是没有本质的区别,是可以容忍的。AVL树最致命的地方在于删除节点时旋转次数是对数级别的,而红黑树最多只需要3次旋转,...

  GlkGUhBxsw3T   2024年01月05日   16   0   0 架构设计

前言 商智C店,是依托移动低码能力搭建的一个应用,产品面向B端商家。随着应用体量持续增大,考虑产品定位及用户体验,我们针对性能较差页面做了一次优化,并取得了不错的效果,用户体验值(UEI)从一般提升到良好。本文详细记录了优化思路及过程,期望给正在或打算做用户体验提升的小伙伴提供一些参考。 一、性能优化概览 从宏观方面讲,前端性能优化主要包含两个层面: •快速的首屏响应 指的是从用户输入URL到页面完整渲染出来的过程中,通过减少资源请求时长、合理化页面渲染等方式,让页面内容尽快呈现到用户面前,达到舒适的展示效果。 •流畅的交互体验 指的是在资源加载且页面渲染完成后,用户与页面的交互反馈及...

  GlkGUhBxsw3T   2024年01月03日   12   0   0 React

背景 近期参与了一个攻坚项目,前期因为其他流程原因,测试时间已经耽搁了好几天了,本以为已经解决了卡点,后续流程应该顺顺利利的,没想到人在地铁上,bug从咚咚来 没有任何修改的服务接口,抛出异常: java.lang.ClassCastException:java.util.HashMapcannotbecasttocn.xxx.xxx.xxx.xxx.BatchInfo 排查过程 1、作为资深写bug的老司机,第一感觉是传参的报文格式有问题了,可以通过模拟报文排查。于是乎,在群里圈了服务提供方同学B看下,BG快速的用测试工具+本地debug的方式,验证了下报文格式,发现居然都调用成功了。。。 ...

一、背景 从Web诞生之日起,UI自动化就成了测试的难点,到现在近30年,一直没有有效的手段解决WebUI测试的问题,尽管发展了很多的webdriver驱动,图片diff驱动的工具,但是这些工具的投入产出比一直被质疑,自动化率越多维护成本越高,大部分都做着就放弃了,还有一部分在做与不做间纠结。 本文结合一些开源的项目探索使用GPT自动做UI测试的可能性。 二、方案选型 当前UI的主要问题:一个是通过Webdriver控制浏览器执行,这些工具都需要先查找到对应元素的Elements,无论是录制的还是自己编写的在面对UI变化,元素变化时都需要耗费很大的精力去重新识别,解析Dom查找,这个工作乏味且...

  GlkGUhBxsw3T   2023年12月26日   14   0   0 软件测试

Debug的时候,都遇到过手速太快,直接跳过了自己想调试的方法、代码的时候吧…… 一旦跳过,可能就得重新执行一遍,准备数据、重新启动可能几分钟就过去了。 好在IDE们都很强大,还给你后悔的机会,可以直接删除某个StackFrame,直接返回到之前的状态,确切的说是返回到之前的某个StackFrame,从而实现让程序“逆向运行”。 这个ResetFrame的能力,可不只是返回上一步,上N步也是可以的;选中你期望的那个帧,直接ResetFrame/DropFrame,可以直接回到调用栈上的某个栈帧,时间反转! 可惜这玩意也不是那么万能,毕竟是通过stackpop这种操作实现,实际上只是给调用栈...

  GlkGUhBxsw3T   2023年12月25日   15   0   0 Java

前言: 授人以鱼不如授人以渔.先学会用,在学原理,在学创造,可能一辈子用不到这种能力,但是不能不具备这种能力。这篇文章主要是沉淀使用nginx+lua+redis实现灰度,当我们具备了这种能力,随时可以基于这种能力和思想调整实现方案:比如nginx+lua+(其他数据源)、nginx+(其他脚本语言) 一、灰度方案: 常见的灰度实现方案: 请求路由:通过请求中的标识(如用户ID、设备ID、请求头等)来决定是否将请求路由到灰度环境。可以使用反向代理(如Nginx、Envoy)或API网关(如Kong、Apigee)来实现路由规则。 权重控制:将流量按照一定的权重比例分配到不同的环境中。可以通过...

导读 不用训练lora,一张图就能实现风格迁移,还支持多图多特征提取,同时强大的拓展能力还可接入动态prompt矩阵、controlnet等等,这就是IP-Adapter,一种全新的“垫图”方式,让你的AIGC之旅更加高效轻松。 都是“垫图”,谁能还原你心中的图 “垫图”这个概念大家肯定都不陌生,此前当无法准确用prompt描述心中那副图时,最简单的办法就是找一张近似的,然后img2img流程启动,一切搞定。 可img2img简单的同时,也有它绕不过去的局限性,比如对prompt的还原度不足、生成画面多样性弱,特别是当需要加入controlnet来进行多层控制时,参考图、模型、controln...

关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~