自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 揭秘海报生成技术

如服务器性能稳定且排版复杂,推荐使用服务端生成方式;如需要复杂排版的完美呈现或者有用户交互的场景,推荐使用客户端生成;如普通的排版或者是较大并发的场景,使用前端生成即可。前端推荐使用html2canvas或modern-screenshot,两者各有小缺陷,实践中可以替换使用,会规避大部分问题;如果有操作海报元素、高度DIY海报的需求推荐使用Fabric.js。

2024-09-23 14:35:25 1075

原创 《WebRTC 探索:前端视角下的实时通信解析》(下)

在 WebRTC 多对多通信场景中,常用的架构包括 Mesh、SFU 和 MCU 三种方式。每种架构在不同应用场景中都有其优缺点,选择合适的方案需要综合考虑实际需求。

2024-09-18 11:50:43 930

原创 《WebRTC 探索:前端视角下的实时通信解析》(中)

继《WebRTC 探索:前端视角下的实时技术解析(上)》一文之后,我们已经对 WebRTC 的基础概念和 API 有了初步的了解。在本文中,我们将进一步挖掘 WebRTC 的核心技术,探索其在前端开发中的应用潜力。随着实时通信技术的飞速发展,WebRTC 已经成为现代网络应用的关键技术之一。接下来,让我们深入探讨WebRTC 的核心技术及其实现细节。在 WebRTC 中,PeerConnection 是实现点对点(P2P)视频通话的核心 。要全面理解 PeerConnection的工作原理,首先需要掌握一些

2024-09-09 10:34:34 1206

原创 转转质检数字化埋点探索之路

转转每一台‘官方验’的设备,都会经过质检站点对其进行全方面的检测。在检测流水线中,质检工程师对每台设备进行检测作业,检测过程产生的数据如理有效利用起来,看看我们是怎么思考的

2024-09-05 15:15:01 877

原创 转转搜推排序服务的响应对象序列化优化

本项目旨在解决搜索推荐服务化过程中因日志传输引起的序列化额外耗时问题。经过三次版本迭代和测试,最终方案成功落地。结论与优化前相比,排序响应对象的序列化过程节省了约 83% 的序列化开销,网络开销减少了约 67%。搜索:有效降低了排序服务响应中的序列化过程对搜索接口整体耗时的影响,使得新的搜索排序服务在性能上达到了上线要求。推荐:在推荐排序服务化后,接入本项目方案,在多个展位实现了接口整体耗时绝对值降低 2ms 到 6ms 的性能提升。思考从问题发现到解决上线,项目历时近一个月。

2024-09-05 14:21:36 1002

原创 MySQL插入更新死锁问题解析

一个简单的修改-插入操作竟然产生了死锁?想要了解其中缘由吗?赶紧打开文章一探究竟吧

2024-09-04 14:09:35 1644

原创 RR隔离级别下还有幻读吗

RR隔离级别下还有幻读产生吗?产生的必要条件是什么呢?赶紧打开文章一探究竟吧!

2024-09-03 20:36:17 989

原创 RocketMQ消息回溯实践与解析

已经消费完成的消息如何重复消费?消费进度过慢如何快速消费最新消息?本文将从源码层面揭晓这个秘密,赶紧打开文章一探究竟吧

2024-09-03 20:23:31 970

原创 《WebRTC 探索:前端视角下的实时通信解析》(上)

WebRTCWeb 实时通信)是一个可以用在视频聊天、音频聊天或 P2P 文件分享等 Web 应用中的API。——摘自:MDN - WebRTCWebRTC 是网页即时通信(Web Real-Time Communication)的缩写;它提供了支持网页浏览器进行实时语音和视频对话的 API;允许浏览器之间直接建立连接,实现点对点的通信。

2024-09-02 17:38:17 1404

原创 解读第三方授权登录:OAuth2.0协议标准的应用与流程

OAuth是Open Authorization(开放授权)的缩写,它是一项业界标准的授权协议,主要用于授权第三方应用访问其他应用的资源,同时避免用户将自身的凭据(用户名和密码)直接提供给第三方应用。OAuth2.0是OAuth协议的延续版本,相比于OAuth1.0采用了更简单和更安全的授权流程,同时引入了一些新的安全特性。如果向前兼容OAuth1.0,难以确保整个授权体系的安全性,所以OAuth2.0不向前兼容OAuth1.0。

2024-09-02 10:50:03 1485

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

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

2024-08-23 15:06:52 947

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

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

2024-08-22 20:07:39 474

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

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

2024-08-19 10:50:21 1247

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

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

2024-08-15 11:10:30 789

原创 一文读懂JavaScript原型链

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

2024-08-13 10:44:27 936

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

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

2024-08-07 16:15:43 1060

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

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

2024-08-05 11:15:51 790

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

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

2024-08-01 11:37:39 725

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

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

2024-07-31 21:13:49 646

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

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

2024-07-31 19:48:56 678

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

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

2024-07-25 11:27:20 797

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

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

2024-07-24 20:11:06 684

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

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

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

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

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

2024-07-01 19:35:05 740

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

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

2024-06-27 16:25:57 769

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

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

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

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

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

2024-05-24 10:40:52 388

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

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

2024-05-15 19:32:33 753

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

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

2024-05-08 18:00:00 1501

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

特别需要注意的一点,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 569

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

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

2024-04-24 10:28:48 550

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

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

2024-04-17 20:25:03 1053

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

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

2024-04-12 16:09:28 842

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

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

2024-04-07 19:43:15 952

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

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

2024-02-28 18:45:00 1369

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

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

2024-02-01 10:54:35 549

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

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

2024-01-24 19:58:49 1528

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

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

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

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

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

2024-01-15 17:11:06 483

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

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

2024-01-10 20:09:22 952

空空如也

空空如也

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

TA关注的人

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