随笔分类 -  架构师之路-方法论

摘要:对于version + ext方案,还是有很多朋友质疑“线上不可能这么用”。本篇将讲述一下58同城最核心的数据“帖子”的架构实现技术细节,说明不仅不是“不可能这么用”,而是大数据,可变属性,高吞吐场景下的“常用手段”。 一、背景描述及业务介绍 问:什么是数据库扩展的version + ext方案? 阅读全文
posted @ 2017-12-25 15:36 Sheldon_blog 阅读(297) 评论(0) 推荐(0)
摘要:零、缘起 讨论问题域: (1)数据量大、并发量高场景,在线数据库属性扩展 (2)数据库表结构扩展性设计 一、哪些方案一定是不行的 (1)alter table add column 要坚持这个方案的,也不多解释了,大数据高并发情况下,一定不可行 (2)通过增加表的方式扩展,通过外键join来查询 大 阅读全文
posted @ 2017-12-25 15:34 Sheldon_blog 阅读(337) 评论(0) 推荐(0)
摘要:需求缘起 产品第一版:用户有用户名、密码、昵称等三个属性,对应表设计: user(uid, name, passwd, nick) 第二版,产品经理增加了年龄,性别两个属性,表结构可能要变成: user(uid, name, passwd, nick, age, sex) 假设数据量和并发量比较大, 阅读全文
posted @ 2017-12-25 15:32 Sheldon_blog 阅读(222) 评论(0) 推荐(0)
摘要:一、什么是高可用 高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。 假设系统一直能够提供服务,我们说系统的可用性是100%。 如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是9 阅读全文
posted @ 2017-12-25 15:28 Sheldon_blog 阅读(268) 评论(0) 推荐(0)
摘要:一、什么是高并发 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。 高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per 阅读全文
posted @ 2017-12-25 15:24 Sheldon_blog 阅读(148) 评论(0) 推荐(0)
摘要:什么是负载均衡 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。 常见的负载均衡方案 常见互联网分布式架构如上,分为客户端层、反向代理nginx层、站点层、服务层、数据层。可以看到,每 阅读全文
posted @ 2017-12-25 15:20 Sheldon_blog 阅读(196) 评论(0) 推荐(0)
摘要:一、需求缘起 Web-Server通常有个配置,最大工作线程数,后端服务一般也有个配置,工作线程池的线程数量,这个线程数的配置不同的业务架构师有不同的经验值,有些业务设置为CPU核数的2倍,有些业务设置为CPU核数的8倍,有些业务设置为CPU核数的32倍。 “工作线程数”的设置依据是什么,到底设置为 阅读全文
posted @ 2017-12-25 15:18 Sheldon_blog 阅读(283) 评论(0) 推荐(0)
摘要:一、需求源起 几乎所有的业务系统,都有生成一个记录标识的需求,例如: 消息标识 订单标识 帖子标识 这些记录标识往往都是数据库中的唯一主键,数据库上会建立聚集索引(cluster index),即在物理存储上以这个字段排序。 这个记录标识上的查询,往往又有分页或者排序的业务需求,例如: (1)拉取最 阅读全文
posted @ 2017-12-25 10:07 Sheldon_blog 阅读(196) 评论(0) 推荐(0)
摘要:一、秒杀业务为什么这么难做 秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据。 例如: 小米手机每周二的秒杀,可能手机只有1万部,但瞬间进入的流量可能是几百几千万。 12306抢票,票是有限的,但是抢票的人很多,都读取相同的库存。读写冲突,锁非常严重,这是业务难的地方。 那我们怎么优化秒杀 阅读全文
posted @ 2017-12-24 13:12 Sheldon_blog 阅读(637) 评论(0) 推荐(0)