HelloWorld搬运工

HelloWorld搬运工

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

主从DB与cache一致性

本文主要讨论这么几个问题: (1)数据库主从延时为何会导致缓存数据不一致 (2)优化思路与方案   一、需求缘起 上一篇《缓存架构设计细节二三事》中有一个小优化点,在只有主库时,通过“串行化”的思路可以解决缓存与数据库中数据不一致。引发大家热烈讨论的点是“在主从同步,读写分离的数据库架构...

2017-11-20 07:59:30

阅读数:172

评论数:0

缓存与数据库一致性保证

本文主要讨论这么几个问题: (1)啥时候数据库和缓存中的数据会不一致 (2)不一致优化思路 (3)如何保证数据库与缓存的一致性   一、需求缘起 上一篇《缓存架构设计细节二三事》(点击查看)引起了广泛的讨论,其中有一个结论:当数据发生变化时,“先淘汰缓存,再修改数据库”这个点是大家讨论...

2017-11-15 07:19:58

阅读数:105

评论数:0

细聊冗余表数据一致性

本文主要讨论四个问题: (1)为什么会有冗余表的需求 (2)如何实现冗余表 (3)正反冗余表谁先执行 (4)冗余表如何保证数据的一致性   一、需求缘起 互联网很多业务场景的数据量很大,此时数据库架构要进行水平切分,水平切分会有一个patition key,通过patition k...

2017-11-14 07:26:47

阅读数:187

评论数:0

缓存架构设计细节二三事

本文主要讨论这么几个问题: (1)“缓存与数据库”需求缘起 (2)“淘汰缓存”还是“更新缓存” (3)缓存和数据库的操作时序 (4)缓存和数据库架构简析   一、需求缘起 场景介绍 缓存是一种提高系统读性能的常见技术,对于读多写少的应用场景,我们经常使用缓存来进行优化。 例如对...

2017-11-13 22:50:41

阅读数:115

评论数:0

数据库软件架构设计些什么

一、基本概念 二、数据库架构设计思路 (1)可用性 (2)读性能 (3)一致性 (4)扩展性 一、基本概念 概念一“单库” 概念二“分片” 分片解决的是“数据量太大”的问题,也就是通常说的“水平切分”。 一旦引入分片,势必有“数据路由”的概念,哪个数据访...

2017-11-13 22:24:14

阅读数:150

评论数:0

100亿数据1万属性数据架构设计

对于version + ext方案,还是有很多朋友质疑“线上不可能这么用”。本篇将讲述一下58同城最核心的数据“帖子”的架构实现技术细节,说明不仅不是“不可能这么用”,而是大数据,可变属性,高吞吐场景下的“常用手段”。   一、背景描述及业务介绍 问:什么是数据库扩展的version + ...

2017-11-12 08:50:31

阅读数:315

评论数:0

这才是真正的表扩展方案

零、缘起 讨论问题域: (1)数据量大、并发量高场景,在线数据库属性扩展 (2)数据库表结构扩展性设计   一、哪些方案一定是不行的 (1)alter table add column 要坚持这个方案的,也不多解释了,大数据高并发情况下,一定不可行   (2)通过增加表的方式扩...

2017-11-12 08:29:46

阅读数:230

评论数:0

啥,又要为表增加一列属性?

需求缘起 产品第一版:用户有用户名、密码、昵称等三个属性,对应表设计: user(uid, name, passwd, nick) 第二版,产品经理增加了年龄,性别两个属性,表结构可能要变成: user(uid, name, passwd, nick, age, sex) 假设数据...

2017-11-12 08:18:08

阅读数:238

评论数:0

一张“神图”看懂单机/集群/热备/磁盘阵列(RAID)

单机部署(stand-alone):只有一个饮水机提供服务,服务只部署一份 集群部署(cluster):有多个饮水机同时提供服务,服务冗余部署,每个冗余的服务都对外提供服务,一个服务挂掉时依然可用 热备部署(hot-swap):只有一个桶提供服务,另一个桶stand-by,在水用完时自动热...

2017-11-11 08:02:55

阅读数:259

评论数:0

mysql中decimal,numeric,double,float的区别

概述: 简单来说decimal,numeric属于标准数据类型,指定精度和刻度;decimal的存储大小不确定,numeric的存储大小默认8个字节。 double,float属于非标准数据类型,在DB中保存的是近似值,而Decimal则以字符串的形式保存数值。 float,double类型是可以...

2017-11-10 18:35:46

阅读数:257

评论数:0

一分钟了解两阶段提交2PC

一、概念 二阶段提交2PC(Two phase Commit)是指,在分布式系统里,为了保证所有节点在进行事务提交时保持一致性的一种算法。 二、背景 在分布式系统里,每个节点都可以知晓自己操作的成功或者失败,却无法知道其他节点操作的成功或失败。 当一个事务跨多个节点时,为了保持事务的原子...

2017-11-10 08:06:01

阅读数:274

评论数:0

连接池原来这么简单

一、如何通过连接访问下游 工程架构中有很多访问下游的需求,下游包括但不限于服务/数据库/缓存,其通讯步骤是为: (1)与下游建立一个连接 (2)通过这个连接,收发请求 (3)交互结束,关闭连接,释放资源   这个连接是什么呢,通过连接怎么调用下游接口?服务/数据库/缓存,官方会提供不同...

2017-11-10 07:53:59

阅读数:287

评论数:0

一分钟实现分布式锁

一、缘起 分布式环境下,多台机器上多个进程对一个数据进行操作,如果不做互斥,就有可能出现“余额扣成负数”,或者“商品超卖”的情况,如何实现简易分布式锁,对分布式环境下的临界资源做互斥,是今天将要讨论的话题。   二、互斥原理 原理:多个访问方对同一个资源进行操作,需要进行互斥,通常是利用一...

2017-11-10 07:43:33

阅读数:274

评论数:0

应用层/安全层/传输层如何进行协议选型

系统设计,协议先行。 大部分技术人没有接触协议的设计细节,更多的是使用已有协议进行应用层的编码,例如: (1)使用http作为载体,设计get/post/cookie参数 (2)使用dubbo框架,而不用去深究内部的二进制包头包体,以及序列号反序列化的细节 无论如何,了解协议设计的原...

2017-11-09 19:03:11

阅读数:376

评论数:0

互联网架构为什么要做服务化?

一、互联网高可用架构,为什么要服务化? 【服务化之前高可用架构】 在服务化之前,互联网的高可用架构大致是这样一个架构: (1)用户端是浏览器browser,APP客户端 (2)后端入口是高可用的nginx集群,用于做反向代理 (3)中间核心是高可用的web-server集群,研发工程...

2017-11-09 18:39:05

阅读数:3756

评论数:5

单点系统架构的可用性与性能优化

一、需求缘起 明明架构要求高可用,为何系统中还会存在单点? 回答:单点master的设计,会大大简化系统设计,何况有时候避免不了单点   在哪些场景中会存在单点?先来看一下一个典型互联网高可用架构。 典型互联网高可用架构: (1)客户端层,这一层是浏览器或者APP,第一步先访问DNS...

2017-11-08 08:13:10

阅读数:331

评论数:0

关于分布式程序设计常见问题分析

虽然系统越来越复杂,以及新分布式架构设计的思想普及,越来越多的系统采用了分布式的架构,特别是HTTP为交互方式的接口调用,移动端和PC端的并行对分布式架构带来了很大的推动。各式各样的服务接口,在处理业务流程之外有一些共性的问题,正视设计和解决这些问题,会大大提高程序的可用性,扩展性和可维护性。 以...

2017-11-08 07:21:22

阅读数:164

评论数:0

互联网架构,如何进行容量设计?

一,需求缘起 互联网公司,这样的场景是否似曾相识:   场景一:pm要做一个很大的运营活动,技术老大杀过来,问了两个问题: (1)机器能抗住么? (2)如果扛不住,需要加多少台机器?   场景二:系统设计阶段,技术老大杀过来,又问了两个问题: (1)数据库需要分库么? (2)如果...

2017-11-07 22:14:35

阅读数:107

评论数:0

计数系统架构实践一次搞定

一、需求缘起 很多业务都有“计数”需求,以微博为例: 微博首页的个人中心部分,有三个重要的计数: 关注了多少人的计数 粉丝的计数 发布博文的计数 微博首页的博文消息主体部分,也有有很多计数,分别是一条博文的: 转发计数 评论计数 点赞计数 甚...

2017-11-07 21:33:19

阅读数:153

评论数:0

58同城推荐系统架构设计与实现

一、推荐系统架构介绍 推荐系统是一个微庞大的工程、算法与业务综合的系统,其主要分为三大子系统: 1)线下推荐子系统; 2)线上推荐子系统; 3)效果评估子系统; 后文将重点讨论以上三大子系统的设计与实现。 二、线下推荐子系统 线下推荐子系统又主要分为线下挖掘模块、数据管理工具两...

2017-11-06 08:06:16

阅读数:259

评论数:0

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