- 博客(52)
- 资源 (32)
- 问答 (1)
- 收藏
- 关注
原创 27、生产环境中的redis是怎么部署的?
1、面试题生产环境中的redis是怎么部署的?2、面试官心里分析看看你了解不了解你们公司的redis生产集群的部署架构,如果你不了解,那么确实你就很失职了,你的redis是主从架构?集群架构?用了哪种集群方案?有没有做高可用保证?有没有开启持久化机制确保可以进行数据恢复?线上redis给几个G的内存?设置了哪些参数?压测后你们redis集群承载多少QPS?兄弟,这些你必须是门儿清的...
2018-12-29 21:59:09 620
原创 26、你能说说redis的并发竞争问题该如何解决吗?
1、面试题redis的并发竞争问题是什么?如何解决这个问题?了解Redis事务的CAS方案吗?2、面试官心里分析这个也是线上非常常见的一个问题,就是多客户端同时并发写一个key,可能本来应该先到的数据后到了,导致数据版本错了。或者是多客户端同时获取一个key,修改值之后再写回去,只要顺序错了,数据就错了。而且redis自己就有天然解决这个问题的CAS类的乐观锁方案。redi...
2018-12-29 21:58:40 791
原创 25-02、高并发场景下的缓存+数据库双写不一致问题分析与解决方案设计
马上开始去开发业务系统,从哪一步开始做,从比较简单的那一块开始做,实时性要求比较高的那块数据的缓存去做,实时性比较高的数据缓存,选择的就是库存的服务,库存可能会修改,每次修改都要去更新这个缓存数据; 每次库存的数据,在缓存中一旦过期,或者是被清理掉了,前端的nginx服务都会发送请求给库存服务,去获取相应的数据,库存这一块,写数据库的时候,直接更新redis缓存,实际上没有这么...
2018-12-29 21:58:09 370
原创 25、如何保证缓存与数据库双写时的数据一致性?
1、面试题如何保证缓存与数据库的双写一致性?2、面试官心里分析你只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题?3、面试题剖析一般来说,就是如果你的系统不是严格要求缓存+数据库必须一致性的话,缓存可以稍微的跟数据库偶尔有不一致的情况,最好不要做这个方案,读请求和写请求串行化,串到一个内存队列里去,这样就可以保...
2018-12-29 21:57:36 2326
原创 24、你一般是如何应对缓存雪崩以及穿透问题的?
1、面试题了解什么是redis的雪崩和穿透?redis崩溃之后会怎么样?系统该如何应对这种情况?如何处理redis的穿透?2、面试官心里分析其实这是问到缓存必问的,因为缓存雪崩和穿透,那是缓存最大的两个问题,要么不出现,一旦出现就是致命性的问题。所以面试官一定会问你。3、面试题剖析缓存雪崩发生的现象缓存雪崩现象.png缓存雪崩的事前事中事后的解决方案事前:red...
2018-12-29 21:57:04 566 1
原创 23、redis cluster的核心原理分析:gossip通信、jedis smart定位、主备切换
一、节点间的内部通信机制1、基础通信原理(1)redis cluster节点间采取gossip协议进行通信;跟集中式不同,不是将集群元数据(节点信息,故障,等等)集中存储在某个节点上,而是互相之间不断通信,保持整个集群所有节点的数据是完整的维护集群的元数据用得,集中式,一种叫做gossip。集中式:好处在于,元数据的更新和读取,时效性非常好,一旦元数据出现了变更,立即就更新到集中式...
2018-12-29 21:56:34 446
原创 22、数据分布算法:hash+一致性hash+redis cluster的hash slot
1、redis cluster介绍(1)自动将数据进行分片,每个master上放一部分数据(2)提供内置的高可用支持,部分master不可用时,还是可以继续工作的在redis cluster架构下,每个redis要放开两个端口号,比如一个是6379,另外一个就是加10000的端口号,比如16379 ,16379端口号是用来进行节点间通信的,也就是cluster bus的东西,集群总线。clu...
2018-12-29 21:55:59 417
原创 21、怎么才能够突破单机瓶颈,让redis支撑海量数据?
redis的集群架构redis cluster支撑N个redis master node,每个master node都可以挂载多个slave node读写分离的架构,对于每个master来说,写就写到master,然后读就从mater对应的slave去读高可用,因为每个master都有salve节点,那么如果mater挂掉,redis cluster这套机制,就会自动将某个slave切换成mast...
2018-12-27 20:25:59 1307
原创 20-02、图解分析redis的RDB和AOF两种持久化机制的工作原理
分析redis的RDB和AOF两种持久化机制的工作原理我们已经知道对于一个企业级的redis架构来说,持久化是不可减少的。企业级redis集群架构:海量数据、高并发、高可用。持久化主要是做灾难恢复,数据恢复,也可以归类到高可用的一个环节里面去。比如你redis整个挂了,然后redis就不可用了,你要做的事情是让redis变得可用,尽快变得可用。重启redis,尽快让它对外提供服务...
2018-12-27 20:25:31 418
原创 20、怎么保证redis挂掉之后再重启数据可以进行恢复?
1、面试题redis的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的?2、面试官心里分析redis如果仅仅只是将数据缓存在内存里面,如果redis宕机了,再重启,内存里的数据就全部都弄丢了啊。你必须得用redis的持久化机制,将数据写入内存的同时,异步的慢慢的将数据写入磁盘文件里,进行持久化。如果redis宕机了,重启启动,自动从磁盘上加载之前持...
2018-12-25 13:36:50 8475
原创 19-06、redis哨兵的多个核心底层原理的深入解析(包含slave选举算法)
1、sdown和odown转换机制sdown和odown两种失败状态sdown是主观宕机,就一个哨兵如果自己觉得一个master宕机了,那么就是主观宕机odown是客观宕机,如果quorum数量的哨兵都觉得一个master宕机了,那么就是客观宕机sdown达成的条件很简单,如果一个哨兵ping一个master,超过了is-master-down-after-milliseconds...
2018-12-25 13:35:45 579
原创 19-05、redis哨兵主备切换的数据丢失问题:异步复制、集群脑裂
1、两种数据丢失的情况主备切换的过程,可能会导致数据丢失。(1)异步复制导致的数据丢失因为master -> slave的复制是异步的,所以可能有部分数据还没复制到slave,master就宕机了,此时这些部分数据就丢失了。异步复制导致的数据丢失问题.png(2)脑裂导致的数据丢失脑裂,也就是说,某个master所在机器突然脱离了正常的网络,跟其他slave机器不...
2018-12-25 13:33:18 878
原创 19-04、redis哨兵架构的相关基础知识的讲解
1、哨兵的介绍sentinal,中文名是哨兵哨兵是redis集群架构中非常重要的一个组件,主要功能如下(1)集群监控,负责监控redis master和slave进程是否正常工作(2)消息通知,如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员(3)故障转移,如果master node挂掉了,会自动转移到slave node上(4)配置中心,如果故障转移发生了...
2018-12-25 13:32:49 352
原创 19-03、redis主从架构下如何才能做到99.99%的高可用性?
1、什么是99.99%高可用?架构上,高可用性,99.99%的高可用性讲的学术,99.99%,公式,系统可用的时间 / 系统故障的时间,365天,在365天 * 99.99%的时间内,你的系统都是可以哗哗对外提供服务的,那就是高可用性,99.99%系统可用的时间 / 总的时间 = 高可用性,然后会对各种时间的概念,说一大堆解释。什么是99.99%高可用性.png2、redis不...
2018-12-25 13:32:19 559
原创 19-01、redis主从复制原理、断点续传、无磁盘化复制、过期key处理
1、主从架构的核心原理当启动一个slave node的时候,它会发送一个PSYNC命令给master node如果这是slave node重新连接master node,那么master node仅仅会复制给slave部分缺少的数据; 否则如果是slave node第一次连接master node,那么会触发一次full resynchronization开始full resynchron...
2018-12-25 13:31:49 379
原创 19-02、redis replication的完整流运行程和原理的再次深入剖析
1、复制的完整流程(1)slave node启动,仅仅保存master node的信息,包括master node的host和ip,但是复制流程没开始master host和ip是从哪儿来的,redis.conf里面的slaveof配置的(2)slave node内部有个定时任务,每秒检查是否有新的master node要连接和复制,如果发现,就跟master node建立socket网络...
2018-12-25 13:31:19 495
原创 19、怎么保证redis是高并发以及高可用的?
1、面试题如何保证Redis的高并发和高可用?redis的主从复制原理能介绍一下么?redis的哨兵原理能介绍一下么?2、面试官心里分析其实问这个问题,主要是考考你,redis单机能承载多高并发?如果单机扛不住如何扩容抗更多的并发?redis会不会挂?既然redis会挂那怎么保证redis是高可用的?其实针对的都是项目中你肯定要考虑的一些问题,如果你没考虑过,那确实你对生产系统中的...
2018-12-25 13:30:46 1619
原创 18、redis的过期策略能介绍一下?要不你再手写一个LRU?
1、面试题redis的过期策略都有哪些?内存淘汰机制都有哪些?手写一下LRU代码实现?2、面试官心里分析1)老师啊,我往redis里写的数据怎么没了?之前有同学问过我,说我们生产环境的redis怎么经常会丢掉一些数据?写进去了,过一会儿可能就没了。我的天,同学,你问这个问题就说明redis你就没用对啊。redis是缓存,你给当存储了是吧?啥叫缓存?用内存当缓存。内存是无限的吗,...
2018-12-24 20:37:56 451
原创 17、redis都有哪些数据类型?分别在哪些场景下使用比较合适呢?
1、面试题redis都有哪些数据类型?分别在哪些场景下使用比较合适?2、面试官心里分析除非是我感觉看你简历,就是工作3年以内的比较初级的一个同学,可能对技术没有很深入的研究过,我才会问这类问题,在宝贵的面试时间里,我实在是不想多问其实问这个问题呢,主要就俩原因:第一,看看你到底有没有全面的了解redis有哪些功能,一般怎么来用,啥场景用什么,就怕你别就会最简单的kv操作;第...
2018-12-24 20:37:05 312
原创 16、redis的线程模型?为啥单线程还能有很高的效率?
1、面试题redis和memcached有什么区别?redis的线程模型是什么?为什么单线程的redis比多线程的memcached效率要高得多(为什么redis是单线程的但是还可以支撑高并发)?2、面试官心里分析这个是问redis的时候,最基本的问题吧,redis最基本的一个内部原理和特点,就是redis实际上是个单线程工作模型,你要是这个都不知道,那后面玩儿redis的时候,出了问...
2018-12-24 20:36:27 1206
原创 15、分布式缓存的第一个问题
1、面试题在项目中缓存是如何使用的?缓存如果使用不当会造成什么后果?2、面试官心里分析这个问题,互联网公司必问,要是一个人连缓存都不太清楚,那确实比较尴尬了。只要问到缓存,上来第一个问题,肯定能是先问问你项目哪里用了缓存?为啥要用?不用行不行?如果用了以后可能会有什么不良的后果?这就是看看你对你用缓存这个东西背后,有没有思考,如果你就是傻乎乎的瞎用,没法给面试官一个合理的解答。...
2018-12-24 20:35:41 544
原创 14、分布式搜索引擎相关问题的面试技巧
消息队列、分布式搜索引擎其实如果我是面试官的话,我如果感觉你都把刚才那些问题都答出来了,我可能会继续刨根问底,深挖,问你,直到把你给问倒。消息队列,kafka,复制的底层原理,leader选举的算法,增加partition以后的rebalance算法,扣很多很多的细节,如何优化kafka写入的吞吐量。其实这块如果挖深了可以问的极其深,如果是我来深挖,可能会挖到es底层的相关度评分算法(...
2018-12-24 20:35:03 398
原创 13、你们公司生产环境的分布式搜索引擎是怎么部署的呢?
1、面试题es生产集群的部署架构是什么?每个索引的数据量大概有多少?每个索引大概有多少个分片?2、面试官心里分析这个问题,包括后面的redis什么的,谈到es、redis、mysql分库分表等等技术,可以说是面试中的亮点!就是你生产环境咋部署的?说白了,这个问题没啥技术含量,就是看你有没有在真正的生产环境里干过这事儿!有些同学可能是没在生产环境中干过的,没实际去拿线上机器部署过es...
2018-12-24 20:34:33 406
原创 12、分布式搜索引擎在几十亿数据量级的场景下如何优化查询性能?
1、面试题es在数据量很大的情况下(数十亿级别)如何提高查询效率啊?2、面试官心里分析问这个问题,是肯定的,说白了,就是看你有没有实际干过es,因为啥?es说白了其实性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下5秒10秒,坑爹了。第一次搜索的时候,是510秒,后面反而就快了,可能就几百毫秒。你就很懵,每个用户第一次访...
2018-12-24 20:34:00 2496 1
原创 11、分布式搜索引擎写入和查询的工作流程是什么样的?为什么是分布式的?
1、面试题es写入数据的工作原理是什么啊?es查询数据的工作原理是什么啊?它为啥是分布式的啊?2、面试官心理分析问这个,其实面试官就是要看看你了解不了解es的一些基本原理,因为用es无非就是写入数据,搜索数据。你要是不明白你发起一个写入和搜索请求的时候,es在干什么,那你真的就是。对es基本就是个黑盒,你还能干啥?你唯一能干的就是用es的api读写数据了。要是出点什么问题,你啥都不...
2018-12-24 20:33:20 771
原创 Redis常用数据类型以及应用场景
随着应用技术的进步,redis也从之初的云端飞入寻常传统项目中来了。所以,紧跟着的便是面试题对于他的普及,今天就和大家聊一聊redis的应用。 项目中为什么要用redis?聊到这个问题,我们就不免要对比一下与之相关的非关系型数据库了,总不能上来就告诉面试官:“架构师是这样搭建的……”!那么,我只能爱莫能助了。作为一个优秀的程序员,我们不仅仅要会使用一项技术更应该知道为什么使用它而...
2018-12-22 16:28:32 1357
原创 10、面试官对于分布式搜索引擎的4个连环炮
业内目前来说事实上的一个标准,就是分布式搜索引擎一般大家都用elasticsearch,es,solr,但是确实,这两年大家一般都用更加易用的es。lucene如果你确实真的不连lucene都不知道是什么?我觉得你确实不应该,lucene底层的原理是一个东西,叫做倒排索引。太基础了。百度,搜索一下lucene入门,了解一下lucene是什么?倒排索引是什么?全文检索是什么?写个luce...
2018-12-22 10:41:13 635
原创 09、总结一下消息队列相关问题的面试技巧
一般而言,如果一个面试官水平还算不错,会沿着从浅入深的环节深入挖一个点。比如我吧,其实按照这个思路可以一直问下去,除了这里的7个问题之外,甚至能挑着你熟悉的一个mq一直问到源码级别非常底层。我还可能会结合项目来仔细问,我可能会先让你给我详细说说你的业务细节,然后将你的业务跟这些mq的问题场景结合起来,看看你每个细节是怎么处理的。但是说实话,这里只是希望能够提供给大家面试方面的突击,实际的应用还...
2018-12-22 10:40:28 501
原创 08、如果让你来开发一个消息队列中间件,你会怎么设计架构?
1、面试题如果让你写一个消息队列,该如何进行架构设计啊?说一下你的思路。2、面试官心里分析其实聊到这个问题,一般面试官要考察两块:(1)你有没有对某一个消息队列做过较为深入的原理的了解,或者从整体了解把握住一个mq的架构原理;(2)看看你的设计能力,给你一个常见的系统,就是消息队列系统,看看你能不能从全局把握一下整体架构设计,给出一些关键点出来。说实话,我一般面类似问题的时...
2018-12-22 10:39:37 1911
原创 07、完了!生产事故!几百万消息在消息队列里积压了几个小时!
1、面试题如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?2、面试官心里分析你看这问法,其实本质针对的场景,都是说,可能你的消费端出了问题,不消费了,或者消费的极其极其慢。接着就坑爹了,可能你的消息队列集群的磁盘都快写满了,都没人消费,这个时候怎么办?或者是整个这就积压了几个小时,你这个时候怎么办?或者是你积压的时间太长了,...
2018-12-22 10:38:47 9016 4
转载 06、 如何保证消息的顺序性?
1、面试题如何保证消息的顺序性?2、面试官心里分析其实这个也是用MQ的时候必问的话题,第一看看你了解不了解顺序这个事儿?第二看看你有没有办法保证消息是有顺序的?这个生产系统中常见的问题。3、面试题剖析我举个例子,我们以前做过一个mysql binlog同步的系统,压力还是非常大的,日同步数据要达到上亿。mysql -> mysql,常见的一点在于说大数据team,就需要同...
2018-12-22 10:37:48 4264 1
原创 05、消息队列中数据丢失了怎么办
1、面试题如何保证消息的可靠性传输(如何处理消息丢失的问题)?2、面试官心里分析这个是肯定的,用mq有个基本原则,就是数据不能多一条,也不能少一条,不能多,就是刚才说的重复消费和幂等性问题。不能少,就是说这数据别搞丢了。那这个问题你必须得考虑一下。如果说你这个是用mq来传递非常核心的消息,比如说计费,扣费的一些消息,因为我以前设计和研发过一个公司非常核心的广告平台,计费系统,计费系...
2018-12-22 10:36:26 5738 1
原创 04、如何保证消息队列中的消息不被重复消费
1、面试题如何保证消息不被重复消费啊(如何保证消息消费时的幂等性)?2、面试官心里分析其实这个很常见的一个问题,这俩问题基本可以连起来问。既然是消费消息,那肯定要考虑考虑会不会重复消费?能不能避免重复消费?或者重复消费了也别造成系统异常可以吗?这个是MQ领域的基本问题,其实本质上还是问你使用消息队列如何保证幂等性,这个是你架构里要考虑的一个问题。面试官问你,肯定是必问的,这是你要考...
2018-12-22 10:35:08 17465 4
原创 03、如何保证消息队列的高可用
1、面试题如何保证消息队列的高可用啊?2、面试官心理分析如果有人问到你MQ的知识,高可用基本算是必问的,因为MQ的缺点,前一篇已经说过了,导致系统可用性降低,等等。所以只要你用了MQ,接下来问的一些要点肯定就是围绕着MQ的那些缺点怎么来解决了。这也是对比选择使用MQ的一些原因。要是你傻乎乎的就干用了一个MQ,各种问题从来没考虑过,那你就杯具了,面试官对你的印象就是,只会简单实用一些...
2018-12-22 10:34:07 823
原创 Postman 安装及使用入门教程
安装本文只是基于 Chrome 浏览器的扩展插件来进行的安装,并非单独应用程序。 首先,你要台电脑,其次,安装有 Chrome 浏览器,那你接着往下看吧。1. 官网安装(别看)打开官网,https://www.getpostman.com点击那个灰灰色的「Chrome App (Free)」按钮。正常情况会跳转到Chrome网上应用店界面,但是,由于,嗯,你懂的!你一般看到的是第...
2018-12-19 17:00:04 341
原创 十次方03——系统设计
后端系统架构:SpringBoot+SpringCloud+SpringMVC+SpringData那么,为什么选用微服务架构进行实现而不是SSM或SSH呢?什么是微服务架构,他的作用又是怎样的呢?以上,这些问题详细解释,可以参考一下文集:<u>https://www.jianshu.com/nb/32298744</u>这里我先简单的说一下。首先,为什么选...
2018-12-19 16:56:23 1792 1
原创 十次方02——项目前期准备
开发环境要求JDK1.8数据库mysql 5.7开发工具 idea 2017.1.2maven版本3.3.9docker 最新版本 启动(systemctl start docker)centos7VMware Workstation Pro 12注:所有的环境都是基于docker的,将centos7镜像挂载到VMware Workstation,修改内存为8G,用户名root...
2018-12-19 16:55:01 1087 2
原创 为什么要使用微服务架构?
微服务架构已经流行了很长时间,但是想要回答为什么要使用微服务架构的问题,首先应该了解一体化架构。什么是一体化架构?一体化架构顾名思义,将应用各层打成一个包来部署。为了让代码正常工作,一体化应用的所有组件缺一不可。以典型的3层传统web应用为例,该应用由用户界面、数据库、服务器端应用组成。这里的服务器端应用被称为monolith(一体化),包含表现、业务层、数据层。所有代码都存在于同一个...
2018-12-19 16:53:30 703
原创 Spring Cloud是什么?
Spring Cloud是一个相对比较新的微服务框架,今年(2016)才推出1.0的release版本. 虽然Spring Cloud时间最短, 但是相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案。Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全居琐,leader选举,分布式ses...
2018-12-19 16:51:28 964
原创 微服务架构(二):融入微服务的企业集成架构
本文将介绍融入微服务的企业集成架构的演进,并描述交互式系统的微服务模式及相关技术决策,然后给出了一个具体的微服务架构业务应用的例子。交互型系统(System of Engagement)与记录型系统(System of Record)随着移动互联网的快速发展,企业除了需要提供传统核心IT系统能力之外,还需提供客户与合作伙伴友好型的以交互为重点的创新及交互式系统。这两类系统的特性与禀赋完全不...
2018-12-19 16:49:04 419
IT软件项目生命周期
2018-04-04
电商项目模块间调用关系
2018-04-04
python核心编程
2018-04-01
ssh注模式解真实案例
2017-03-30
如何根据京东API进行相关业务是开发,API如何使用,还请大神解答。
2016-11-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人