
高并发架构
文章平均质量分 87
牛路
曾经就职于京东,国美,字节跳动任技术总监;
展开
-
【高并发、高性能、高可用】“三高” 系统设计经验
软件开发通常会提到一个名词 “三高”,即高并发、高性能、高可用。具体的指标定义,如:高并发方面要求QPS 大于 10万;高性能方面要求请求延迟小于 100 ms;高可用方面要高于 99.99%。接下来,我们重点来介绍这 三高高并发我们使用 QPS(Queries Per Second,每秒查询率)来衡量系统承载能力。架构策略有哪些?1、负载均衡正所谓双拳难敌四手,高并发撑场面的首选方案就是集群化部署,一台服务器承载的QPS有限,多台服务器叠加效果就不一样了。...原创 2021-05-29 11:09:41 · 9263 阅读 · 2 评论 -
京东商城系统架构设计原则
京东商城系统,融合了自营模式、商城模式、三方平台等模式,跟淘宝、天猫以商城模式为主的电商系统相比,业务模式上要丰富很多,包括许多WMS、TMS、OMS的部分。国内中小型电商公司,如果要学,最好是学习京东的业务架构,因为业务模式上相近一些。一、超大型电商系统架构目标1、构建超大型电商交易平台,兼顾效率和性能,达到高人效、高时效和低成本的目标。2、低成本,增加服务的重用性,提高开发效率,降低人力成本;利用成熟开源技术,降低软硬件成本;利用虚拟化技术,减少服务器成本。3、高...原创 2021-05-12 11:39:40 · 8852 阅读 · 3 评论 -
为什么要用分布式消息队列?重复消费?顺序消费?
我们可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用。消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。目前使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,RocketMQ,我们后面会一一对比这些消息队列。本课时主要介绍以下内容。消息队列类型:RabbitMQ,ActiveMQ,RocketMQ,Kafka 等同步架构和异步架构的区别。异步队列架构原理,异步架构的主要..原创 2020-09-01 14:14:59 · 1104 阅读 · 0 评论 -
缓存面试五连击(下篇)
接着上篇去聊一下,缓存的主要类型缓存的类型主要分为客户端缓存,浏览器缓存,CDN缓存,反向代理缓存,应用缓存等;客户端缓存相对于其他端的缓存而言,要简单一些,目的就是加速各种静态资源的访问,想想现在的大型网站,随便一个页面都是一两百个请求,每天 pv 都是亿级别,如果没有缓存,用户体验会急剧下降、同时服务器压力和网络带宽都面临严重的考验。客户端缓存主要分为两种:页面缓存和浏览器缓存页面缓存页面缓存有两层含义: 一个是页面自身对某些元素或全部元素进行缓存;另一层意思...原创 2020-08-27 20:01:15 · 389 阅读 · 0 评论 -
缓存面试五连击(上篇)
互联网公司必问这个问题,要是一个连缓存都不太清楚,那确实比较尴尬。只要问到缓存,上来第一个问题,肯定是先问问你项目哪里用了缓存?为啥要用?不用行不行?如果用了以后可能会有什么不良的后果?这就是看看你对缓存这个东西背后有没有思考,如果你就是傻乎乎的瞎用,没法给面试官一个合理的解答,那面试官对你印象肯定不太好,觉得你平时思考太少。随着互联网系统发展的逐步完善,提高系统的qps(每秒查询率),目前的绝大部分系统都增加了缓存机制从而避免请求过多的直接与数据库操作从而造成系统瓶颈,极大的提升了用户体.原创 2020-08-27 19:55:19 · 237 阅读 · 0 评论 -
亿级流量高并发场景下,如何解决一致性问题
大家好,我是牛路,欢迎来到我的吊打面试官系列课,第二讲 《亿级流量高并发场景下,如何解决一致性问题》本课咱们重点讨论一下如何解决一致性问题,一致性在分布式架构面试中会经常问道,在传统单体架构中,数据状态的处理都在同一个服务和数据库中,而具有**ACID特性**的数据库支持强一致性,就是说数据库本身是不会出现不一致的状态的,比如我们常用的关系型数据库MySQL就是通过多版本控制协议(MVCC)的实现来保证了强一致性。但是随着互联网的发展,用户增多&服务也越来越多越来越复杂,数据量和请求的并发量原创 2020-08-27 18:34:33 · 1222 阅读 · 0 评论 -
从10到10亿级PV京东系统架构演进之路
今天从宏观的角度来讲,整个时代是大众创业万众创新的时代,作为程序员我们每个人都有一个梦想,吊打面试官,很多人给我说,我想进百度,想进阿里,想进腾讯,等一线互联网公司。你就需要知道面试官的一些大招,这样才能有效躲避,进而反击;目前大多数企业都属于中小企业, 所有的大企业都是从小公司一步一步发展起来,我曾经所在的京东也同样如此;大家看一下,目前中小企业IT架构面临的问题当业务发生变化,不断的在原有系统的上打补丁 当业务发展时,系统不断出现各种瓶颈 卡顿,数据库锁死,网站打不开, 各种...原创 2020-08-27 18:12:45 · 2235 阅读 · 2 评论 -
MySQL数据库的索引原理、与慢SQL优化的5大原则
MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易...原创 2020-03-03 11:33:46 · 364 阅读 · 0 评论 -
MQ消息队列的12点核心原理总结
消息队列已经逐渐成为分布式应用场景、内部通信、以及秒杀等高并发业务场景的核心手段,它具有低耦合、可靠投递、广播、流量控制、最终一致性 等一系列功能。无论是 RabbitMQ、RocketMQ、ActiveMQ、Kafka还是其它等,都有的一些基本原理、术语、机制等,总结分享出来,希望大家在使用消息队列技术的时候能够快速理解。1. 消息生产者、消息者、队列消息生产者Producer:发...原创 2020-03-03 10:08:02 · 261 阅读 · 0 评论 -
分布式之消息队列的特点、选型、及应用场景详解
什么是消息队列消息队列(Message Queue,简称MQ),指保存消息的一个容器,本质是个队列。消息(Message)是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,有消息系统来确保信息的可靠专递,消息发布者只管把消息发布到MQ中而不管谁来取,消息...原创 2020-03-03 10:19:18 · 423 阅读 · 0 评论