公司:得物
得物,原名“毒”,是中华人民共和国上海市上海识装信息科技有限公司推出的一个电商手机应用。第三方商家和个人可以入驻得物平台与其他用户进行交易。
关于Sentinel的那些事
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。
Sentinel是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助您保障微服务的稳定性。
亿级别关系链之GDB实战
我们都知道MySQL被称为关系型数据库,其他众多存储引擎被称为非关系型数据库,这里要聊的GDB就是其中的一种。说来也讽刺,MySQL被称为关系型数据库,但是实际上处理关联关系并不那么友好。Join语句稍有不慎就是一个慢查询,DBA同学也往往盯着Join语句,常常建议我们能不用就不用。而GDB(Graph Database)的图形结构存储本身,就代表着关联关系,能够很好处理这些问题。
在社区业务中,关系尤其重要,特别是用户与用户之间的关注关系、用户与内容的点赞关系等等。这些信息能代表用户的喜好,我们能使用这些信息让他们找到志同道合者,让他们看到更多喜好的内容。本文中,我们通过几个问题,来聊聊GDB在得物社区亿级别关系链中的实战。
Android编译提速黑科技——Wade Plugin
随着得物App业务高速发展,Android项目的代码量与组件数量迅速增加,项目编译时长也明显升高。今年初增量编译平均耗时接近3.9分钟,严重影响了开发效率,也促使我们探索各种措施缩短编译时间提升开发效率。
iOS卡顿监控实施与性能调优
卡顿就是在应用使用过程中出现界面不响应或者界面渲染粘滞的情况,用户在操作App时,会出现的页面掉帧现象,给用户直接观感受就是页面卡卡的,严重影响用户体验。
从重构到扩展——跨端通讯SDK
在移动端App开发中,由于H5 Web页面具有原生应用不具备的多平台复用、热更新等诸多便利特性,我们往往会将一部分对性能体验要求不是特别高的页面采用H5 Web完成,然后App基于WebView作为容器承载页面,而跨端通讯就是这一场景下的刚需功能。
如何让图像识别任务玩出新意
对于做 CV 同学的人来说,图像识别是入门中最简单的模型,也是最最基础的模型。在不同的 CV 任务中,即使发展多年,都一直保留着利用训练好的图像识别任务重的模型权重,作为 backbone 用于加速训练收敛的作用。但是面对一些图像识别的任务,我们如何根据业务需求去改造一个已经比较完备的识别任务,还是蛮有意思的一个话题。
社区项目迁移 Diff 自动化测试实践
我在社区搜索迁移项目中首次落地了 Diff 自动化测试,从测试到上线的过程中,累计发现很多处bug,发现了很多潜在的、不易发现的问题;最终该项目上线后流量从5%提升到100%,仅用一周完成全量的切换,且过程中指标无异常。
大促压测,遇到的那些问题
大促,对于电商公司来说就像家常便饭。那么如何保证大促时线上系统的稳定性呢?答案就是:全链路压测。
全链路压测就是对业务功能的整条链路进行压测,并且使用真实的线上环境,这样才能保证压测结果跟大促时的流量应对不会差太多。但是压测的时候需要对底层存储进行影子库的配置,所谓影子库就是复制一份一样的业务数据库,当压测的流量来临时数据操作都是走影子库,这样才能保证真实的业务数据不被污染。
今天分享下压测过程中遇到的一些问题,也是一些经验,能够帮助我们在后续的工作中对设计方案,编码的重视。当你写一个接口,面临调用量 100 的QPS和 1000的QPS,所需要考虑的点不止多一星半点。
「后端支持技术」工单一些线上问题排查&排查思路过程分享
自从入职得物,接触工单系统之后,我碰到一些大大小小的问题;于是做了些记录与分析,分享下问题的排查思路。
在项目在起步阶段,一般都会为了快速上线快速给业务提供服务,欠缺设计考虑。一方面是因为业务在初期阶段需求不明确,另一方面也是因为开发难以预料到后面业务发展导致以前的代码变成了后来的问题。
iOS内存泄漏监控实践
iOS内存泄漏是一个不起眼的小问题,但是随着业务增加,项目越来越大,内存泄漏导致的卡顿、耗电、OOM等问题也会越来越多,得物作为快速崛起的一家公司,技术没有完全跟上业务的发展,此问题更为严重。
在得物APM架构团队的研发实践中,我们参考了市面的一些内存泄漏监控方案,研发了基于对象关系扫描,精准定位泄漏对象的方案,并可用于生产环境。
本文主要分享下该解决方案的技术背景,技术原理,为该问题的解决提供相对比较完整的方案和一些新的思路。
得物主子订单模型
每个电商公司订单系统大概率都会有主子订单的概念,而主子订单与业务模式和业务特征紧密相连,得物的订单设计是什么样子?
得物直播秒开体验提升
在视频直播中,有几个关键的体验指标,如卡顿率,清晰度,延迟时间,秒开速度等,本文介绍的就是得物直播在秒开体验上做的一些优化措施。
GoReplay流量录制回放实战
随着应用程序的复杂度的增长,测试它所需要的工作量也呈指数级增长。 GoReplay 为我们提供了复用现有流量进行测试的简单想法。
社区容器服务发现及负载均衡
得物社区在云原生这方面走得比较快,所有 Go 服务都运行在 K8S 集群,已用上 Istio。后面进行了 Dubbo-go 改造,实现了传统微服务和新兴 ServiceMesh 一键切换。
K8S 虽好,但也会带来额外的复杂度,特别是两套一起使用时。
让我们通过今天的文章深入其中,了解技术细节,直击问题本源。
得物网络优化-TLS升级最佳实践
得物App的图片、视频等资源有反馈加载较慢、有卡顿感。它们使用阿里云CDN进行下发,客户端与CDN服务器之间的请求耗时较长对用户体验产生了极大影响。
得物App核心的CDN域名共10个,其中流量最大的域名是cdn.poizon.com,占比92%,使用场景包括图片、视频、H5资源、小文件等,涉及得物App全域。
因此,本文主要以cdn.poizon.com为主讲解CDN网络性能优化过程。
深入理解synchronzied底层原理
synchronized是Java中的关键字,是一种同步锁。在多线程编程中,有可能会出现多个线程同时争抢同一个共享资源的情况,这个资源一般被称为临界资源。