文章分类 - 58 沈剑系列
摘要:一、需求缘起 几乎所有的业务系统,都有生成一个唯一记录标识的需求,例如: 消息标识:message-id 订单标识:order-id 帖子标识:tiezi-id 消息标识:message-id 订单标识:order-id 帖子标识:tiezi-id 这个记录标识往往就是数据库中的主键,数据库上会建立
阅读全文
摘要:本文将以“用户中心”为例,介绍“单KEY”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践: 如何来实施水平切分 水平切分后常见的问题 典型问题的优化思路及实践 如何来实施水平切分 水平切分后常见的问题 典型问题的优化思路及实践 一、用户中心 用户中心是一个非常常见的业
阅读全文
摘要:一、案例缘起 我们经常使用事务来保证数据库层面数据的ACID特性。 举个栗子,用户下了一个订单,需要修改余额表,订单表,流水表,于是会有类似的伪代码: start transaction; CURDtable t_account; any Exception rollback; CURDtable
阅读全文
摘要:一、缘起 分布式环境下,多台机器上多个进程对一个数据进行操作,如果不做互斥,就有可能出现“余额扣成负数”,或者“商品超卖”的情况,如何实现简易分布式锁,对分布式环境下的临界资源做互斥,是今天将要讨论的话题。 二、互斥原理 原理:多个访问方对同一个资源进行操作,需要进行互斥,通常是利用一个这些访问方同
阅读全文
摘要:一、需求缘起 互联网公司,这样的场景是否似曾相识: 场景一:pm要做一个很大的运营活动,技术老大杀过来,问了两个问题: (1)机器能抗住么? (2)如果扛不住,需要加多少台机器? 场景二:系统设计阶段,技术老大杀过来,又问了两个问题: (1)数据库需要分库么? (2)如果需要分库,需要分几个库? 技
阅读全文
摘要:这几年,微服务架构这个术语渐成热门词汇,但它不是一个全新架构,更不是一个包治百病的架构。那么,微服务架构究竟能够解决什么问题,又带来哪些痛点? 本文将与大家谈谈这个问题,以及微服务架构的两大解耦利器配置中心和消息总线的最佳实践。 微服务架构解决的问题与带来的痛点 一 互联网高可用架构为什么要服务化
阅读全文
摘要:本文为了便于读者理解,将以“用户中心”数据库为例,讲解数据库架构设计的常见玩法。 一、用户中心 用户中心是一个常见业务,主要提供用户注册、登录、信息查询与修改的服务,其核心元数据为: 其中: uid为用户ID,主键 uname, passwd, sex, age, nickname, …等为用户的属
阅读全文
摘要:一、需求缘起 很多业务都有“计数”需求,以微博为例: 微博首页的个人中心部分,有三个重要的计数: 关注了多少人的计数 粉丝的计数 发布博文的计数 微博首页的博文消息主体部分,也有有很多计数,分别是一条博文的: 转发计数 评论计数 点赞计数 甚至是浏览计数 在业务复杂,计数扩展频繁,数据量大,并发量大
阅读全文

浙公网安备 33010602011771号