得物社区是一大批年轻人获取潮流信息、分享日常生活的潮流生活社区。其中用户浏览的信息,进行个性化的分发,是由推荐系统来决策完成的。目前得物社区多个场景接入了推荐算法,包括首页推荐双列流、沉浸式视频推荐、分类tab推荐流、直播推荐流等多个场景,为了给用户提供更好的服务和体验,我们从整个推荐系统维度为相关服务做了大量优化。现在主流的推荐系统都会有召回、粗排、精排和机制等多个模块组成,本文主要介绍我们在精排层面演进过程中做的一些工作和思考。
JVM,即Java Virtual Machine。Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。 一个完整的JVM包含的知识体系是很庞大的,例如下面的每一个章节包含的知识点完全可以写成一本厚厚的书籍。本文抽取JVM中的字节码、即时编译器、运行时数据区、对象内存布局、垃圾收集、常用参数等几个方面进行编写。基于篇幅有限,其他的例如:内存模型、类加载、多线程、反射、Javaagent、JVM性能监控等本文就不再赘述了,有兴趣的可以自行搜索相关资料。
随着业务不断迭代,SCM 的页面也变得越来越多,置身于持续增加、优化系统功能层面的需求,渐渐忽视了使用者对系统体验层面的诉求。 近期通过线上反馈渠道收集到的问题中,有不少都是关于页面打开速度比较慢,为了能够提升系统使用体验和效率,我们对 SCM 的打开速度做了些针对性的迭代优化。
本文主要介绍使用卡诺图化简多变量逻辑表达式的原理与方法,此方法是一种逻辑计算思想,在任意技术平台类似的多元化场景中均可适用。 本文以客户端的一个业务场景为例,从举例分析到实际应用的步骤,介绍卡诺图工具的使用,让我们轻松应对复杂交互或多条件判断的编码。
供应链仓储域子域繁多,例如库存域,lpn域等,平时开发的过程中涉及很多分布式事务的场景,例如收货加库存,发货扣库存,拣货入箱,发货出箱等一些分布式事务场景,所以迫切需要出一套分布式事务处理方案,在调研了市场上的分布式事务解决方案,结合wms自身业务域不是强一致性的特色,选择了最终一致性,且使用本地消息表去实现它。 本地消息表这个方案最初是ebay提出的,核心就是将需要分布式处理的任务通过本地消息日志存储的方式来异步执行。该方案可以存到本地文本,数据库或消息队列,再通过异步线程或者自动job发起重试。
测试环境治理一直是各大公司非常重要的一个课题,测试环境稳定性很大程度影响迭代开发&测试效率。 综合来看,测试环境不稳定的原因主要有以下几点: 测试环境的变更非终态变更,经常会有代码发布/配置发布导致服务无法启动或者链路有问题的情况。 变更频繁,开发需要联调、测试需要迭代测试,代码需要变更,配置也需要变更,权限控制就比较难做,增加了测试环境不稳定性。 并行需求,同一时间单个应用需要多个分支同时支持多个需求的测试,测试环境资源的抢占和冲突比较明显。 得物测试环境稳定性治理也经历了几个阶段:
CDN域名太多造成请求碎片化,导致以下几个问题: TCP建连频繁,网络请求性能差 用于请求CDN静态资源的网络连接池资源有限,由于不同域名会各自创建TCP连接,进而竞争TCP连接池资源,导致TCP连接频繁中断。再次发起网络请求需要重新进行TCP建连增加了建连阶段耗时(包括:DNS解析、TCP握手、TLS握手),导致总耗时升高。 域名太多,日常维护成本高 域名太多导致域名管理、性能监控、性能优化、线上变更复杂度增加,人力成本及运维成本高。 如:得物IPv6升级项目、TLS1.3协议升级项目都需要按域名分批执行多次线上变更流程(包括:测试回归,变更申请,变更评审,变更验证,性能监控)。 部分域名命名不规范,存在下线风险 由于历史原因,存在多个不符合现有新域名规范的域名名称(如:xxx.poizon.com,xxx.dewu.com)。非得物主体的域名,存在被强制下线的风险,比如旧域名下线项目,投入了大量人力成本进行改造。 DNS解析IP频繁,阿里云HttpDNS服务成本高 域名太多增加了每个域名在TCP建连时调用阿里云HttpDNS解析对应IP的频次,解析次数升高导致HttpDNS服务成本
得物技术一直以"上海最好的技术团队"为目标,打造学习型组织、形成技术知识沉淀、持续提升技术硬实力。对内我们做SmartCode技术沙龙、毒享会、技术夜校、毒家博客、得物小报、技术双月刊,持续打造学习型组织,营造良好技术氛围。对外我们持续提供得物技术沙龙、得物技术公众号、得物技术直播,主题覆盖稳定生产、技术架构、端智能、体验创新、算法架构、云原生、大数据、研发效能、项目管理等,期待与你一起交流,共同探索。 本次对内技术沙龙SmartCode邀请到阿里的资深技术专家朱国云(宗岱)老师来给我们分享《内存数据库Tair实战》,因为他有10多年的分布式存储、数据库的从业经验,并主导了Tair在阿里电商的双十一大促和单元化建设中的高效运行。本次分享,朱老师从“Tair的发展历史、Tair重要节点的技术挑战以及云原生内存数据库Tair的产品形态、Tair关键能力解读”等内容展开,得物内部的技术同学表示干货很多,也学到了很多。为此,经过朱老师的允许,我们整理了老师演讲的主要内容,供大家学习和参考。