Freedom

淡泊以明志,宁静以致远。

如何设计与实现一个分布式索引框架(五):分布式

这是一个系列文章,大部分内容都来自我过去在小红书发现 Feed 团队工作期间的实践和经验。在介绍的过程中我会尽量不掺杂过多的业务细节,而专注于这背后我个人一些浅薄的设计思想,希望你在阅读完这些文章以后能够直接或者间接地拓展到不同的场景。

前面几篇文章介绍的技术都是在单机上实现的,但如果做不到分布式那整个系统的扩展性将会受到非常大的限制。本篇文章将会围绕分布式这个话题讨论。

如何设计与实现一个分布式索引框架(四):索引更新

这是一个系列文章,大部分内容都来自我过去在小红书发现 Feed 团队工作期间的实践和经验。在介绍的过程中我会尽量不掺杂过多的业务细节,而专注于这背后我个人一些浅薄的设计思想,希望你在阅读完这些文章以后能够直接或者间接地拓展到不同的场景。

上一篇文章介绍了如何实现正排索引和二级索引,但要创建索引也得先有数据才行,本篇将会介绍数据是如何更新的。

Maybe News Issue #0

前言:从这一期开始这个系列将会有一个正式的名字「Maybe News」,名字来源于我非常喜欢的一个国内的音乐厂牌「兵马司」(Maybe Mars)。本身我分享的内容也很有可能是一些旧闻,只不过对于我来说是还未了解的知识罢了。上一期的名字还是维持原样就不做修改。你也可以通过邮件订阅这个系列的文章。

如何设计与实现一个分布式索引框架(三):正排索引

这是一个系列文章,大部分内容都来自我过去在小红书发现 Feed 团队工作期间的实践和经验。在介绍的过程中我会尽量不掺杂过多的业务细节,而专注于这背后我个人一些浅薄的设计思想,希望你在阅读完这些文章以后能够直接或者间接地拓展到不同的场景。

上一篇文章介绍了如何定义 schema、查询 API 以及怎样实现倒排索引,本篇将会着重介绍另一种重要的索引类型「正排索引」,以及跟正排索引密切相关的「二级索引」。

如何设计与实现一个分布式索引框架(二):Schema、API 及倒排索引

这是一个系列文章,大部分内容都来自我过去在小红书发现 Feed 团队工作期间的实践和经验。在介绍的过程中我会尽量不掺杂过多的业务细节,而专注于这背后我个人一些浅薄的设计思想,希望你在阅读完这些文章以后能够直接或者间接地拓展到不同的场景。

上一篇文章中简单介绍了什么是推荐系统以及实现一个推荐系统的核心组件有哪些,文章最后引入了一个非常重要的概念「索引」,本篇将会首先从框架使用者的角度介绍如何定义索引,框架有哪些 API 可以使用以及从设计者的角度介绍如何实现一个简单的倒排索引。

如何设计与实现一个分布式索引框架(一):概览

这是一个系列文章,大部分内容都来自我过去在小红书发现 Feed 团队工作期间的实践和经验。在介绍的过程中我会尽量不掺杂过多的业务细节1,而专注于这背后我个人一些浅薄的设计思想,希望你在阅读完这些文章以后能够直接或者间接地拓展到不同的场景。

在介绍什么是索引框架之前先了解一下我们当时面临的业务场景2,业界现在的 feed 流产品已经逐步从非个性化全面过渡到个性化,所谓的个性化 feed 其实就是基于机器学习的推荐系统

A Little Throught About Microservices

知乎在 4 年前已经开始尝试服务化,至今也经历了好几个架构的变迁演化。我大约是 2013 年开始在知乎负责服务化的工作,对服务化的理解也从最初的模糊逐渐变得清晰,前段时间看了一篇叫做 Microservices – Not A Free Lunch! 的文章,也想趁着这个机会梳理总结目前为止我的一些感悟和想法。