架构
lz0426001
What do you want to do with this one wild and precious life?
One More Thing,Stay hungry,Stay foolish!
编程中最没用的东西是源代码,最有用的东西是算法和数据结构。
赢在布局!狼之野心,象之宽容,鹰之果断,狐之狡猾!
展开
-
分布式缓存架构基础
一、缓存概述1.1 什么是缓存 缓存在wiki上的定义:用于存储数据的硬件或软件的组成部分,以使得后续更快访问相应的数据。缓存中的数据可能是提前计算好的结果、数据的副本等。典型的应用场景:有cpu cache, 磁盘cache等。本文中提及到缓存主要是指互联网应用中所使用的缓存组件。1.2 为什么引入缓存 传统的后端业务场景中,访问量以及对响应时间的要求均不高,通常只转载 2016-09-23 09:58:51 · 13785 阅读 · 1 评论 -
为什么说架构是一种思维模式
架构是一个动词,还是一个名词?可以组合的词汇有:架构设计、架构师,我认为,架构是动态的,演进的。词典中是这样解释架构的,人们对一个结构内的元素及元素间关系的一种主观映射的产物。也可指构筑,建造。我理解架构本身不仅仅是指这个结果(成品),同时架构亦可以理解为建造的过程。架构是一种思维模式。架构师是一个title。为什么说架构是一种思维模式呢,小到一个模块,大到一个平台,高内聚低耦合、隔离、层转载 2016-02-29 11:46:12 · 2899 阅读 · 0 评论 -
知乎CTO谈知乎的架构变迁史
很多人还不知道,知乎在规模上是仅次于百度贴吧和豆瓣的中文互联网最大的UGC(用户生成内容)社区。知乎创业三年来,从0开始,到现在已经有了100多台服务器。目前知乎的注册用户超过了1100万,每个月有超过8000万人使用;网站每个月的PV超过2.2亿,差不多每秒钟的动态请求超过2500。初期架构选型在2010年10月真正开始动手做知乎这个产品时,包含李申申在内,最初只有两位工程师;到2010转载 2016-02-29 11:44:55 · 1696 阅读 · 1 评论 -
最头疼的遗留系统该如何改造?
随着RESTful、云计算、DevOps、持续交付等概念的深入人心,微服务(Microservices)逐渐成为系统架构的一个代名词。那么微服务是否是业界期待已久的企业架构解决方案?在对遗留系统进行微服务的改造过程中存在怎样的困难和挑战,应该注意些什么?在该分享中,王磊将通过实际的案例,跟大家探讨使用微服务改造遗留系统的实践之路。什么是微服务微服务的诞生背景遗留系统的微服务改造策略微服务改转载 2016-02-29 11:44:05 · 2242 阅读 · 0 评论 -
大型网站架构系列:分布式消息队列
以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。本次分享大纲消息队列概述消息队列应用场景消息中间件示例JMS消息服务常用消息队列参考(推荐)资料本次分享总结一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少转载 2016-02-29 11:43:01 · 505 阅读 · 0 评论 -
架构师和开发团队应该如何协作?组织架构怎么设置最好?
软件架构构成了一个系统的骨架。它定义了当面对不同的功能性和非功能性需求时的系统行为。一方面,传统瀑布式方法对项目开发的所有阶段提出了硬性约束要求,因此传统瀑布式方法显得僵化。另一方面,敏捷运动让我们拥抱改变,即使是处于开发阶段后期的改变。尽管我们正推动自己从僵化的开发模式迈向更灵活的模式,软件架构由于其系统骨架的定位,天然地对变化敏感。因此关键之处在于,敏捷运动拥抱的软件架构必须是可持续的——具备转载 2016-02-29 11:41:09 · 5149 阅读 · 0 评论 -
架构师不写代码,怎能知道技术的痛点?
背景什么是架构师?业内一直没有定论,在前两天『聊聊架构』群的讨论中,来自各大互联网公司的架构师都对自己的工作内容做了总结,然我们还是没有抽象出架构师的定义。反而引来了跟多的问题,比如:1. 架构师应该写代码吗?2. 架构师有分类吗?3. 好的应用应该包含哪些特点?什么才是好的应用系统?4. 对于架构师,有哪些能力要求?5. 怎么才是完整的方案? 怎么写出完整甚至完美的方案?转载 2016-02-29 11:39:37 · 2482 阅读 · 0 评论 -
基于用户画像大数据的电商防刷架构
一、背景介绍最近1~2年电商行业飞速发展,各种创业公司犹如雨后春笋大量涌现,商家通过各种活动形式的补贴来获取用户、培养用户的消费习惯。但任何一件事情都具有两面性,高额的补贴、优惠同时了也催生了“羊毛党”。“羊毛党”的行为距离欺诈只有一步之遥,他们的存在严重破环了活动的目的,侵占了活动的资源,使得正常的用户享受不到活动的直接好处。今天主要分享下腾讯自己是如何通过大数据、用户画像、建模转载 2016-02-29 11:38:53 · 914 阅读 · 0 评论 -
关于业务高速发展的互联网公司技术架构演化的一些看法
之前携程DOWN机的事件在业界闹得沸沸扬扬,很多人都在总结分析。其实对此我也有一些个人看法:关于IT系统运维/关于异地灾备/关于私有云。本人正好在三种阶段和规模的互联网电商公司都工作过:在业界比较知名的互联网电商公司从事过一些基础的工作参与过比较早期的创业团队(其所有的程序甚至都部署依赖在别人的公有云端)同时也在处于这两者中间状态的电商公司工作过。这三段经历让我转载 2016-03-11 13:29:59 · 750 阅读 · 0 评论 -
App架构经验总结
架构因人而异,不同的架构师大多会有不同的看法;架构也因项目而异,不同的项目需求不同,相应的架构也会不同。然而,有些东西还是通用的,是所有架构师都需要考虑的,也是所有项目都会有的需求,比如API如何设计?架构如何分层?开发环境和生产环境如何分离?这几年,我负责研发过的App,有餐饮类的、社交类的、智能家居类的、电商类的、新闻媒体类的等等。当有了一定的经验之后,你总会有一些自己的心得体会。而以下内容就转载 2016-03-11 13:18:48 · 456 阅读 · 0 评论 -
支撑微博千亿调用的轻量级RPC框架:Motan
“2013 年微博 RPC 框架 Motan 在前辈大师们(福林、fishermen、小麦、王喆等)的精心设计和辛勤工作中诞生,向各位大师们致敬,也得到了微博各个技术团队的鼎力支持及不断完善,如今 Motan 在微博平台中已经广泛应用,每天为数百个服务完成近千亿次的调用。” —— 张雷随着微博容器化部署以及混合云平台的高速发展,RPC 在微服务化的进程中越来越重要,对 RPC 的需求也产生了一转载 2016-02-23 16:42:30 · 483 阅读 · 0 评论 -
LinkedIn的架构演进之路
自2003年创立至今,LinkedIn全球用户数已经从第一周的2700增长到了现在的3个多亿。它每天每秒都要提供成千上万的网页请求,而且移动账户已经占据了全球50%的流量。所有这些请求都是从他们的后台系统获取数据,而这个后台系统每秒需要处理数以百万计的查询。LinkedIn高级工程经理Josh Clemm撰文介绍了LinkedIn架构10多年来的演进。Leo最开始的时候,LinkedIn是一个转载 2016-02-23 16:41:32 · 530 阅读 · 0 评论 -
亿级短视频社交美拍架构实战
“在美拍的服务化过程中,主要基于 etcd 来实现我们的动态服务发现和配置服务,在 client 层面扩展实现了包含负载均衡、心跳、节点健康状态探测、etcd 节点挂掉的灾备等基础功能,同时会通过一些 metrics 埋点,以便跟踪内部的状态,用统一的 trace_id 来跟踪服务的链路调用情况。” —— 麦俊生一、短视频市场的发展近几年来,短视频应用在国内应用市场引爆,美图公司推出了美拍转载 2016-02-23 16:36:20 · 492 阅读 · 0 评论 -
从100PV到1亿级PV网站架构演变
一个网站就像一个人,存在一个从小到大的过程。养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则。本文结合我自已14年网站人的经历记录一些架构演变中的体会。1:积累是必不可少的架构师不是一天练成的。1999年,我作了一个个人主页,在学校内的虚拟空间,参加了一次主页大赛,几个DREAMWEAVER的页面,几个TABLE转载 2016-02-23 16:34:21 · 524 阅读 · 0 评论 -
公司前端开发架构改造
最近对公司前端的开发进行了一系列的改造,初步达到了我想要的效果,但是未来还需要更多的改进。最终要完美的实现目标:工程化,模块化,组件化。这是一个艰难的,持续的,不断进化的过程!先说下我司前端改造前的情况:开始的时候,只有微信公众号开发,以及在APP中嵌入的Web页面,只需要考虑微信端的问题,以及跟原生APP的交互处理,一切都好像很完美。几个月后,要开发手机网页版,接着百度直达号也来转载 2016-05-18 09:56:06 · 2958 阅读 · 0 评论 -
关于架构优化和设计,架构师必须知道的事情
概述这篇译文最早发布在infoQ下面的一个微信公众号:“聊聊架构”上,想着我在园子几乎沉寂了接近两年之久,于是借机复活。哈哈哈,这是一篇关于架构的译文,会介绍比较多的一些工具、以及框架,给对架构感兴趣的同学一个知识扩充。近几年来随着互联网的飞速发展,新的架构实践方式不断涌现,但是有一件事情是永恒不变的,那就是-“架构之道”;关于如何设计出灵活、高可用性以及能够快速适应变化的系统架构,我们依转载 2016-05-18 10:01:35 · 5681 阅读 · 1 评论 -
在首席架构师手里,应用架构如此设计
无架构,不系统,架构是大型系统的关键。从形上看,架构是系统的骨架,支撑和链接各个部分;从神上看,架构是系统的灵魂,深刻体现业务本质。架构可细分为业务架构、应用架构、技术架构,业务架构是战略,应用架构是战术,技术架构是装备。其中应用架构承上启下,一方面承接业务架构的落地,另一方面影响技术选型。如何针对当前需求,选择合适的应用架构,如何面向未来,保证架构平滑过渡,这个是软件开发者,特别是架构师转载 2016-05-18 10:07:49 · 529 阅读 · 0 评论 -
云直播系统架构与实施
直播类型传统直播传统直播基本都是单向传输,很少有做交互。类似于广电演唱会的直播,做交互都是放在秀场里做。只是简单的对外传输直播流,并且流数比较少,延迟容忍度高,基本都超过 10 秒,包括电视转流、演唱会直播等。游戏直播游戏直播也是单向传输,通过直播文字进行交互,利用弹幕或者讨论组进行沟通。最大的特点是流数比较多。游戏直播自身的业务对延迟要求不高,但因为竞争激烈提升要转载 2016-08-30 16:12:09 · 1646 阅读 · 0 评论 -
什么才是真正的 RESTful 架构
What?Wikipedia: 表征性状态传输(英文:Representational State Transfer,简称REST)是Roy Fielding博士于2000年在他的博士论文中提出来的一种软件架构风格。Roy Fielding是HTTP协议(1.0版和1.1版)的主要设计者,事实上HTTP 1.1规范正是基于REST架构风格的指导原理来设计的。需要注意的是,RES转载 2016-08-30 16:03:15 · 32116 阅读 · 2 评论 -
视频直播技术详解之采集
随着互联网用户消费内容和交互方式的升级,支撑这些内容和交互方式的基础设施也正在悄悄发生变革。手机设备拍摄视频能力和网络的升级催生了大家对视频直播领域的关注,吸引了很多互联网创业者或者成熟企业进入该领域。七牛云于6月底发布了一个针对视频直播的实时流网络LiveNet和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣。结合该实时流网络LiveNet和直播云转载 2016-08-30 15:59:46 · 1459 阅读 · 0 评论 -
华为内部实施微服务架构
随着业务的发展,代码量的膨胀和团队成员的增加,传统单体式架构的弊端越来越凸显,严重制约了业务的快速创新和敏捷交付。为了解决传统单体架构面临的挑战,先后演进出了SOA服务化架构、RPC框架、分布式服务框架,最后就是当今非常流行的微服务架构。微服务化架构并非银弹,它的实施本身就会面临很多陷阱和挑战,涉及到设计、开发、测试、部署、运行和运维等各个方面,一旦使用不当,则会导致整个微服务架构改造的效转载 2016-08-30 15:58:05 · 4993 阅读 · 0 评论 -
蘑菇街电商交易平台服务架构及改造优化历程
蘑菇街导购时期 业务结构蘑菇街是做导购起家的,当时所有的业务都是基于用户和内容这两大核心展开。那个时候前台业务主要做的是社交导购,后台业务主要做的是内容管理。一句话总结就是小而美的状态,业务相对来也不是很复杂。 当时的技术架构是典型的创业型公司技术架构。网站整体是用 PHP 搭建的,系统做了简单的分层,基础设施以现成的开源产品为主。2转载 2016-08-30 15:56:55 · 2667 阅读 · 0 评论 -
聊聊高并发系统之HTTP缓存
简介最近遇到很多人来咨询我关于浏览器缓存的一些问题,而这些问题都是类似的,因此总结本文来解答以后遇到类似问题的朋友。因本文主要以浏览器缓存场景介绍,所以非浏览器场景下的一些用法本文不会介绍,而且本文以chrome为测试浏览器。浏览器缓存是指当我们使用浏览器访问一些网站页面或者http服务时,根据服务端返回的缓存设置响应头将响应内容缓存到浏览器,下次可以直接使用缓存内容或者仅转载 2016-08-30 15:56:15 · 2742 阅读 · 0 评论 -
实现电商平台从业务到架构的治理体系
VIP不同阶段发展历程的商业模式演进唯品会在2008年12月创立,一直到2012年,唯品会在做的主要事件就是尾货的抛售,做线上的outlets商家。这种商业模式就是帮别人消化库存,但是这个库存消化完了,现在特卖,公司的重点在发生变化。目前电商被分为了分成了两类,一是平台级公司,包括:1、电商大平台:淘宝、天猫;2、通用B2C:京东商城;3、线上折扣:唯品会;二是垂直类电商,包括:3C类的苏宁易转载 2016-05-19 09:05:09 · 3841 阅读 · 0 评论 -
应对电商大促峰值的九个方法
快速建立移动电商系统架构的知识框架「高可伸缩的移动电商架构设计」这个话题很大包括了几个部分:App客户端架构、服务端的架构,还有怎么使用私有云、公有云来部署我们服务端的应用。我会把这三部分内容做一个比较系统、比较概括性的介绍。这次分享主要的目的就是让大家快速的建立一个知识框架:如何搭建高可伸缩的移动电商系统架构。首先会介绍App端的混合架构,还有服务端的SOA架构,我们也会介绍弹性云的架构转载 2016-05-18 10:36:29 · 2346 阅读 · 0 评论 -
1号店交易系统架构如何向「高并发高可用」演进
轻量级电商的架构和痛点大家看上图,一个轻量级的电商网站应用架构就是这样的,比如说你现在想做一个电商网站,你是创业公司,两三个人开始做,估计架构就是这样的。前端有PC、App和H5,有表现层、业务逻辑层和数据访问层等。重量级的电商网站应用架构是怎么重的呢?很简单,随着业务的扩展,业务量多了、代码量多了、数据量大了、并发量高了。1号店是一家电商网站,但严格来讲并不是百分之百的互联网公司,我转载 2016-05-18 10:35:34 · 12399 阅读 · 0 评论 -
尖峰日96万订单,59校园狂欢节技术架构剖析
59store是一家专注校园市场的互联网企业,以校园消费类O2O及金融作为核心业务,自成立以为每年都会举办一次59校园狂欢节,在2016年5月9号的59校园狂欢节创下了单日96万订单,近3500万交易额。其中,59store所面临挑战是:在线服务是否能抵抗住零点疯狂流量的涌入,各个业务线都有活动需求需要按时交付,各项基础服务和众多业务应用的高可用保障,保护第三方合作方的服务器不被59带去的巨大流量转载 2016-05-18 10:32:12 · 973 阅读 · 0 评论 -
高并发数据采集的架构应用(Redis的应用)
技术障碍: 1. 面对用户量的增长,记录数3W倍的增长,如何保证这些记录能够在比较快的时间内进入存储介质。 2. 应对用户量的增长,如何在规定的时间内完成采集,增加硬件设备处理能力还是使用更多的服务器来处理请求。 3. 服务器的增长,是否能够支持现有的扩展能力。架构实现:使用到的技术项: 1. 面向服务开发思维 2. 队列服务转载 2016-05-18 10:25:17 · 1637 阅读 · 0 评论 -
每秒处理10万订单乐视集团支付架构
随着乐视硬件抢购的不断升级,乐视集团支付面临的请求压力百倍乃至千倍的暴增。作为商品购买的最后一环,保证用户快速稳定的完成支付尤为重要。所以在15年11月,我们对整个支付系统进行了全面的架构升级,使之具备了每秒稳定处理10万订单的能力。为乐视生态各种形式的抢购秒杀活动提供了强有力的支撑。一、库分表在redis,memcached等缓存系统盛行的互联网时代,构建一个支撑每秒十万只读的系统并不复转载 2016-05-18 10:19:32 · 923 阅读 · 0 评论 -
京东无线服务端架构演进历程
京东无线服务端首先,在大会上统计一下数据,不知道多少人的手机上安装了京东手机APP,从举手的比例来看,大家也能猜到。就像这个图画的一样,京东无线服务端的流量像这个瀑布一样,汹涌不绝。服务端就是APP后端默默支持它的亲密爱人,你可以使劲地消费,你可以随便地购买,我来承担你给我带来的流量。这是我们服务端的一个进化历程,其实它也是随着我们京东无线整个业务在进化。我一直在强调,所谓技术驱动公司转载 2016-05-18 10:09:34 · 2641 阅读 · 0 评论 -
玩转 Varnish 缓存代理
Varnish 是互联网架构中重要的缓存代理组件。Varnish 一般跑在流量入口处,作为最前端一道防御,非常重要。虽然 Varnish 并不像 Nginx 那么流行。Varnish 就像 Nginx 一样稳定高效,如果使用得当,能极大提升整体服务性能、并且降低资源消耗。常见互联网架构中的多级缓存将内容推送到用户身边的 CDN 缓存类似 Varnish 的缓存代理应用层缓存 Red转载 2016-02-23 10:56:49 · 520 阅读 · 0 评论 -
应用性能优化: 如何将应用延迟降低为 0 ms
之前已经提过通过 Varnish 缓存进行网站性能优化,以及延迟对商业的影响。经历过太多这样的问题分析和定位过程:某大型网站的 Redis 集群的机器负载每几十分钟出现一个超越平时几十倍大的高峰,结果是因为这些实例每几十分钟对所有数据进行写盘持久化。某大型媒体网站的 MySQL 读流量异常大,结果是因为每个读操作都携带了 2MB 的页面初始化信息。这个 BUG 修正的直接结果不仅仅是降转载 2016-02-23 10:56:07 · 1129 阅读 · 0 评论 -
App架构设计经验谈:展示层的设计
三层架构中,数据层和业务层都已经做过了简单的分享,最后,就剩下展示层了。本篇就给各位分享下我在展示层设计方面的一些经验心得。展示层是三层架构中最复杂的一层了,需要考虑的包括但不限于界面布局、屏幕适配、文字大小、颜色、图片资源、提示信息、动画等等。展示层也是变化最频繁的一个层面,每天改得最多的就是界面了。因此,展示层也是最容易变得混乱不堪的一个层面。一个良好的展示层,应该有较好的可读性、健壮性、转载 2016-02-23 10:54:02 · 1565 阅读 · 0 评论 -
亿级商品详情页架构演进技术解密
商品详情页是什么商品详情页是展示商品详细信息的一个页面,承载在网站的大部分流量和订单的入口。京东商城目前有通用版、全球购、闪购、易车、惠买车、服装、拼购、今日抄底等许多套详情页模板,通过一些特殊属性、商家类型和打标来区分,每套模板数据是一样的,核心逻辑基本一样,但是一些前端逻辑是有差别的。目前商品详情页个性化需求非常多,数据来源也是非常多的(目前统计后端有差不多数十个依赖服务),而且许多基转载 2016-02-17 16:09:44 · 2826 阅读 · 1 评论 -
服务器端架构,前端服务器与客户端随机负载平衡
在前端服务器输入[Enter Juliet] Hamlet: Thou art as sweet as the sum of the sum of Romeo and his horse and his black cat! Speak thy mind![Exit Juliet] 这是用莎士比亚编程语言所编写的一段程序样例。我们的经典部署架构(尤其在使用F转载 2016-02-17 16:08:24 · 2105 阅读 · 0 评论 -
将项目从 GitHub 部署到服务器
GitHub以及它所依赖的版本控制系统Git,绝对是非常出色的项目管理和协作的工具,不管项目是不是跟代码相关。本文会讨论有哪些选项可以让Git和Github更好的融入项目的工作流当中,以实现平滑的自动化的过程。我把这些选项划分到不同的工具集当中,这些集合包括自动运行测试,以及拉取代码部署到服务器上等等。为何要这样做?有了这些自动化过程的运行,你和你的团队就可以只关注单纯的编码以及代转载 2016-02-17 16:06:46 · 6969 阅读 · 0 评论 -
一个母婴电子商务网站的大数据平台及机器学习实践
母婴相对一般的电子商务网站有一些特点:第一个特点是商品周期短,在母婴网站上的商品,在线的时间不会超过5-7天,第二个是用户需求的变化快,在母婴行业,可能是用户的需求变化最快的领域,比如是用户处在怀孕当中,关心的是孕妈的一些问题,几个月以后,随着宝宝的落地,就会准备一些纸尿裤和奶粉,而且随着宝宝的长大,纸尿裤和奶粉的类型也会变化。第三个是移动化,一般有90%的成交是来自移动端的。手机端的屏幕转载 2016-02-17 16:01:31 · 1603 阅读 · 0 评论 -
支付宝和蚂蚁花呗的技术架构及实践
每年“双11”都是一场电商盛会,消费者狂欢日。今年双11的意义尤为重大,它已经发展成为全世界电商和消费者都参与进来的盛宴。而对技术人员来说,双十一无疑已经成为一场大考,考量的角度是整体架构、基础中间件、运维工具、人员等。一次成功的大促准备不光是针对活动本身对系统和架构做的优化措施,比如:流量控制,缓存策略,依赖管控,性能优化……更是与长时间的技术积累和打磨分不开。下面我将简单介绍支付宝的整转载 2016-02-17 15:59:06 · 12557 阅读 · 2 评论 -
Twitter是如何构建高性能分布式日志的
Twitter,他们使用复制日志来解决分布式系统中存在的一系列问题。比如,他们有一个Manhattan分布式键值数据库。该系统采用了一种灵活的最终一致性数据模型,允许开发者以一致性换取低延迟。写入操作会单独应用到数据集的所有副本,Manhattan会保证各个副本的数据最终一致。但是,应用程序在查询一个刚刚更新过的数据集时可能会因为读取的副本不同而获取到不同的数据。为了防止这种不一致的情况,他们必须转载 2016-02-17 15:58:21 · 572 阅读 · 0 评论 -
大型网站架构系列:分布式消息队列
一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,转载 2016-02-17 15:57:33 · 1342 阅读 · 0 评论