自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(140)
  • 收藏
  • 关注

原创 JDK21(21.0.2_13)分代ZGC在转转商列服务中的实践

分代ZGC是ZGC的一个实现版本,依据假说:应用中大部分对象都是短生命周期的,被设计为分代。它是一个可伸缩的低延迟垃圾收集器,最高支持TB级堆内存,能并发执行繁重任务,且不会让应用的暂停时间超过1ms。通过本文带你走近分代ZGC。

2024-08-23 15:06:52 890

原创 跨部门项目测试负责人全流程把控,我是这样做的!

基于跨部门项目的特点:跨多个部门、时间跨度大、涉及角色多,在项目的各个环节,各角色,都有可能遇到坑,每一个小细节处理不好,都可能影响项目的顺利推进,为项目的质量埋下隐患。正式需求评审前,要求拿到完整需求文档,一个跨部门的项目大概率需求量很大,如果不进行提前了解,仅凭PM现场的讲解,可能会跟不上,无法提出疑问和建议。对于大项目普遍周期很长,从设计测试方案到真正上线之前,可能会有别的新的业务功能上线,合并代码后,需要check当前的业务逻辑能否兼容新功能,没有预留开发和测试工作量。

2024-08-22 20:07:39 447

原创 【AI神助攻】用“v0“,自然语言秒变网站!

目前而言,我认为v0虽然还无法完全取代人类的创造力和复杂逻辑的处理能力,但它在开发过程中已经展现出了对开发人员的实质性帮助。它通过自然语言快速地生成页面代码,提高了工作效率,让开发人员能够专注于处理逻辑问题。同时,我们也能从v0的设计理念和生态中感受到它的雄心壮志——旨在成为一个更为高效的开发工具。随着技术不断进步,我们有理由相信,v0的潜力将得到进一步挖掘和实现。未来某一天,它或许真的能够在某些领域实现对人类工作的替代。

2024-08-19 10:50:21 861

原创 从自动化到智能化:物联网技术在转转智能质检中心的应用

在转转智能质检中心通过引入物联网技术,实现了自动化设备的智能化管理。本文将重点介绍物联网技术选型和落地方案。

2024-08-15 11:10:30 761

原创 一文读懂JavaScript原型链

每个对象(Object)都有一个私有属性指向另一个名为原型(prototype)的对象。原型对象也有一个自己的原型,层层向上直到一个对象的原型为null。根据定义,null没有原型,并作为这个原型链(prototype chain)中的最后一个环节。​ 摘自:MDN - 继承与原型链对象通过隐式原型(__proto__)属性指向其构造函数的原型对象(prototype),进而通过原型对象(prototype)的隐式原型(__proto__)属性指向更高层级的原型对象(prototype),最终指向。

2024-08-13 10:44:27 914

原创 Grafana动态视图在转转推送系统中的应用

动态视图是Grafana的一个插件,该插件可以动态填充数据、自定义数据与图表的交互。只要你的业务功能可以用流程图绘制,都可以通过本文的方式构建出一张动态视图,以可视化方式展现逻辑,帮助你快速定位正向、异常节点,减少排查问题过程中的人力投入。

2024-08-07 16:15:43 1026

原创 那些你不知道的JavaScript隐式类型转换

JavaScript是一种动态类型、弱类型语言,它在处理字符和字符串时表现出了独特的灵活性和复杂性。

2024-08-05 11:15:51 783

原创 点线面的智慧:转转JTS技术如何塑造上门履约地理布局

JTS,全称 Java Topology Suite,是一个用于创建和操作向量几何的 Java 库。提供了对几何模型的抽象,以及各种空间操作和空间关系判断,非常强大。Java Topology Suite (JTS) 作为一个功能强大的空间数据处理库,为开发者提供了丰富的工具来处理复杂的空间问题。它在许多地理信息系统得到了广泛的应用。这里只是对其的一个简单应用,后续还待更深入的挖掘。

2024-08-01 11:37:39 699

原创 转转上门履约服务拆分库表迁移实践

转转上门履约团队在服务拆分过程中数据迁移方案探讨以及实践。方案阐述了切换新旧库时关键操作步骤以及每个步骤需要注意的细节。

2024-07-31 21:13:49 631

原创 转转门店基于MQ的Http重试实践

我们来简单总结一下RetryExec的主要逻辑:在执行Http请求的时候,如果发生了IOException,会交给具体的RetryHandler来处理,然后由它的retryRequest方法来决定是继续重试还是抛出异常。再然后如果请求方法不是幂等的,也不会继续重试,这里我们熟悉的Post方法显然是不会进行重试的。MQ在消费的时候,会使用Apache HttpClient请求第三方接口,我们设置重试3次,如果请求一直失败,会先同步重试3次,如果还是失败,则本次消息消费失败,等待下一次重试消息继续这个流程。

2024-07-31 19:48:56 668

原创 从防范到防御异常场景处理机制终于闭环了

为什么要做异常场景自动化监控? 怎么做? 做这件事情的意义!QA在异常场景的处理上,之前更多地侧重于防范,异常场景数据的自动化监控更多地侧重于防御,在异常处理机制中二者缺一不可,相互协同形成闭环。

2024-07-25 11:27:20 784

原创 解锁转转门店业务灵活性:如何利用MVEL引擎优化结算流程

主要介绍MVEL表达式引擎在转转门店结算业务中的使用,通过引入前后的对比,突出了在解决现有问题中的作用。

2024-07-24 20:11:06 671

原创 服了!DELETE 同一行记录也会造成死锁!!

🤔 升级到最新版本可能会带来人力成本和系统风险;😏 可以解决死锁问题,但会引入脏读和幻读现象;😂 不影响数据一致性,会导致服务和数据库出现异常;🙂 开发成本相对较小,且影响范围可控,已被采纳;平日朗诵八股文时如涛涛江水连绵不绝,可实际业务场景总会遇到各种奇葩的问题。因此,我们应该始终对技术保持一颗敬畏之心,追求不断学习和成长。❤。

2024-07-03 19:06:25 707 1

原创 转转回收的持久层架构演进

我们在大部分开发场景下,对持久层的建设基于单库单表其实就可以实现当前的产品需求。但是随着业务发展越来越久,数据量、请求量也在不断的增加,只是单库单表可能不足以支撑系统的稳定运行,本文主要给大家分享一下笔者在项目实际迭代过程中对持久层稳定性的建设过程。简单来讲就是用户在一些活动场景下获取优惠券信息,领取并绑定到关系表里,后续用户去售卖一些商品的时候可以从领取的优惠券列表里选择一个合适的优惠券来使用。在从0到1做一个项目的时候,没必要过度设计,应该快速上线,保证系统正常运行即可。

2024-07-01 19:35:05 716

原创 转转游戏MQ重构:思考与心得之旅

游戏业务自 2017 年启航,至今已近乎走过七个春秋,历经漫长岁月的发展,不知不觉间背负起沉重的历史包袱。犹如一棵大树,既有繁茂精壮的枝桠,亦有诸多枯败凋零的枝叶。此文主要聚焦于商品更新 MQ 消费这一细微模块,详述游戏业务如何对原有代码予以重构,令游戏这棵大树重焕蓬勃生机。

2024-06-27 16:25:57 757

原创 转转回收业务策略中心的实践

转转回收业务的策略中心搭建,使用liteflow控制业务的策略流程。

2024-06-05 20:26:28 864 1

原创 揭秘支付对账:确保每一分钱的安全之旅

随着转转业务的迅速发展,业务场景日益复杂,单量与日俱增,支付部门每天与外部渠道的交易额也呈现水涨船高的趋势。迭代速度加快,故障概率也增大,这增加了资金安全的风险,对转转、用户包括商家都是不容忽视的挑战。系统化保障资金安全成为至关重要的任务,其中“对账”显得尤为核心。本文将深入探讨转转支付在“对账”这一领域的实践和解决方案,以更全面地阐述这一关键问题。对账在财务范畴,这是一个必要做的工作。

2024-05-24 10:40:52 362

原创 测试之路 - 精准而优雅

如何精准而优雅的测试,发现破绽,一击即中?在了解技术设计和代码实现的基础上,进行精准和精减的实践,提高效率,保证质量。

2024-05-15 19:32:33 751

原创 剁手党必看——转转红包使用规则与最优组合计算全解析

本文简述了最优红包组合的整体演进,下表是二代和三代在不同红包总量、商品数量、商品可用红包数量时,200ms完成计算组合数的情况对比(30次均值)如下图:通过二代三代的对比,我们不难发现,在面对大量计算时除了要注意JVM内存使用情况外(一代FullGC或溢出),还需要关注对象生成销毁的数量与频率,因为在面临大量计算时对象生成和GC也将成为性能瓶颈,三代相较二代,完成计算的组合数在5倍以上,这其间的差距都是因为二代Map对象的生成和销毁。关于作者马宝山, 转转交易中台Java开发工程师。

2024-05-08 18:00:00 1459

原创 我们在顺序消息和事务消息方面的实践

特别需要注意的一点,RMQ_SYS_TRANS_HALF_TOPIC消息是用来存储不能被消费者发现的消息,通过RMQ_SYS_TRANS_OP_HALF_TOPIC消息,来对RMQ_SYS_TRANS_HALF_TOPIC消息对应的事务状态来进行确认的,确认commit之后,需要将一阶段中设置的特殊Topic和Queue替换成真正的目标的Topic和Queue,后通过一次普通消息的写入操作来生成一条对用户可见的消息。这种方式吞吐量大,性能高,但是页缓存中的数据可能丢失,不能保证数据绝对的安全。

2024-04-25 16:32:25 562

原创 QA的成长之路——深入测试的奇妙之旅

QA 突破功能测试瓶颈的秘诀何在?更快、更稳、更准的交付如何解决?通过深入测试——通过了解系统内部实现来进行测试,我接触到新的测试思路,并从中获取到宝贵的经验,实现了自我成长突破。

2024-04-24 10:28:48 538

原创 突破数据存储瓶颈!转转业财系统亿级数据存储优化实践

业财系统在遇到数据存储瓶颈时,短时间内如何优化数据存储呢?一起了解下我们最后选择了什么方案解决此次问题。

2024-04-17 20:25:03 1046

原创 公司新来一个架构师, 将消费金融系统重构了

消费分期作为电商行业中重要的一环,今天我以一名后端研发视角,分享此次重构过程和新得。

2024-04-12 16:09:28 828

原创 不可思议!亿级数据竟然如此轻松同步至ES!

最近接了一个需求,要提供一个随意组合多个条件来查询订单数据的功能,看着数据库里过亿的订单量,头发不争气的又脱落了两根代表这个需求不简单

2024-04-07 19:43:15 888

原创 转转高效改表平台的演进之路

转转的改表平台系统拥有,用户交互,添加唯一索引,支持分库分表,丰富的监控,止血及部分治愈能力。可以定时改表,也可以支持快速改表。

2024-02-28 18:45:00 1367

原创 转转基于MQ的分布式重试框架设计方案

在分布式场景下,为了保障系统的可用性和数据的最终一致性,采用基于消息队列(MQ)的重试机制是一种常见的解决方案。

2024-02-01 10:54:35 541

原创 转转流量录制与回放的原理及实践

Repeater流量录制和回放为什么无需业务编码即可完成?它如何做到的?性能如何?线上流量如何录制?本文重点介绍流量录制和回放的底层实现原理,以及对线上流量录制的一些思考。

2024-01-24 19:58:49 1452

原创 Redis Cluster基于客户端对mget的性能优化

RedisCluster 的mget命令不支持跨槽位执行,Lettuce客户端按槽位分别执行mget,性能表现不加。本文介绍转转对提升Redis Cluster mget性能的优化。

2024-01-18 10:42:07 1795 1

原创 2023转转技术年货发布啦

转转研发中⼼三个公众号《转转技术》、《⼤转转FE》和《转转QA》共计发表百余篇技术⽂章,涉及各个部⻔的⼀线实践经验。在2024年春节来临之际,我们精选了其中54篇,整理制作成⼀本厚达500多⻚的电⼦书,作为新年礼物赠送给⼤家。

2024-01-15 17:11:06 479

原创 针对大规模服务日志敏感信息的长效治理实践

近年来,国家采取了多项重要举措来加强个人数据保护,这些举措旨在确保用户隐私的安全,同时确保企业合规运营。在处理敏感数据时,企业有责任采取适当的措施来保护用户信息。

2024-01-10 20:09:22 936

原创 转转服务瘦身实战

本文详细介绍了转转在服务瘦身方面的技术实现方案,尤其是代码瘦身部分,甚为详细。希望能对读者有所帮助,如遇技术问题可联系转转架构部。当前该项目收获的成果如下。发现僵尸服务功能上线较早,从10月1日至12月20日,共下线服务30个,实例数68个,节省内存246GB。发现僵尸代码功能上线不久,仍处于试用期,暂未有丰硕成果。但是我们统计了已接入服务的代码利用率,当前综合方法利用率仅43%,行数利用率仅50%,未来可期。发现僵尸组件依赖功能刚刚上线,目前数据量较小,还不足以得出结论。关于作者。

2024-01-05 14:44:51 999

原创 转转OLAP自助分析实践

介绍转转在OLAP自助分析场景的实践。通过为什么做自助分析、具体做成什么样、技术实现以及优化案例几个方面展开聊聊,供大家参考。

2023-12-27 19:31:05 1098

原创 如何为Electron应用开发原生模块

Node.js允许开发者使用C、C++等语言开发像普通的Node.js模块一样通过require()函数加载的原生模块。因为Electron内置Node.js,这样就使得Electron同样具备了相同的能力。

2023-12-26 10:23:55 160

原创 如果你也在用ZK,那这个导致集群挂掉的坑一定得注意!

ZK的选举端口3888在收到错乱的数据包时,可能会因创建负数大小的数组而抛出NegativeArraySizeException,导致选举端口的监听线程挂掉。

2023-12-25 10:43:14 172

原创 移动端如何做好数据防护

流量的背后,是海量的数据,而数据又逐渐成为各个企业的核心资产。做好数据的防护工作,是每一个互联网企业需要认真对待的一件事情。

2023-12-19 10:30:04 69

原创 慎用,Mybatis-Plus这个方法可能导致死锁

Mybatis-Plus这个方法在并发场景下会产生死锁,各位同学慎用此方法

2023-12-13 20:28:12 388

原创 React Hooks学习指北

自定义hooks是在基础上的一个拓展,可以根据业务需要制定满足业务需要的hooks,更注重的是逻辑单元。通过业务场景不同,我们到底需要做什么,怎么样把一段逻辑封装起来,做到复用,这是自定义hooks产生的初衷。hooks 专注的就是逻辑复用, 我们的项目,不仅仅停留在组件复用的层面上。hooks让我们可以将一段通用的逻辑存封起来。将我们需要它的时候,开箱即用即可。

2023-12-12 10:21:10 87

原创 浏览器如何运行一段JavaScript代码

至此本文分析完了 JavaScript 代码执行的整个阶段。解析器将 JavaScript 代码解析(词法分析、语法分析)成AST并创建执行上下文解释器 Ignition 将AST转化为字节码解释器 Ignition 对字节码逐条解释执行如果发现热点代码(HotSpot),后台编译器 TurboFan 会将热点代码编译成机器码并保存,进而提升执行效率。整个JavaScript代码执行是慢启动,越执行越快。这种字节码配合解释器和编译器的技术叫做即时编译(JIT)。

2023-12-05 10:13:43 86

原创 基于ChatGPT的智能客服助手

人工客服需要面对大量原始数据?ChatGPT来帮你提高人效!ChatGPT落地 转转 人工客服场景全流程来喽!

2023-10-17 17:34:34 608 1

原创 解决GC毛刺问题——转转搜索推荐服务JDK17升级实践

随着转转业务规模的不断增长,我们的搜索推荐服务正在面临严峻的垃圾回收带来的服务接口耗时毛刺问题。为此,我们计划通过升级JDK版本来实现GC问题的改善。

2023-09-27 18:55:10 351

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除