摘要: 一、推荐系统架构介绍 推荐系统是一个微庞大的工程、算法与业务综合的系统,其主要分为三大子系统: 1)线下推荐子系统; 2)线上推荐子系统; 3)效果评估子系统; 后文将重点讨论以上三大子系统的设计与实现。 二、线下推荐子系统 线下推荐子系统又主要分为线下挖掘模块、数据管理工具两大部分。 线下挖掘模块 阅读全文
posted @ 2017-12-25 16:08 Sheldon_blog 阅读(2142) 评论(0) 推荐(0) 编辑
摘要: 好的架构化是进化而来的,不是设计出来的 58沈剑 核心内容:58同城流量从小到大过程中,架构是如何演进的?遇到了哪些问题?以及如何解决这些问题? 核心观点:好的架构不是设计出来的,而是进化而来的。 如何演进:站点流量在不同阶段,会遇到不同的问题,找到对应阶段站点架构所面临的主要问题,在不断解决这些问 阅读全文
posted @ 2017-12-25 16:06 Sheldon_blog 阅读(504) 评论(0) 推荐(1) 编辑
摘要: 通过上篇文章的介绍,知道了要实施微服务,首先要搞定RPC框架,RPC框架分为客户端部分与服务端部分。 RPC-client的部分又分为: (1)序列化反序列化的部分(上图中的1、4) (2)发送字节流与接收字节流的部分(上图中的2、3) 前一篇文章讨论了序列化与范序列化的细节,这一篇文章将讨论发送字 阅读全文
posted @ 2017-12-25 16:03 Sheldon_blog 阅读(985) 评论(0) 推荐(0) 编辑
摘要: 通过上篇文章的介绍,知道了要实施微服务,首先要搞定RPC框架,RPC框架的职责要向【调用方】和【服务提供方】屏蔽各种复杂性: (1)让调用方感觉就像调用本地函数一样 (2)让服务提供方感觉就像实现一个本地函数一样来实现服务 整个RPC框架又分为client部分与server部分: RPC-clien 阅读全文
posted @ 2017-12-25 16:02 Sheldon_blog 阅读(959) 评论(0) 推荐(0) 编辑
摘要: 今天开始聊一些微服务的实践,第一块,RPC框架的原理及实践,为什么说要搞定微服务架构,先搞定RPC框架呢? 一、需求缘起 服务化的一个好处就是,不限定服务的提供方使用什么技术选型,能够实现大公司跨团队的技术解耦,如下图: 服务A是欧洲团队提供服务,欧洲团队的技术背景是Java,可以用Java实现服务 阅读全文
posted @ 2017-12-25 16:01 Sheldon_blog 阅读(1167) 评论(0) 推荐(0) 编辑
摘要: 一、互联网架构为什么要进行服务化-总结 上一篇和大伙交流了一下,随着数据量、并发量、业务复杂度的增长,互联网架构会出现以下问题: (1)代码到处拷贝 (2)底层复杂性扩散 (3)基础库(so/jar/dll)耦合 (4)SQL质量得不到保障,业务相互影响 (5)数据库耦合 “服务化”是一个很好的解决 阅读全文
posted @ 2017-12-25 16:00 Sheldon_blog 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 近期参加一些业界的技术大会,“微服务架构”的话题非常之火,也在一些场合聊过服务化架构实践,最近几期文章期望用通俗易懂的语言聊聊了个人对服务化以及微服务架构的理解,希望能给大伙一些启示。如果有遗漏,也欢迎大家补充。 一、互联网高可用架构,为什么要服务化? 【服务化之前高可用架构】 在服务化之前,互联网 阅读全文
posted @ 2017-12-25 15:59 Sheldon_blog 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 一、缘起 (1)并发量大,流量大的互联网架构,一般来说,数据库上层都有一个服务层,服务层记录了“业务库名”与“数据库实例”的映射关系,通过数据库连接池向数据库路由sql语句以执行: 如上图:服务层配置用户库user对应的数据库实例物理位置为ip(其实是一个内网域名)。 (2)随着数据量的增大,数据要 阅读全文
posted @ 2017-12-25 15:57 Sheldon_blog 阅读(2065) 评论(2) 推荐(0) 编辑
摘要: 一、缘起 mysql主从复制,读写分离是互联网用的非常多的mysql架构,主从复制最令人诟病的地方就是,在数据量较大并发量较大的场景下,主从延时会比较严重。 为什么mysql主从延时这么大? 回答:从库使用【单线程】重放relaylog。 优化思路是什么? 回答:使用单线程重放relaylog使得同 阅读全文
posted @ 2017-12-25 15:56 Sheldon_blog 阅读(975) 评论(0) 推荐(0) 编辑
摘要: 需求缘起 大部分互联网的业务都是“读多写少”的场景,数据库层面,读性能往往成为瓶颈。如下图:业界通常采用“一主多从,读写分离,冗余多个读库”的数据库架构来提升数据库的读性能。 这种架构的一个潜在缺点是,业务方有可能读取到并不是最新的旧数据: (1)系统先对DB-master进行了一个写操作,写主库 阅读全文
posted @ 2017-12-25 15:55 Sheldon_blog 阅读(353) 评论(0) 推荐(0) 编辑