Google BigTable到底解决什么问题?
搞架构的人,Google的论文是必看的,但好像大家都不愿意去啃英文论文。故把自己的读书笔记,加入自己的思考,分享给大家。第三部分,GoogleBigTable。BigTable,很多人对它耳熟能详,但它究竟解决什么问题呢?这是今天要聊的话题。什么是BigTable?GoogleBigTable是一个
互联网分层架构的本质
上图是一个典型的互联网分层架构:客户端层:典型调用方是browser或者APP站点应用层:实现核心业务逻辑,从下游获取数据,对上游返回html或者json数据-缓存层:加速访问存储数据-数据库层:固化数据存储如果实施了服务化,这个分层架构图可能是这样:中间多了一个服务层。同一个层次的内部,例如端上的
为什么说,MapReduce,颠覆了互联网分层架构的本质?
为什么说,MapReduce系统架构,颠覆了互联网分层架构的本质?下图是一个典型的,互联网分层架构:客户端层:典型调用方是浏览器browser或者手机APP站点应用层:实现核心业务逻辑,从下游获取数据,对上游返回html或者json服务层:业务服务,数据服务,基础服务,对上游提供友好的RPC接口数据
Google MapReduce架构设计
前情回顾GoogleMapReduce到底解决什么问题?GoogleMapReduce是Google产出的一个编程模型,同时Google也给出架构实现,它能够解决“能用分治法解决的问题”。GoogleMapReduce有啥巧妙优化?分区函数:保证不同map输出的相同key,落到同一个reduce里合
Google MapReduce有啥巧妙优化?
搞架构的人,Google的架构论文是必看的,但好像大家都不愿意去啃英文论文。故把自己的读书笔记,加入自己的思考,分享给大家。《MapReduce到底解决什么问题?》做了简介,这是第二篇,GoogleMapReduce优化启示(中)。什么是MapReduce?MapReduce这个编程模型解决什么问题
Google MapReduce到底解决什么问题?
搞架构的人,Google的架构论文是必看的,但好像大家都不愿意去啃英文论文。故把自己的读书笔记,加入自己的思考,分享给大家。第二篇,GoogleMapReduce架构启示(上)。很多时候,定义清楚问题比解决问题更难。什么是MapReduce?它不是一个产品,而是一种解决问题的思路,它有多个工程实现,
GFS架构启示 | Google File System
搞架构的人,Google的架构论文是必看的,但好像大家都不愿意去啃英文论文。故把自己的读书笔记,加入自己的思考,分享给大家。第一篇,GFS(GoogleFileSystem)架构启示。GFS是什么?Google早期研发的分布式文件系统。画外音:与分布式文件系统对应的,是单机文件系统,Windows和
秒杀架构优化,产品折衷
今天有朋友问我,说我的文章里,总是提“脱离业务的架构设计是耍流氓”。每次都是架构根据业务折衷,有没有业务和产品由于技术难度太大来做折衷的?当然有,当一个业务技术难度非常大的时候,可以通过业务和产品的优化,来简化系统架构。以“12306车票秒杀”为例,秒杀业务架构难度大,业务和产品可以这么折衷:cas
冗余数据一致性,到底如何保证?
一,为什么要冗余数据互联网数据量很大的业务场景,往往数据库需要进行水平切分来降低单库数据量。水平切分会有一个patitionkey,通过patitionkey的查询能够直接定位到库,但是非patitionkey上的查询可能就需要扫描多个库了。此时常见的架构设计方案,是使用数据冗余这种反范式设计来满足
分布式事务,原来可以这么玩?
多个数据要同时操作,如何保证数据的完整性,以及一致性?答:事务,是常见的做法。举个栗子:用户下了一个订单,需要修改余额表,订单表,流水表,于是会有类似的伪代码:starttransaction;CURDtablet_account;anyExceptionrollback;CURDtablet_or
分布式基础,啥是两阶段提交?
上一篇《分布式事务,原来可以这么玩?》引起了不少讨论,后续准备开一个新系列,讲一讲分布式的东西,今天就从相对容易理解的“两阶段提交”谈起。画外音:给自己定了一个目标,用通俗的语言把Paxos讲懂。分布式事务为什么难?在分布式环境下,每个节点都可以知晓自己操作的成功或者失败,却无法知道其他节点操作的成
分布式基础,通俗易懂CAP?
分布式系统非常关注三个指标:数据一致性系统可用性节点连通性与扩展性关于一致性数据“强一致性”,是希望系统只读到最新写入的数据,例如:通过单点串行化的方式,就能够达到这个效果。关于session一致性,DB主从一致性,DB双主一致性,DB与Cache一致性,数据冗余一致性,消息时序一致性,分布式事务一
MySQL主从延时这么长,要怎么优化?
MySQL主从复制,读写分离是互联网常见的数据库架构,该架构最令人诟病的地方就是,在数据量较大并发量较大的场景下,主从延时会比较严重。为什么主从延时这么大?答:MySQL使用单线程重放RelayLog。应该怎么优化,缩短重放时间?答:多线程并行重放RelayLog可以缩短时间。多线程并行重放Rela
“反向代理层”绝不能替代“DNS轮询”!
有朋友问我,DNS轮询是不是过时的技术了?有了反向代理层(Nginx、LVS、F5等),是不是就不需要DNS轮询了?然而,反向代理层绝不能替代DNS轮询!反向代理层有什么用?架构实现时要注意什么?(1)作为服务端统一入口,屏蔽后端WEB集群细节,代表整个WEB集群;画外音:这就是为啥它叫反向代理。(
关于负载均衡的一切
什么是负载均衡?负载均衡(LoadBalance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据均匀分摊到多个操作单元上执行,负载均衡的关键在于均匀。常见的负载均衡方案有哪些?常见互联网分布式架构如上,分为:客户端层反向代理层站点层服务层数据层可以看到,每一个下游都有多个上游调用
架构,如何进行容量设计?
互联网公司,这样的场景是否似曾相识?场景一pm要做双十一促销活动,技术老大杀过来,问了两个问题:机器能抗住么?如果扛不住,需要加多少台机器?场景二新系统上线,技术老大杀过来,又问:数据库需要分库么?如果需要分库,需要分几个库?技术上来说,这些都是系统容量预估的问题,容量设计是架构师必备的技能。常见的
互联网架构,究竟为啥要做服务化?
最近留言问“微服务”的朋友颇多,找历史文章又找不到,故重新优化发布,希望大家有收获,不要被“微服务大潮”误导。“微服务架构”的话题非常之火,很多朋友都在小窗我,说怎么做服务化?解答“怎么做”之前,先得了解“为什么做”。画外音:做技术千万不能是这种思路,“别人都在做,所以我们也要搞”。并不是所有的业务
互联网架构,究竟为啥要做服务化?
最近留言问“微服务”的朋友颇多,找历史文章又找不到,故重新优化发布,希望大家有收获,不要被“微服务大潮”误导。“微服务架构”的话题非常之火,很多朋友都在小窗我,说怎么做服务化?解答“怎么做”之前,先得了解“为什么做”。画外音:做技术千万不能是这种思路,“别人都在做,所以我们也要搞”。并不是所有的业务
数据库架构设计一次搞定(下)
课程目标系统性地讲解数据库架构,系统性思考,每一个方向上的行业最佳实践,希望大家有收获。适用人群数据库以及架构需求方面相关人群。课程概述数据库架构设计一次搞定演讲简介:由沈剑老师全程出场,系统性地讲解数据库架构,历时3小时,让大家能够将数据库架构一次搞定,如果你所在的单位已经完成了数据库架构设计,也
数据库架构设计一次搞定(中)
课程目标系统性地讲解数据库架构,系统性思考,每一个方向上的行业最佳实践,希望大家有收获。适用人群数据库以及架构需求方面相关人群。课程概述数据库架构设计一次搞定演讲简介:由沈剑老师全程出场,系统性地讲解数据库架构,历时3小时,让大家能够将数据库架构一次搞定,如果你所在的单位已经完成了数据库架构设计,也