
高并发架构系列
mikechen的互联网架构
BAT架构师/CTO,10余年一线大厂架构技术倾囊相授。专注分享:BAT架构技术+面试真题+技术管理干货!
展开
-
BAT架构技术专题合集500+
Mike创作的完整《BAT架构技术合集500+》,是大型高并发网站架构技术文章合集,内容包括技术选型、架构设计、性能优化、Web安全、系统发布等在内的大型网站开发全景视图。通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,结合架构设计案例,深入讲述大型互联网架构设计的核心原理。给想要了解大型网站解决方案和开发理念、进阶提高技术能力的Java工程师们做个参考。本篇是《BAT架构技术合集5...原创 2019-04-06 12:02:32 · 1789 阅读 · 1 评论 -
阿里P8架构师分享:如何从0到1设计一个类Dubbo的RPC框架
在过去持续分享的几十期阿里Java面试题中,几乎每次都会问到Dubbo相关问题,比如:“如何从0到1设计一个Dubbo的RPC框架”,这个问题主要考察以下几个方面:你对RPC框架的底层原理掌握程度。考验你的整体RPC框架系统设计能力。具体,mike来为大家详解。RPC和RPC框架1.RPC(Remote Procedure Call)即远程过程调用, 主要解决远程通信间的问题,不需要了...原创 2019-01-22 19:39:29 · 715 阅读 · 0 评论 -
程序员常用的3大Web安全漏洞防御解决方案:XSS、CSRF及SQL注入(图文详解)
随着互联网的普及,网络安全变得越来越重要,程序员需要掌握最基本的web安全防范,下面列举一些常见的安全漏洞和对应的防御措施。01 常见的Web安全问题1.前端安全XSS 漏洞CSRF 漏洞2.后端安全SQL 注入漏洞02 XSS漏洞1.XSS简介跨站脚本(cross site script)简称为XSS,是一种经常出现在web应用中的计算机安全漏洞,也是web中最主流的攻击方式...原创 2019-01-15 10:56:04 · 1437 阅读 · 0 评论 -
高并发架构系列:Kafka、RocketMQ、RabbitMQ的优劣势比较
在高并发业务场景下,典型的阿里双11秒杀等业务,消息队列中间件在流量削峰、解耦上有不可替代的作用。之前介绍了【MQ消息队列的12点核心原理总结】、【如何从0到1设计一个MQ消息队列】、【RPC远程调用和消息队列MQ的区别】,感兴趣可以查看我的往期文章。今天我们一起来探讨:全量的消息队列究竟有哪些? Kafka、RocketMQ、RabbitMQ的优劣势比较,以及消息队列的选型。最全MQ消息...原创 2019-01-09 15:08:02 · 4901 阅读 · 0 评论 -
想成长为一名年薪50万+的实战型架构师?必掌握这7大实战技能经验
想成为一名架构师,但是架构师对应的技能,我应该掌握哪些啊?以及掌握的程度是什么样的?如何成为一名真正的实战性架构师?我简要分为以下7点来谈谈,从技能的角度抛砖引玉,希望你对你架构师之路有一定的参考。编程基本功:数据结构和算法如果你一直关注,会发现我之前分享的阿里面试题系列,有许多关于算法内容,比如:HashMap如何扩容,底层的数据结构发生了怎样的转变。这就是典型的数据结构基本功,这些掌握...原创 2019-01-24 09:00:31 · 625 阅读 · 0 评论 -
高并发架构系列:如何从0到1设计一个MQ消息队列
消息队列作为系统解耦,流量控制的利器,成为分布式系统核心组件之一。如果你对消息队列背后的实现原理关注不多,其实了解消息队列背后的实现非常重要。不仅知其然还要知其所以然,这才是一个优秀的工程师需要具备的特征。今天,我们就一起来探讨设计一个消息队列背后的技术。消息队列整体设计思路主要是设计一个整体的消息被消费的数据流。这里会涉及到:消息生产Producer、Broker(消息服务端)、消...原创 2019-01-08 13:26:22 · 922 阅读 · 0 评论 -
阿里P8架构师谈:Zookeeper的原理和架构设计,以及应用场景
随着信息化水平的不断提高,企业级应用系统变得越来越庞大,性能随之下降,用户抱怨频频。拆分系统是目前我们可选择的解决系统可伸缩性和性能问题的唯一行之有效的方法。但是拆分系统同时也带来了系统的复杂性——各子系统不是孤立存在的,它们彼此之间需要协作和交互(分布式系统)。各个子系统就好比动物园里的动物,为了使各个子系统能正常为用户提供统一的服务,必须需要一种机制来进行协调——这就是ZooKeeper(动物...原创 2019-01-17 11:44:14 · 455 阅读 · 0 评论 -
分布式消息系列:详解RocketMQ的简介与演进、架构设计、关键特性与应用场景
终身学习是程序员的必备能力,一群人在一起走得更远,一起学习,共抗惰性。今天,我们来重点了解RocketMQ的简介与演进、架构设计、关键特性及应用场景等内容。本文内容大纲:RocketMQ的简介与演进RocketMQ的架构设计RocketMQ的关键特性RocketMQ的应用场景01 RocketMQ的简介RocketMQ是一个纯java、分布式、队列模型的开源消息中间件,前身是Me...原创 2019-01-11 16:07:15 · 539 阅读 · 0 评论 -
高并发架构系列:Redis缓存和MySQL数据一致性方案详解
一、需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)...原创 2018-12-17 21:55:48 · 13865 阅读 · 1 评论 -
高并发架构系列:Redis为什么是单线程、及高并发快的3大原因详解
Redis的高并发和快速原因1.redis是基于内存的,内存的读写速度非常快;2.redis是单线程的,省去了很多上下文切换线程的时间;3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间。下面重点介绍单线...原创 2018-12-17 17:42:47 · 6836 阅读 · 0 评论 -
高并发架构系列:如何解决Redis雪崩、穿透、并发等5大难题
一、缓存雪崩数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机。比如一个雪崩的简单过程:1、redis集群大面积故障;2、缓存失效,但依然大量请求访问缓存服务redis;3、redis大量失效后,大量请求转向到mysql数据库;4、mysql的调用量暴增,很快就扛不住了,甚至直接宕机;5、由于大量的应用服务依赖my...原创 2018-12-17 14:34:15 · 3310 阅读 · 0 评论 -
高并发架构系列:分布式锁的由来、特点及Redis分布式锁的实现详解
标题Redis内存回收机制Redis的内存回收主要围绕以下两个方面:1.Redis过期策略删除过期时间的key值2.Redis淘汰策略内存使用到达maxmemory上限时触发内存淘汰数据Redis的过期策略和内存淘汰策略不是一件事,实际研发中不要弄混淆了,下面会完整的介绍两者。Redis过期策略过期策略通常有以下三种:1.定时过期每个设置过期时间的key都需要创建一个定时器,到...原创 2018-12-21 16:18:49 · 471 阅读 · 0 评论 -
高并发架构系列:分布式锁的由来、特点及Redis分布式锁的实现详解
在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。那具体什么是分布式锁,分布式锁应用在哪些业务场景、如何来实现分布式锁呢?今天来探讨分布式锁这个话题。什么是分布式锁要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。1.线程锁主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同...原创 2018-12-20 16:29:18 · 373 阅读 · 0 评论 -
高并发架构系列:Redis并发竞争key的解决方案详解
需求由来1.Redis高并发的问题Redis缓存的高性能有目共睹,应用的场景也是非常广泛,但是在高并发的场景下,也会出现问题:缓存击穿、缓存雪崩、缓存和数据一致性,以及今天要谈到的缓存并发竞争。这里的并发指的是多个redis的client同时set key引起的并发问题。2.出现并发设置Key的原因Redis是一种单线程机制的nosql数据库,基于key-value,数据可持久化落盘。由...原创 2018-12-19 14:31:29 · 17072 阅读 · 2 评论