探讨篇(二):分层架构的艺术 - 打造合理且高效的架构体系
上篇从服务粒度角度进行了探讨,本文继续从服务内的分层角度探讨。本文的观点源自我在学习与实践过程中的深思熟虑,尚处于不断探索和验证的阶段。希望能“抛砖引玉”,激发更多的讨论与交流。让我们共同进步,在探讨与实证中寻求真知。一、背景应用分层看似直观,但实践中常见误区:开放接口Api层(或controller层)逻辑繁复,manager层调用混乱,service层沦为传输站。这种疏忽导致代码重用性差,层次
Java常用的JSON序列化与反序列化工具实践
JSON简介:JSON(Java Script Object Notation)是一种轻量级的数据交换格式,通常用于在不同系统之间传输数据。它基于 JavaScript 对象语法,但已成为一种独立于语言的格式。JSON 数据以键值对的形式组织,易于阅读和编写。为什么要使用 JSON?1.简单易用:JSON的语法简单,易于理解和编写,可以快速地进行数据交换。2.跨平台支持:JSON可以被多种编程语言
Vite 的预构建原理与实践| 京东物流技术团队
Vite 预构建的核心原理1. 兼容性与性能的双重目标Vite 的预构建旨在解决两个主要问题:兼容性和性能。对于兼容性,由于 Vite 在开发阶段将所有代码视为原生 ES 模块,因此需要将 CommonJS 或 UMD 格式的依赖转换为 ESM 格式。对于性能,Vite 通过预构建将多个内部模块的 ESM 依赖关系转换为单个模块,减少了网络请求的数量,从而提高了页面加载速度。2. 自动依赖搜寻Vi
CaffeineCache Api介绍以及与Guava Cache性能对比| 京东物流技术团队
一、简单介绍:CaffeineCache和Guava的Cache是应用广泛的本地缓存。在开发中,为了达到降低依赖、提高访问速度的目的。会使用它存储一些维表接口的返回值和数据库查询结果,在有些场景下也会在分布式缓存上再加上一层本地缓存,用来减少对远程服务和数据库的请求次数。CaffeineCache是以Guava Cache为原型库开发和扩展的一种本地缓存,并且适配Guava Cache的Api,但
系统国际化之多语言解决方案| 京东物流技术团队
1. 背景 随着京东各业务板块国际化进程的不断推进,诸多业务已经融入了多元文化中,一个一体化的多语言系统解决方案成为各个技术团队讨论的焦点。国际物流系统凭借在国际化领域多年的经验,特别是在系统多语言处理上长期的经验积累,总结了一套标准的系统多语言框架,旨在为大家提供帮助,避免各系统在国际化进程中重复的调研。这篇文章将由浅入深地论述如何从项目伊始就构建多语言,包
暗水印——空域:二值化图像水印(看不见我吧 啦啦啦~)
引言 随着计算机和网络技术的飞速发展,信息的安全保护问题日益突出。数字图像、音频和视频等多媒体数字产品愈来愈需要一种有效的版权保护方法——水印技术,通常用于保护知识产权、防止未经授权的访问、作弊等。 广义上可以把水印技术划分为四大类:图像水印、视频水印、音频水印和文本水印。这些水印技术都有其独特的特点和应用场景,需要根据具体的数字媒体保护需求进行选
“她”来了,陪伴赛道巨变!为GPT-4o加上你的一个数字分身
OpenAI的每次发布,感觉都会干翻一个行业。昨晚GPT-4o的发布,情感陪伴这个赛道像是又要掀起一番惊天巨变。各位创业老板们摩拳擦掌,无数创意精英又要踏入新的征程。开源社区一定也异常兴奋,相信Huggingface和Github马上又会孕育出新宠,大家都期待做出AI时代的Super App,至少也要是一个Killer App,正如去年暑假大红大紫的妙鸭相机和当下的Kimi Chat。而R
京东秒送售后系统退款业务重构心得| 京东零售技术团队
一、重构背景1.1、退款京东秒送秒送退款有2套结构,代码逻辑混乱;其中秒送、天选部分售后单是和平生pop交互退款,部分是和售后中台交互退款;并且兼容3套逻辑;痛点:代码繁重,缺乏合理性的设计,后续迭代开发以及维护成本高,同时增加了系统的风险和不稳定性1.2、金额计算京东秒送两套独立的逻辑结构计算,在此基础上针对退差和非退差又实现了2套逻辑;针对商品件维度、商品行维度、售后单维度计算金额混乱,缺乏领
通过MVEL表达式和Apache Chain职责链模式解耦MQ消息处理节点的实践应用
导读 本文主要讲解了MVEL表达式和责任链设计模式相结合一起的消息处理解决方案设计、解耦消息处理节点以及方便代码维护扩展。通过“订单拆单消息”的接入作为具体实践案例,简要阐述了MVEL表达式和Apache Chain职责链设计模式应用场景。希望通过本文,读者可以对MVEL表达式和责任链模式相关概念有一定的认识,并且能够将它们应用到具体的业务场景之中,帮助大家在实际代
暗水印——空域:音频水印(看不见我吧 啦啦啦~)
引言随着计算机和网络技术的飞速发展,信息的安全保护问题日益突出。数字图像、音频和视频等多媒体数字产品愈来愈需要一种有效的版权保护方法——水印技术,通常用于保护知识产权、防止未经授权的访问、作弊等。广义上可以把水印技术划分为四大类:图像水印、视频水印、音频水印和文本水印。这些水印技术都有其独特的特点和应用场景,需要根据具体的数字媒体保护需求进行选择使用。技术与实践意义本文以“多通道、多层水印”为目标
探索大语言模型:理解Self Attention
一、背景知识在ChatGPT引发全球关注之后,学习和运用大型语言模型迅速成为了热门趋势。作为程序员,我们不仅要理解其表象,更要探究其背后的原理。究竟是什么使得ChatGPT能够实现如此卓越的问答性能?自注意力机制的巧妙融入无疑是关键因素之一。那么,自注意力机制究竟是什么,它是如何创造出如此惊人的效果的呢?今天,就让我们共同探索这一机制背后的原理。在亿万年的进化中,人类具备了快速关注环境中变化因素的
画像系统人群服务数据存储架构的演进与创新| 京东云技术团队
一、画像系统命中接口相关简介什么是画像系统标签画像系统是一种数据管理和分析工具,它通过整合和分析用户的行为数据、交易数据、社交数据等多维度信息,构建出用户的详细画像,帮助咱们运营人员更好地理解目标用户群体,从而实现精准营销和精细化运营。提供了那些能力:标签注册,标签沉淀,标签取值;群体圈选;群体服务(群体命中,群体下载和订阅等)核心能力怎么实现精准营销和精细化运营命中接口:它作为连接用户数据和营销
精准测试实践-测试范围分析| 京东云技术团队
一、背景需求迭代过程中产研漏评估业务影响点是bug漏到生产环境的主要原因之一。减少漏评估问题的发生是提升交付质量的重要方向,精准测试是除依赖产研人员能力及经验外的另一种分析业务影响点的方式。二、实践方案1.方案简介下面介绍针对java单应用的代码改动影响自动分析方案。1)原理介绍基于代码依赖关系分析改动的代码影响到哪些入口代码(接口、消息、任务等入口方法)。举例,如下图,假设某应用改动了底层方法1
如何优雅的使用ollama| 京东云技术团队
入门开源大语言模型,最好的工具就是ollama,这是一款简单的大模型本地部署框架,支持基于命令行的方式运行多种大语言模型,并提供了相应的Python和JS SDK,可以基于此方便实现Chatbot UI。这篇文章就以京东云智算平台为例(其他平台也是类似,甚至可以在本地电脑运行),分享如何一键安装ollama的基本操作。首先,在控制台创建GPU实例,待实例状态为运行中后,一键安装ollama
OSS_PIPE:Rust编写的大规模文件迁移工具
文盘rust 好久没有更新了。这段时间笔者用rust写了个小东西,跟各位分享一下背景随着业务的发展,文件数量和文件大小会急剧增加,文件迁移的数量和难度不断攀升。oss_pipe 是rust编写的文件迁移工具,旨在支撑大规模的文件迁移场景。编写 oss_pipe 的初衷•同类产品面临的问题•rust 语言带来的技术红利•oss_pipe 的基本功能常见的 oss 迁移工具•ossimport 阿里出
什么? 20分钟,构建你自己的LLaMA3应用程序! | 京东云技术团队
4月19日,Meta发布了最新的大语言模型LLaMA3,具体包括一个 8B 模型和一个 70 B 模型,上下文长度支持8K, 被誉为史上最强开源大语言模型,开源社区的“重磅”,效果直指GTP4。在诸多评测任务上,LLaMA3都有非常炸裂的效果。 8B模型在多项指标中超越了Gemma 7B和Mistral 7B Instruct,而70B模型则超越了闭源的Claude 3 Sonne
浅析MySQL代价模型:告别盲目使用EXPLAIN,提前预知索引优化策略| 京东零售技术团队
背景 在 MySQL 中,当我们为表创建了一个或多个索引后,通常需要在索引定义完成后,根据具体的数据情况执行 EXPLAIN 命令,才能观察到数据库实际使用哪个索引、是否使用索引。这使得我们在添加新索引之前,无法提前预知数据库是否能使用期望的索引。更为糟糕的是,有时甚至在添加新的索引后,数据库在某些查询中会使用它,而在其他查询中则不会使用,这种情况下,我们无法
一招MAX降低10倍,现在它是我的了| 京东零售技术团队
一.背景性能优化是一场永无止境的旅程。到家门店系统,作为到家核心基础服务之一,门店C端接口有着调用量高,性能要求高的特点。C端服务经过演进,核心接口先查询本地缓存,如果本地缓存没有命中,再查询Redis。本地缓存命中率99%,服务性能比较平稳。随着门店数据越来越多,本地缓存容量逐渐增大到3G左右。虽然对垃圾回收器和JVM参数都进行调整,由于本地缓存数据量越来越大,本地缓存数据对于应用GC
深入理解分布式锁:原理、应用与挑战| 京东物流技术团队
前言在单机环境中,我们主要通过线程间的加锁机制来确保同一时间只有一个线程能够访问某个共享资源或执行某个关键代码块,从而防止各种并发修改异常。例如,在Java中提供了synchronized/Lock。但是在分布式环境中,这种线程间的锁机制已经不起作用了,因为系统会被部署在不同机器上,这些资源已经不是在线程间共享了,而是进程之间共享资源。为了解决这个问题,分布式锁应运而生。本文将详细解析分布式锁的原
深入理解java反射机制及应用 | 京东物流技术团队
因为最近项目中经常有java反射的使用,而其中的IOC、动态代理用到了反射,因此趁这个机会来总结一下关于Java反射的一些知识,复习一下。本篇基于JDK 1.8。java反射机制是什么反射原理Java反射机制(Java Reflection) 是 Java 的特征之一,是Java语言中一种动态(运行时)访问、检测和修改它本身的能力,主要作用是动态(运行时)获取类的完整结构信息、调用对象的方法。