系统网站架构(淘宝、京东) 架构师能力

news/2024/5/19 23:47:39/文章来源:https://blog.csdn.net/weixin_34402090/article/details/85834694

来一张看上去是淘宝的架构的图:

参考地址:http://hellojava.info/?p=520 

说几点我认可的地方:

架构需要掌握的点:

通信连接方式:
大量的连接通常会有两种方式:
1. 大量client连一个server 在现如今NonBlocking-IO这么成熟的情况下,一个支持大量client的server已经不那么难写了。 有一个点要特别注意,就是当server挂掉的时候,不能出现所有client都在一个时间点发起重连,那样基本就是灾难。 通常可以采用的方法是client重连前都做随机时间的sleep,另外就是重连的间隔采取避让算法。2. 一个client连大量的server

高并发这个点需要掌握CAS、常见的lock-free算法、读写锁、线程相关知识(例如线程交互、线程池)等,
通信层面的高并发在NonBlocking-IO的情况下,最重要的是要注意在整体设计和代码实现上尽量减少对io线程池的时间占用。
伸缩性: 伸缩性的问题围绕着以下两种场景在解决:
1. 无状态场景 无状态场景通常会把很多状态放在db,当量到一定阶段后会需要引入服务化,去缓解对db连接数太多的情况。2. 有状态场景 所谓状态其实就是数据,通常采用Sharding来实现伸缩性,Sharding有多种的实现方式,常见的有这么一些: 2.1 规则Sharding2.2 一致性Hash
参考我的另一篇文章:http://www.cnblogs.com/charlesblc/p/6033345.html
2.3 Auto Sharding Auto Sharding的好处是基本上不用管数据搬迁,而且随着量上涨加机器就OK,但通常Auto Sharding的情况下对如何使用会有比较高的要求,
而这个通常也就会造成一些限制,这种方案例如HBase。
2.4 Copy Copy这种常见于读远多于写的情况,实现起来又会有最终一致的方案和全局一致的方案,最终一致的多数可通过消息机制等,
全局一致的例如zookeeper
/etcd之类的,既要全局一致又要做到很高的写支撑能力就很难实现了。稳定性: 1. 无状态场景2. 有状态场景 全局一致类型的场景中,如果一台挂了,就通常意味着得有选举机制来决定其他机器哪台成为主,常见的例如基于paxos的实现。可维护性 整个系统环境应该怎么搭建,部署,配套的维护工具、监控点、报警点、问题定位、问题处理策略等等。

 

 

再来一张貌似是京东架构的图:

 

 参考页面地址:http://geek.csdn.net/news/detail/98500

说一下认为其中有道理的地方:

要关注的技术领域,高可用、高并发、分布式,以及一些基础技术、新语言、存储、容器、系统等。架构于不同系统,不同公司文化,不同公司层次(初建期,发展期,成熟期),都有着不同的定义和理解。公司初建期:用户服务基础。
公司发展期:用户服务基础,满足高速扩充的业务需求,提纯基础结构。
公司成熟期:用户服务基础,满足业务需求,提纯基础结构,技术驱动衍生新生态系统。

架构又可分:基础架构、系统架构、业务架构、代码架构。优秀的架构特点,简单,易懂,多变,相对灵活(根据系统迭代期、研发理解能力、团队大小取决)。

具备哪些素质才能成为是出色的架构师?
一个出色的架构师,至少有一门用很深的编程语言作为常委语言,一个出色架构师需要突出代码读写能力作为基础。
读代码能力尤为重要,要能结合代码读出业务逻辑,以及里面优秀架构思路,不足之处,读代码同时学习。学习能力,思维方式:学习技术、框架,不光会用、知其原理、并能举一反三的思维。结合已学到的知识组合创新思维,将繁杂的事,简单化处理。 忍耐能力:作为一个团队技术头头,一般都会有一些孤独感。可能这就是大家常说的技术范。
再就是对于系统改造循序渐近的,得忍受那种全部都重做的冲动,一点一点的进行处理。 重生能力:作为架构师,熟悉自己所在团队和系统是必然的。抽时间让自己跳出原有既定思维和惯性,重新认识自己团队和系统。 沟通能力:需要跟与人打交道,当然需要良好沟通能力了。

别于社交网络、搜索和游戏等网站,电商网站的用户流量有哪些特点?

电商网站流量特点,突发性流量暴增,根本无法精确的预估的量。可能刚开始几万的量,突然几分钟就上到几十、几百、上千万、十倍百倍千倍的往上增。
相比社交、搜索、游戏网站,差异最大点,就在直接牵涉精确的金额的问题。所以对于精准和延时,缓存有一些差异化的。社交网络:一般延时可做大点,及时性通讯可以端对端。 搜索:一般多级缓存,大多计算好往前推,延时也可做大点,另外搜索本就模糊的匹配,精准性方面要求没那么严格。 游戏网站:大多客户端大型游戏,客户端数据缓存几秒之后再进行传输,或者一些直接本地存数据,后端根服务器交互。 根据上面的比对,还是有比较真实感知到是有差异的。差异点主要集中在于 money 交易这一点上。

 

高流量、高并发情况下,如何保证整个系统的可靠性和稳定性

高流量、高并发是交易所有系统都面临这样一个问题,记忆深刻的用户刷爆品商品的问题,还有利用软件来刷的。入口层:过滤掉大部分软件刷的情况,衍生了风控系统,秒杀系统。
应用层: 读写分离、缓存、队列、令牌、系统拆分、隔离、系统升级(可水平扩容方向)。
其他: 
时间换空间:降低单次请求时间,这样在单位时间内系统并发就会提升。
空间换时间:拉长整体处理业务时间,换取后台系统容量空间。
可靠性和稳定性:会做一堆的容灾方案,从机房、网络、应用、存储、渠道、业务等多维度容灾。做一堆的降级策略,从流量、应用、渠道、业务 等对多维度做。

每年大型促销、流量、订单量不断翻倍。推动你去做异构、拆分系统、异步、服务化、容灾、降级等等,一堆堆的优化。

 

关于一些技术框架,实际上最终实现都大同小异,会去了解实现原理,以及做的好的地方,比如Elasticsearch底层用的Lucene。

而Lucene之前用过还专门看过源码,基本都是通的。加入了分布式存储的副本概念,以及sharding子机器并行执行理念,收集结果返回。

 

 

 再来一张不明所以的图:

 

 

再来一张牛逼的图:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_725925.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站性能优化整理笔记

为什么80%的码农都做不了架构师?>>> 优化网站响应时间方法 1、减少http请求 可以降低网站的响应时间和减少传输的数据,主要方法: 1)将多个图片合并成一个文件,减少图片下载的请求 2)合并js脚本…

爬一爬哪个操蛋的药品网站,建立药品库

阅读文本大概需要5分钟。互联网医疗公司,有一个完整、完全、正确的药品库非常重要;今天来说一说小编在上一个东家为了建立一个自己的药品库是怎么做的。首先我们是一家小公司,但是我们有一个纽约敲钟的梦想,虽然就要闹得发不了工资…

从零开始写项目终极【维护网站、修复Bug】

url自动携带jsessionid在我使用浏览器收藏了我写的网站的时候,有的时候会访问不了页面。看了一下原因,是由于url携带了jsessionId,我就奇怪为啥会自动携带jsession了。我分析是由“记住我“功能引起的这个bug,于是我就去查找了一下…

classname帝国怎么用php调用,分享帝国cms怎么调用栏目别名考虑到seo优化

在新模板制作过程中,由于栏目名称比较长,用在标题上没有问题,对seo有利,但是在页面上不希望这么长,简单即可,提过提供了栏目别名,如果能调用就方便了,请留意下面的修改方法修改后栏目…

监听器应用【统计网站人数、自定义session扫描器、踢人小案例】(修订版)

前言只有光头才能变强。文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y从第一篇已经讲解过了监听器的基本概念,以及Servlet各种的监听器。这篇博文主要讲解的是监听器的应用。统计网站在线人数ps:这个可以使用We…

大型分布式网站架构设计与实践

阅读文本大概需要3分钟。SOA和RPC随着互联网规模发展,面向服务的体系架构(SOA)成为主流的架构方式,SOA的本质思想是高内聚、低耦合地实现分治,各个系统之间通过服务的方式进行交互,这样保证了交互的标准性,这对于一个复…

为什么有些网站域名不以www开头?什么是二级域名?

本文公众号来源:漫话编程 作者:漫话编程我在初学的时候不清楚啥叫顶级域名,啥是二级域名以及为啥我们输入网站地址的时候可以省略www!这篇文章通俗易懂地告诉你!38女神节那一天,女朋友问我淘宝网国际站的…

大型网站技术架构剖析

阅读文本大概需要3分钟。大型网站系统特点高并发,大流量高可用海量数据用户分布广泛,网络情况复杂安全环境恶劣需求快速变更,发布频繁渐进式发展大型网站发展演化过程一台服务器特点:没人应用程序、数据库、文件都在一个服务器。应…

[网站优化实战]公共CDN库/Nginx启用Gzip/全站CDN加速

本文公众号来源:Rude3Knife 作者:蛮三刀把刀网站加载优化的过程(主要针对静态资源),思路可以借鉴一下!前言接触到CDN的起因:我自己搭建的网站https://price.monitor4all.cn/网页打开的速度一直…

《大型网站系统与Java中间件》读书笔记(上)

前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 这本书买了一段时间了,之前在杭州没带过去,现在读完第三章,来做做笔记 这本书前三章都在科普和回顾中间件/分布式…

《大型网站系统与Java中间件》读书笔记 (二)

前言只有光头才能变强。文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y回顾上一篇:《大型网站系统与Java中间件》读书笔记(一)这周周末读了第四章,现在过来做做笔记&#xff0…

《大型网站系统与Java中间件》读书笔记 (中)

前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 回顾上一篇: 《大型网站系统与Java中间件》读书笔记(一) 这周周末读了第四章,现在过来做做笔记&am…

几个简单步骤可以提高网站浏览体验

摘要: STEP 1确定网站定位 你的网站定位是要以企业形象官网为主,或是以单纯贩售商品的购物网站,还是要跟使用者做互动活动的网站? 每个网站的目的都不尽相同,形象官网,可能需要着重于品牌理念、品牌故事、…

一次面试引发的思考(中小型网站优化思考)

前言 故事的起因是这样的,由于本人地处偏僻工作地点在美丽的冰城哈尔滨虽然地方很美丽,但是这里的软件行业实在是算不上“美丽”,这么多年由于个人原因或者公司原因经常换工作,因为这里都是中小型公司,没有什么大公司。…

我采访了同事,让他掏出了每天都会浏览的干货网站...这几个网站也太牛了吧!

前言 在周六的晚上,我日常去到公司写文章。想写一篇程序员常浏览的网站,刚好同事在我后面看我在干什么。于是我就对他进行了采访,问了一下他常去的网站有哪些。 这次我采访的是鸡蛋,他跟我一样大,但是技术比我优秀实在…

Django项目实践4 - Django网站管理(后台管理员)

http://blog.csdn.net/pipisorry/article/details/45079751 上篇:Django项目实践3 - Django模型 Introduction 对于某一类站点, 管理界面 是基础设施中很重要的一部分。这是以网页和有限的可信任管理者为基础的界面,它能够让你加入&#xff0…

亿级流量网站构架核心技术

高并发原则无状态拆分系统维度:根据系统功能/业务进行拆分功能维度:对一个系统进行功能再拆分读写维度:根据读写比例进行拆分AOP维度:根据访问特征模块维度:比如按照基础或代码维护特征进行拆分服务化:进程…

Python教程 - 廖雪峰的官方网站

2019独角兽企业重金招聘Python工程师标准>>> https://www.liaoxuefeng.com/ 转载于:https://my.oschina.net/u/3563297/blog/1622686

这也许是破解所有网站

您还担心各种资源获取不到吗?这里聚集了广大网友的智慧结晶所在! 现在的技术真的是越来厉害了,而且相比于以往复杂的操作 现在的黑科技仿佛特别“亲民” 比如 我之前发过在“baidu”后面加“wp” 就能高速下载百度云资源 而且自己不需要…

thinkphp5项目--企业单车网站(五)

thinkphp5项目--企业单车网站(五) 项目地址 fry404006308/BicycleEnterpriseWebsite: Bicycle Enterprise Websitehttps://github.com/fry404006308/BicycleEnterpriseWebsite 一、BeyondAdmin使用 1、里面的功能真的超级全,连编辑器都有&…