HelloWorld搬运工

HelloWorld搬运工

排序:
默认
按更新时间
按访问量

典型数据库架构设计与实践

本文,将介绍数据库架构设计中的一些基本概念,常见问题以及对应解决方案,为了便于读者理解,将以“用户中心”数据库为例,讲解数据库架构设计的常见玩法。 一、用户中心用户中心是一个常见业务,主要提供用户注册、登录、信息查询与修改的服务,其核心元数据为:User(uid, uname, passwd, s...

2017-12-06 21:28:48

阅读数:95

评论数:0

换IP的是你,凭啥重启的却是我

一、缘起很多公司,技术经常遇到这样的场景:1)硬件升级,要换一台高配机器2)网络重新规划,若干服务器要调整机架3)服务器当机,要重新部署恢复服务… 更具体的,如上图:数据库换了一个ip,此时往往连接此数据库的上游需要修改配置重启,如果数据库有很多上游调用方,改配置重启的调用方会很多,每次换ip的成...

2017-12-06 21:23:23

阅读数:56

评论数:0

单KEY业务,数据库水平切分架构实践

本文将以“用户中心”为例,介绍“单KEY”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践:如何来实施水平切分水平切分后常见的问题典型问题的优化思路及实践 一、用户中心用户中心是一个非常常见的业务,主要提供用户注册、登录、信息查询与修改的服务,其核心元数据为:User...

2017-12-06 21:18:24

阅读数:68

评论数:0

从IDC到云端架构迁移之路

机房迁移是一个很大的动作:15年在58同城实施过一次(“逐日”项目),几千台物理机,从IDC迁到了腾讯的天津机房,项目做了10个多月,跨所有的部门,与所有的业务都相关;16年在58到家又实施了一次(“凌云”项目),几百台虚拟机,从IDC迁到阿里云,前后大概一个季度的时间,也是所有技术部门都需要配合...

2017-12-05 21:55:40

阅读数:139

评论数:0

“id串行化”到底是怎么实现的

一、需求缘起在上一篇文章《消息“时序”与“一致性”为何这么难?》中,介绍了一种为了保证“所有群友展示的群消息时序都是一致的”所使用的“id串行化”的方法:让同一个群gid的所有消息落在同一台服务器上处理。有朋友就要问了,如何保证一个群gid的消息落到同一个服务器处理呢,“id串行化”具体是怎么实现...

2017-12-05 21:46:07

阅读数:46

评论数:0

如何实现超高并发的无锁缓存

一、需求缘起【业务场景】有一类写多读少的业务场景:大部分请求是对数据进行修改,少部分请求对数据进行读取。例子1:滴滴打车,某个司机地理位置信息的变化(可能每几秒钟有一个修改),以及司机地理位置的读取(用户打车的时候查看某个司机的地理位置)。void SetDriverInfo(long drive...

2017-12-05 21:41:37

阅读数:60

评论数:0

如何快速实现高并发短文检索

一、需求缘起某并发量很大,数据量适中的业务线需要实现一个“标题检索”的功能:(1)并发量较大,每秒20w次(2)数据量适中,大概200w数据(3)是否需要分词:是(4)数据是否实时更新:否 二、常见潜在解决方案及优劣(1)数据库搜索法具体方法:将标题数据存放在数据库中,使用like来检索优点:方案...

2017-12-04 08:09:17

阅读数:160

评论数:0

巧用CAS解决数据一致性问题

缘起:在高并发的分布式环境下,对于数据的查询与修改容易引发一致性问题,本文将分享一种非常简单但有效的优化方法。一、业务场景业务场景为,购买商品的过程要对余额进行查询与修改,大致的业务流程如下:(1)从数据库查询用户现有余额 SELECT money FROM t_yue WHERE uid=$ui...

2017-12-03 22:06:29

阅读数:63

评论数:0

创业公司快速搭建立体化监控之路

一、需求缘起创业型公司有系统监控么?来看两个case:case 1:CXO大群内贴了一张“用户微信投诉”的截图(1)CXO大群内贴了一张“用户微信投诉”的截图(2)技术反馈“正在跟进”(3)10分钟之后,CXO询问进度,技术反馈“正在解决”(4)60分钟之后,CXO说怎么还没有解决,技术反馈“正在...

2017-12-03 18:09:10

阅读数:74

评论数:0

消息“时序”与“一致性”为何这么难

分布式系统中,很多业务场景都需要考虑消息投递的时序,例如:(1)单聊消息投递,保证发送方发送顺序与接收方展现顺序一致(2)群聊消息投递,保证所有接收方展现顺序一致(3)充值支付消息,保证同一个用户发起的请求在服务端执行序列一致消息时序是分布式系统架构设计中非常难的问题,ta为什么难,有什么常见优化...

2017-11-30 08:07:13

阅读数:174

评论数:0

IM状态同步究竟是推还是拉

需求缘起 “在线状态一致性”(好友在线状态,群友在线状态)是即时通讯领域较难解决的一个技术问题,如何精准实时的获得好友、群友的在线状态,是今天将要探讨的话题。 好友状态一致性 问题一:用户uid-A登录时,如何获取自己全部好友的在线状态? 回答: (1)服务器要存储所有用户的在线...

2017-11-28 08:20:30

阅读数:214

评论数:0

群消息这么复杂,怎么能做到不丢不重

群聊是多人社交的基本诉求,不管是QQ群,还是微信群,一个群友在群内发了一条消息: (1)在线的群友能第一时间收到消息 (2)离线的群友能在登陆后收到消息 由于“消息风暴扩散系数”的存在,群消息的复杂度要远高于单对单消息。群消息的实时性,可达性,离线消息是今天将要讨论的核心话题。   【常...

2017-11-27 22:48:17

阅读数:59

评论数:0

IM多点登录与消息漫游架构随想

提问:什么是多点登录? 回答:以微信为例,可以PC端,phone端同时登录,同时收发消息。 需要注意的是,一个端只能登录一个实例,例如同一个QQ号,在pc1上登录,再到pc2上登录,后者会把前者踢出,pc1会收到通知“你已在别处登录xxoo”。   提问:什么是消息漫游? 回答:在任何一...

2017-11-27 22:41:12

阅读数:298

评论数:0

im不丢“离线消息”设计

问题:接收方不在线时,消息发送的流程是怎么样的? 回答:如上图所述, (1)用户A发送消息给用户B (2)服务器查看用户B的状态为offline (3)服务器将消息存储到DB中 (4)服务器返回用户A发送成功(对于发送方而言,消息落地DB就认为发送成功)   问题:离线消息表的设计...

2017-11-26 17:48:01

阅读数:696

评论数:0

im不丢消息设计

一、报文类型 im的客户端与服务器通过发送报文(也就是网络包)来完成消息的传递,报文分为三种 请求报文(request,后简称为为R) 应答报文(acknowledge,后简称为A) 通知报文(notify,后简称为N),这三种报文的解释如下: R:客户端主动发送给服务器的报文 A:服务器...

2017-11-26 17:28:48

阅读数:312

评论数:0

微服务架构多“微”才合适

一、互联网架构为什么要进行服务化-总结 上一篇和大伙交流了一下,随着数据量、并发量、业务复杂度的增长,互联网架构会出现以下问题: (1)代码到处拷贝 (2)底层复杂性扩散 (3)基础库(so/jar/dll)耦合 (4)SQL质量得不到保障,业务相互影响 (5)数据库耦合 “服务化”...

2017-11-26 08:21:19

阅读数:453

评论数:0

数据库秒级平滑扩容架构方案

一、缘起 (1)并发量大,流量大的互联网架构,一般来说,数据库上层都有一个服务层,服务层记录了“业务库名”与“数据库实例”的映射关系,通过数据库连接池向数据库路由sql语句以执行: 如上图:服务层配置用户库user对应的数据库实例物理位置为ip(其实是一个内网域名)。   (2)随着...

2017-11-23 21:55:05

阅读数:92

评论数:0

一分钟掌握数据库垂直拆分

一、缘起 当数据库的数据量非常大时,水平切分和垂直拆分是两种常见的降低数据库大小,提升性能的方法。假设有用户表: user( uid bigint, name varchar(16), pass varchar(16), age int, sex tinyint, flag tin...

2017-11-23 21:31:42

阅读数:297

评论数:0

即使删了全库,保证半小时恢复

【高可用数据库架构】 一般来说数据库集群会是主从架构: 或者主主架构:   如果此时主库宕机,可以: (1)一个从库顶上,重建集群 (2)流量迁移到另一个主库 来保证数据的安全性与服务的可用性。   但是,如果人为不小心执行了“删全库”操作,命令会同步给其他从(主)库,导致所...

2017-11-23 21:18:29

阅读数:96

评论数:0

互联网公司为啥不使用mysql分区表

缘起:有个朋友问我分区表在58的应用,我回答不出来,在我印象中,百度、58都没有听说有分区表相关的应用,业内进行一些技术交流的时候也更多的是自己分库分表,而不是使用分区表。于是去网上查了一下,并询问了58到家的DBA专家,将自己收到的信息沉淀下来,share给大伙。   解决什么问题? 回答...

2017-11-22 08:05:41

阅读数:209

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭