IT职场经验、面试、笔试经验

阿里P8架构师谈:SpringCloud简介,微服务架构,以及与Dubbo的详细比较

什么是Spring CloudSpring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量。为什么需要Spring CloudSpring Cloud 是整个 Spring 家族中新……

高并发架构系列:什么是流量削峰?如何解决秒杀业务的削峰场景

高并发架构系列:什么是流量削峰?如何解决秒杀业务的削峰场景

流量削峰的由来 主要是还是来自于互联网的业务场景,例如,马上即将开始的春节火车票抢购,大量的用户需要同一时间去抢购;以及大家熟知的阿里双11秒杀,短时间上亿的用户涌入,瞬间流量巨大(高并发),比如:200万人准备在凌晨12:00准备抢购一件商品,但是商品的数量缺是有限的100-500件左右。这样真实能购买到该件商品的用户也只有几百……

高并发架构系列:分布式之消息队列的特点、选型、及应用场景详解

高并发架构系列:分布式之消息队列的特点、选型、及应用场景详解

前面集中谈了分布式缓存Redis系列:高并发架构系列:分布式锁的由来、特点、及Redis分布式锁的实现详解高并发架构系列:Redis并发竞争key的解决方案详解高并发架构系列:Redis缓存和MySQL数据一致性方案详解Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别高并发架构系列:Redis为……

阿里P8架构师谈:双11秒杀系统如何设计?

阿里P8架构师谈:双11秒杀系统如何设计?

秒杀活动场景淘宝双11秒杀场景,大量的用户短时间内涌入,瞬间流量巨大(高并发),比如:1000万人同一时间抢购100件商品。秒杀活动是一个特别考验后台数据库、缓存服务的业务,对于数据库、缓存的性能要求特别严格。秒杀背后的技术挑战1、突增的服务器及网络需求通常情况下,双 11 的服务器使用是平时的 3-5 倍,网络带……

Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别

Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别

前一篇文章高并发架构系列:Redis为什么是单线程、及高并发快的3大原因详解谈了Redis高并发快的3个原因,本篇主要谈Redis的高可用,两篇合起来就可以把redis的高并发和高可用搞清楚了。谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制。 哨兵(Sentinel):可以管理多个……

高并发架构系列:Redis并发竞争key的解决方案详解

高并发架构系列:Redis并发竞争key的解决方案详解

Redis高并发的问题Redis缓存的高性能有目共睹,应用的场景也是非常广泛,但是在高并发的场景下,也会出现问题:高并发架构系列:Redis缓存和MySQL数据一致性方案详解如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题以及今天要谈到的Redis并发竞争问题,这里的并发指的是多个redis的client同时……

如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题

如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题

Java相关的面试都会问到缓存的问题:史上最全Redis面试49题(含答案):哨兵+复制+事务+集群+持久化等,除此之外还会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等不常见的问题,但却是非常重要的问题,今天谈谈这个话题。基本看完这两篇,可以对redis有一个比较全面的初步了解,后续我再补充redis相关的实战篇,总结为一个redis系列……

阿里P8架构师谈:什么是缓存雪崩?服务器雪崩的场景与解决方案

阿里P8架构师谈:什么是缓存雪崩?服务器雪崩的场景与解决方案

什么是应用服务雪崩雪崩问题分布式系统都存在这样一个问题,由于网络的不稳定性,决定了任何一个服务的可用性都不是 100% 的。当网络不稳定的时候,作为服务的提供者,自身可能会被拖死,导致服务调用者阻塞,最终可能引发雪崩连锁效应。缓存雪崩当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统(比如D……

史上最全Redis面试49题(含答案):哨兵+复制+事务+集群+持久化等

史上最全Redis面试49题(含答案):哨兵+复制+事务+集群+持久化等

最全面试题答案系列史上最强多线程面试44题和答案:线程锁+线程池+线程同步等最全MySQL面试60题和答案史上最全memcached面试26题和答案史上最全Spring面试71题与答案今天主要分享redis最全答案系列Redis主要有哪些功能?1.哨兵(Sentinel)和复制(Replic……

高并发架构系列:详解Redis的存储类型、集群架构、以及应用场景

高并发架构系列:详解Redis的存储类型、集群架构、以及应用场景

高并发架构系列高并发架构系列:数据库主从同步的3种一致性方案实现,及优劣比较高并发架构系列:Spring Cloud的核心成员、以及架构实现详细介绍高并发架构系列:服务注册与发现的实现原理、及实现优劣势比较高并发架构系列:Netty的实现原理、特点与优势、以及适用场景什么是redisredis是一种支持Key……

高并发架构系列:Netty的实现原理、特点与优势、以及适用场景

高并发架构系列:Netty的实现原理、特点与优势、以及适用场景

高并发编程系列高并发编程系列:NIO、BIO、AIO的区别,及NIO的应用和框架选型高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)高并发编程系列:CountDownLatch、Semaphore等4大并发工具类详解高并发编程系列:并发容器的原理,7大并发容器详解、及使用场景……

高并发架构系列:Spring Cloud的核心成员、以及架构实现详细介绍

高并发架构系列:Spring Cloud的核心成员、以及架构实现详细介绍

微服务架构系列高并发架构系列:服务注册与发现的实现原理、及实现优劣势比较阿里P8架构师谈:Restful、SOAP、RPC、SOA、微服务之间的区别阿里P8架构师谈:微服务技术架构、监控、Docker、服务治理等体系阿里P8架构师谈:Dubbo的详细介绍、设计思路、以及4大适用场景阿里P8架构师谈:从单体架构、到SO……

阿里P8架构师谈:Docker容器的原理、特征、基本架构、与应用场景

阿里P8架构师谈:Docker容器的原理、特征、基本架构、与应用场景

什么是容器?一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。 容器镜像是轻量的、可执行的独立软件包 ,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。 容器化软件适用于基于Linux和Windows的应用,在任何环境中都能够始终如一地运行。 容器赋予了软件独立性,使……

阿里P8架构师谈:从单体架构、到SOA、再到微服务的架构设计详解

阿里P8架构师谈:从单体架构、到SOA、再到微服务的架构设计详解

本文涉及的内容以及知识点如下:1、单体架构2、单体架构的拆分3、SOA与微服务的区别4、微服务的优缺点5、微服务的消息6、服务集成7、数据的去中心化单体架构Web应用程序发展的早期,大部分web工程是将所有的功能模块(service side)打包到一起并放在一个web容器中运行,很多……

阿里P8架构师谈:微服务技术架构、监控、Docker、服务治理等体系

阿里P8架构师谈:微服务技术架构、监控、Docker、服务治理等体系

1.什么是微服务1)一组小的服务(大小没有特别的标准,只要同一团队的工程师理解服务的标识一致即可)2)独立的进程(java的tomcat,nodejs等)3)轻量级的通信(不是soap,是http协议)4)基于业务能力(类似用户服务,商品服务等等)5)独立部署(迭代速度快)6)无集中式管理(无须统一技术栈,可……

阿里P8架构师谈:Restful、SOAP、RPC、SOA、微服务之间的区别

阿里P8架构师谈:Restful、SOAP、RPC、SOA、微服务之间的区别

内容大纲:1.介绍Restful、SOAP、RPC、SOA以及微服务2.重点谈谈SOA与微服务的区别3.以及为什么要使用微服务架构什么是RestfulRestful是一种架构设计风格,提供了设计原则和约束条件,而不是架构,而满足这些约束条件和原则的应用程序或设计就是 Restful架构或服务。主要的设计原则:……

高并发架构系列:服务注册与发现的实现原理、及实现优劣势比较

高并发架构系列:服务注册与发现的实现原理、及实现优劣势比较

服务注册与发现的来源首先,服务注册与发现是来自于微服务架构的产物。在传统的服务架构中,服务的规模处于运维人员的可控范围内。当部署服务的多个节点时,一般使用静态配置的方式实现服务信息的设定。而在微服务应用中,服务实例的数量和网络地址都是动态变化的,这对系统运维提出了巨大的挑战。而且服务集群的跨度很大、数量很多(数以百计甚至更多),为保……

阿里P8架构师谈:微服务Dubbo和SpringCloud架构设计、优劣势比较

阿里P8架构师谈:微服务Dubbo和SpringCloud架构设计、优劣势比较

本文主要围绕微服务的技术选型、通讯协议、服务依赖模式、开始模式、运行模式等几方面来综合比较Dubbo和Spring Cloud 这2种开发框架。架构师可以根据公司的技术实力并结合项目的特点来选择某个合适的微服务架构平台,以此稳妥地实施项目的微服务化改造或开发进程。微服务架构是互联网很热门的话题,是互联网技术发展的必然结果。它提倡将单一应用程序划分成……

阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化总结

阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化总结

MySQL优化概述MySQL数据库常见的两个瓶颈是:CPU和I/O的瓶颈。CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候。磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的时候那么平瓶颈就会出现在网络上。我们可以用mpstat, iostat, sar和vmstat来查……

高并发架构系列:Redis缓存和MySQL数据一致性方案详解

高并发架构系列:Redis缓存和MySQL数据一致性方案详解

需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更……

高并发架构系列:分布式锁的由来、特点、及Redis分布式锁的实现详解

高并发架构系列:分布式锁的由来、特点、及Redis分布式锁的实现详解

在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。那具体什么是分布式锁,分布式锁应用在哪些业务场景、如何来实现分布式锁呢?今天来探讨分布式锁这个话题。什么是分布式锁要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。1.线程锁主要用来给方法、代码块加锁。当某……

阿里P8架构师谈:分布式锁的3种实现(数据库、缓存、Zookeeper)

阿里P8架构师谈:分布式锁的3种实现(数据库、缓存、Zookeeper)

分布式锁的几种实现方式目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们,任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。所以,很……

微服务系列:RPC框架的实现原理,及RPC架构组件详解

微服务系列:RPC框架的实现原理,及RPC架构组件详解

RPC的由来随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的 数据访问框架(ORM……

阿里P8架构师谈:主流RPC框架详解,以及与SOA、SOAP、REST的区别

阿里P8架构师谈:主流RPC框架详解,以及与SOA、SOAP、REST的区别

什么是RPCRPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。简言之,RPC使得程序能够像访问本地系统资源一样,去访问远端系统资源。 比较关键的一些方面包括: 通讯协议 序列化 ……

阿里P8架构师谈:Dubbo的详细介绍、设计思路、以及4大适用场景

阿里P8架构师谈:Dubbo的详细介绍、设计思路、以及4大适用场景

Dubbo是什么?Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web ……

高并发架构系列:Redis缓存和MySQL数据一致性方案详解

高并发架构系列:Redis缓存和MySQL数据一致性方案详解

需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更……

高并发架构系列:数据库主从同步的3种一致性方案实现,及优劣比较

高并发架构系列:数据库主从同步的3种一致性方案实现,及优劣比较

数据主从同步的由来互联网的很多业务,特别是在高并发的场景下,基本都是读远远大于写,如果数据库读和写的压力都同在一台主机上,这显然不太合理。于是,把一台数据库主机分为单独的一台写主库(主要负责写操作),而把读的数据库压力分配给读的从库,而且读从库可以变为多台,这就是读写分离的典型场景如下:为了进一步的降低数据库端的压力(高并……

阿里P8架构师谈:分布式数据库数据一致性的原理、与技术实现方案

阿里P8架构师谈:分布式数据库数据一致性的原理、与技术实现方案

背景可用性(Availability)和一致性(Consistency)是分布式系统的基本问题,先有著名的CAP理论定义过分布式环境下二者不可兼得的关系,又有神秘的Paxos协议号称是史上最简单的分布式系统一致性算法并获得图灵奖,再有开源产品ZooKeeper实现的ZAB协议号称超越Paxos。在大数据场景下,分布式数据库的数据一致性管理是……

高并发架构系列:Redis为什么是单线程、及高并发快的3大原因详解

高并发架构系列:Redis为什么是单线程、及高并发快的3大原因详解

Redis的高并发和快速原因1.redis是基于内存的,内存的读写速度非常快;2.redis是单线程的,省去了很多上下文切换线程的时间;3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll……

分布式消息系列:详解RocketMQ的架构设计、关键特性、与应用场景

分布式消息系列:详解RocketMQ的架构设计、关键特性、与应用场景

内容大纲: RocketMQ的简介与演进 RocketMQ的架构设计 RocketMQ的关键特性 RocketMQ的应用场景RocketMQ的简介RocketMQ一个纯java、分布式、队列模型的开源消息中间件,前身是MetaQ,是阿里研发的一个队列模型的消息中间件,后开源给apache基金会……

高并发编程系列:NIO、BIO、AIO的区别,及NIO的应用和框架选型

高并发编程系列:NIO、BIO、AIO的区别,及NIO的应用和框架选型

谈到并发编程就不得不提到NIO,以及相关的Java NIO框架Netty等,并且在很多面试中也经常提到NIO和AIO、同步和异步、阻塞和非阻塞等的区别。我先简短介绍下几个NIO相关的概念,然后再谈NIO重点掌握内容,以及Java NIO框架选型。高并发编程系列高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK……

高并发编程系列:CountDownLatch、Semaphore等4大并发工具类详解

高并发编程系列:CountDownLatch、Semaphore等4大并发工具类详解

通常我们所说的并发包也就是java.util.concurrent,Java并发编程集中在这个并发包种,主要包含:Java并发工具类和并发容器等。今天主要介绍concurrent包的内容以及4大并发工具类。并发工具包1.并发工具类提供了比synchronized更加高级的各种同步结构:包括CountDownLatch、Cyc……

高并发编程系列:并发容器的原理,7大并发容器详解、及使用场景

高并发编程系列:并发容器的原理,7大并发容器详解、及使用场景

并发容器的由来在Java并发编程中,经常听到Java集合类,同步容器、并发容器,那么他们有哪些具体分类,以及各自之间的区别和优劣呢?只有把这些梳理清楚了,你才能真正掌握在高并发的环境下,正确使用好并发容器,我们先从Java集合类,同步容器谈起。1.什么是同步容器Java的集合容器框架中,主要有四大类别:List、Set、Qu……

最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁

最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁

在Java并发场景中,会涉及到各种各样的锁如公平锁,乐观锁,悲观锁等等,这篇文章介绍各种锁的分类:公平锁/非公平锁可重入锁独享锁/共享锁乐观锁/悲观锁分段锁自旋锁乐观锁 VS 悲观锁乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度,在Java和数据库中都有此概念对应的实际应用。1.乐观锁顾名思义,就是很……

阿里P8架构师谈:MySQL行锁、表锁、悲观锁、乐观锁的特点与应用

阿里P8架构师谈:MySQL行锁、表锁、悲观锁、乐观锁的特点与应用

我们在操作数据库的时候,可能会由于并发问题而引起的数据的不一致性(数据冲突)。如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素,从这一角度来说,锁对于数据库而言就显得尤为重要。MySQL锁概述相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支……

并发编程系列:Java线程池的使用方式,核心运行原理、以及注意事项

并发编程系列:Java线程池的使用方式,核心运行原理、以及注意事项

并发编程系列:高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景线程池的缘由java中为了提高并发度,可以使用多线程共同执行,但是如果有大量线程短时间之内被创建和销毁,会占用大量的系统时间,影响系统效率。为了解决上面的问题,java中引入了线程池,可以使创建好的线程在指定的时间内由系统统一管理,而不是在执行时创……

高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景

高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景

多线程的缘由在出现了进程之后,操作系统的性能得到了大大的提升。虽然进程的出现解决了操作系统的并发问题,但是人们仍然不满足,人们逐渐对实时性有了要求。使用多线程的理由之一是和进程相比,它是一种非常花销小,切换快,更”节俭”的多任务操作方式。在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段……

直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解

直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解

JVM系列直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置JVM内存调优对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。1.Full ……

直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景

直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景

直通BAT之JVM系列直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置今天继续JVM的垃圾回收器详解,如果说垃圾收集算法是JVM内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。常见的垃圾收集器有3类:1.新生代的收集器包括:……