- 博客(30)
- 资源 (1)
- 收藏
- 关注
原创 Spring的bean加载的过程
一、源码跟踪通过getBean(“instanceA”)做为入口分析bean的加载过程:debug模式F5进入,展示如下图从此处做为入口进入,主要是寻找哪一行代码给我们返回的instanceA实例,很明显此处做了实例的返回,展示入下图继续进入跟踪,展示如下图调用重载的方法跟踪到最后这里就涉及到spring容器的三级缓存,展示如下图:这个singletonObjects.get(beanName)的singletonObjects就是我们经常提的容器,展示如下图:这是个Conc
2021-04-24 13:23:49
678
原创 Linux下安装mysql-5.7.24
一、安装前准备1.1 检查是否已经安装过mysql,执行命令[root@localhost /]# rpm -qa | grep mysql从执行结果,可以看出我们已经安装了mysql-libs-5.1.73-5.el6_6.x86_64,执行删除命令再次执行查询命令,查看是否删除[root@localhost /]# rpm -qa | grep mysql1.2 查询所有Mysql对应的文件夹[root@localhost /]# whereis mysqlmysql: /u
2021-03-27 22:02:20
139
1
原创 Redis面试突击五:如何保证Redis的高并发和高可用?redis的主从复制原理能介绍一下么?redis的哨兵原理能介绍一下么?
如何保证Redis的高并发和高可用?redis的主从复制原理能介绍一下么?redis的哨兵原理能介绍一下么?面试题如何保证Redis的高并发和高可用?redis的主从复制原理能介绍一下么?redis的哨兵原理能介绍一下么?面试官心里分析其实问这个问题,主要是考考你,redis单机能承载多高并发?如果单机扛不住如何扩容抗更多的并发?redis会不会挂?既然redis会挂那怎么保证redis是高可用的?其实针对的都是项目中你肯定要考虑的一些问题,如果你没考虑过,那确实你对生产系统中的问题思考太
2021-01-16 09:50:04
195
原创 ES面试突击:ES面试场景复现
面试问题es的分布式架构原理能说一下么(es是如何实现分布式的啊)?es写入数据的工作原理是什么啊?es查询数据的工作原理是什么啊?es在数据量很大的情况下(数十亿级别)如何提高查询性能啊?es生产集群的部署架构是什么?每个索引的数据量大概有多少?每个索引大概有多少个分片?问题解析es的分布式架构原理能说一下么(es是如何实现分布式的啊)?面试官心里分析在搜索这块,lucene是最流行的搜索库。几年前业内一般都问,你了解lucene吗?你知道倒排索引的原理吗?现在早已经out了,因
2020-11-27 07:48:30
360
2
原创 kafka学习七:kafka之集群篇
目录掌握Kafka集群部署了解Kafka集群高层架构掌握Kafka集群多项核心特性Kafka集群部署Kafka天然支持集群Kafka集群依赖于Zookeeper进行协调Kafka主要通过brokerId区分不同节点复制kafka副本[root@localhost install]# mv kafka_2.11-2.4.0 kafka_1/[root@localhost install]# cp -r kafka_1/ kafka_2/[root@localhost install]
2020-11-11 15:00:54
451
原创 数据库分库分表面试突击三:mysql读写分离原理
1、MySQL读写分离的原理?主从同步延时咋解决?1.1 问题为什么要读写分离:你们有没有做MySQL读写分离?如何实现mysql的读写分离?MySQL主从复制原理的是啥?如何解决mysql主从同步的延时问题?这个,高并发这个阶段,那肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是app,其实都是读多写少。所以针对这个情况,就是写一个主库,但是主库挂多个从库,然后从多个从库来读,那不就可以支撑更高的读并发压力了吗?1.2 解决方法(1)如何实现mysql的读写分离
2020-08-15 11:20:25
153
原创 数据库分库分表面试突击二:如何把系统不停机迁移到分库分表的
1、如何设计让系统从未分库分表动态切换到分库分表上1.1、问题你看看,你现在已经明白为啥要分库分表了,你也知道常用的分库分表中间件了,你也设计好你们如何分库分表的方案了(水平拆分、垂直拆分、分表),那问题来了,你接下来该怎么把你那个单库单表的系统给迁移到分库分表上去?假设,你现有有一个单库单表的系统,在线上在跑,假设单表有600万数据3个库,每个库里分了4个表,每个表要放50万的数据量假设你已经选择了一个分库分表的数据库中间件,sharding-jdbc,mycat,都可以你怎么把线上系统平滑地
2020-08-12 15:30:24
383
原创 数据库分库分表面试突击一:分库分表常见问题
1、数据库分库分表常见问题(1)为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的?(2)现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?(3)如何设计可以动态扩容缩容的分库分表方案?(4)分库分表之后,id主键如何处理?1.1、为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?说白了,分库分表是两回事儿
2020-08-12 12:36:43
167
原创 Redis面试突击九:如何保证缓存与数据库的双写一致性?
如何保证缓存与数据库的双写一致性面试题如何保证缓存与数据库的双写一致性?面试官心里分析你只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题?面试题剖析一般来说,就是如果你的系统不是严格要求缓存+数据库必须一致性的话,缓存可以稍微的跟数据库偶尔有不一致的情况,最好不要做这个方案,读请求和写请求串行化,串到一个内存队列里去,这样就可以保证一定不会出现不一致的情况串行化之后,就会导致系统的吞吐量会大幅度的降低,用比正常情况
2020-08-03 16:39:11
154
原创 Redis面试突击八:如何应对缓存雪崩以及穿透问题
如何应对缓存雪崩以及穿透问题面试题了解什么是redis的雪崩和穿透?redis崩溃之后会怎么样?系统该如何应对这种情况?如何处理redis的穿透?面试官心里分析其实这是问到缓存必问的,因为缓存雪崩和穿透,那是缓存最大的两个问题,要么不出现,一旦出现就是致命性的问题。所以面试官一定会问你。面试题剖析缓存雪崩发生的现象缓存雪崩的事前事中事后的解决方案事前:redis高可用,主从+哨兵,redis cluster,避免全盘崩溃事中:本地ehcache缓存 + hystrix限流
2020-08-03 11:07:19
87
原创 Redis面试突击七:redis cluster集群模式的原理
你能聊聊redis cluster集群模式的原理吗?面试题redis集群模式的工作原理能说一下么?在集群模式下,redis的key是如何寻址的?分布式寻址都有哪些算法?了解一致性hash算法吗?面试管心里分析在以前,如果前几年的时候,一般来说,redis如果要搞几个节点,每个节点存储一部分的数据,得借助一些中间件来实现,比如说有codis,或者twemproxy,都有。有一些redis中间件,你读写redis中间件,redis中间件负责将你的数据分布式存储在多台机器上的redis实例中。这
2020-08-03 10:48:33
199
原创 Redis面试突击六:怎么保证redis挂掉之后再重启数据可以进行恢复?
Redis重启后数据如何进行恢复面试题redis的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的?面试官心里分析redis如果仅仅只是将数据缓存在内存里面,如果redis宕机了,再重启,内存里的数据就全部都弄丢了啊。。。。。。你必须得用redis的持久化机制,将数据写入内存的同时,异步的慢慢的将数据写入磁盘文件里,进行持久化如果redis宕机了,重启启动,自动从磁盘上加载之前持久化的一些数据,就可以了,也许会丢失少许数据,但是至少不会将所有数据都弄丢这
2020-08-02 18:34:49
294
原创 Redis面试突击四:Redis过期策略都有哪些?内存淘汰机制都有哪些?
Redis过期策略以及内存淘汰机制面试题redis的过期策略都有哪些?内存淘汰机制都有哪些?手写一下LRU代码实现?面试官心里分析1)老师啊,我往redis里写的数据怎么没了?之前有同学问过我,说我们生产环境的redis怎么经常会丢掉一些数据?写进去了,过一会儿可能就没了。我的天,同学,你问这个问题就说明redis你就没用对啊。redis是缓存,你给当存储了是吧?啥叫缓存?用内存当缓存。内存是无限的吗,内存是很宝贵而且是有限的,磁盘是廉价而且是大量的。可能一台机器就几十个G的内存,但是可
2020-08-01 10:44:20
124
原创 Redis面试突击三:Redis都有哪些数据类型?分别哪些场景下使用比较合适?
Redis数据类型以及使用场景面试题redis都有哪些数据类型?分别在哪些场景下使用比较合适?面试官心里分析除非是我感觉看你简历,就是工作3年以内的比较初级的一个同学,可能对技术没有很深入的研究过,我才会问这类问题,在宝贵的面试时间里,我实在是不想多问其实问这个问题呢。。。主要就俩原因第一,看看你到底有没有全面的了解redis有哪些功能,一般怎么来用,啥场景用什么,就怕你别就会最简单的kv操作第二,看看你在实际项目里都怎么玩儿过redis要是你回答的不好,没说出几种数据类型,也没说什
2020-08-01 09:07:26
109
原创 Redis面试突击一:Redis缓存的常见问题
使用Redis需要思考的一些问题面试题在项目中缓存是如何使用的?缓存如果使用不当会造成什么后果?面试官心里分析这个问题,互联网公司必问,要是一个人连缓存都不太清楚,那确实比较尴尬只要问到缓存,上来第一个问题,肯定能是先问问你项目哪里用了缓存?为啥要用?不用行不行?如 果用了以后可能会有什么不良的后果?这就是看看你对你用缓存这个东西背后,有没有思考,如果你就是傻乎乎的瞎用,没法给面试官一个合理的解答。那我只能说,面试官对你印象肯定不太好,觉得你平时思考太少,就知道干活儿。面试题剖析
2020-07-31 17:31:52
107
原创 Redis学习一:Redis安装以及环境搭建
Redis安装在centOS里通过wget下载redis[root@localhost ~]# yum -y install wget[root@localhost ~]# wget http://download.redis.io/releases/redis-4.0.9.tar.gz[root@localhost ~]# mv redis-4.0.9.tar.gz /opt/software/[root@localhost ~]# cd /opt/software/[root@local
2020-07-31 16:26:23
281
原创 ES学习四:ES之API使用
学习官方文档官方文档:https://www.elastic.co/guide/index.html1.原生依赖<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.6.1</version&
2020-07-26 19:00:34
399
原创 ES学习三:ES核心概念以及使用
ES核心概念安装IK分词器https://github.com/medcl/elasticsearch-analysis-ik解压重启观察ESkibana测试不同分词效果ik_smart_word是极简模式ik_max_word是最细粒度模式发现问题氪金被拆开了,需要自己添加到ik分词器的字典中配置分词器字典重启ES后生效...
2020-07-22 22:10:22
183
原创 ES学习二:ES安装
ElasticSearch安装声明JDK1.8,最低要求!ElasticSearch客户端,界面工具!Java开发,ElasticSearch的版本和我们之后UI应的java的核心jar包!版本对应!JDK环境是正常!下载官网地址: https://www.elastic.co下载地址:https://www.elastic.co/cn/downloads/elasticsearchwindows下安装解压即可使用熟悉目录bin:执行的二进制文件config:配置文件lo
2020-07-21 10:06:38
117
原创 ES学习一:浅谈ES
聊聊ESLucene是一套信息检索工具包!jar包!不包含搜索引擎!包含:索引结构!读写索引的工具!排序,搜索规则…工具类!Lucene和ElasticSearch关系ElasticSearch是基于Lucene做了一些封装和增强ElasticSearch概述谁在使用ElasticSearch对比同类产品ElasticSearch和solr比较ElasticSearch vs solr总结...
2020-07-20 16:04:24
114
原创 消息队列面试突击七:消息队列消息大量积压
面试题如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?面试官心里分析你看这问法,其实本质针对的场景,都是说,可能你的消费端出了问题,不消费了,或者消费的极其极其慢。接着就坑爹了,可能你的消息队列集群的磁盘都快写满了,都没人消费,这个时候怎么办?或者是整个这就积压了几个小时,你这个时候怎么办?或者是你积压的时间太长了,导致比如rabbitmq设置了消息过期时间后就没了怎么办?所以就这事儿,其实线上挺常见的,一般不出,一出就是大case,一般
2020-07-19 21:49:31
129
原创 消息队列面试突击六:消息队列的顺序性
消息队列消息的顺序性面试题如何保证消息的顺序性?面试官心里分析其实这个也是用MQ的时候必问的话题,第一看看你了解不了解顺序这个事儿?第二看看你有没有办法保证消息是有顺序的?这个生产系统中常见的问题。面试题剖析我举个例子,我们以前做过一个mysql binlog同步的系统,压力还是非常大的,日同步数据要达到上亿。mysql -> mysql,常见的一点在于说大数据team,就需要同步一个mysql库过来,对公司的业务系统的数据做各种复杂的操作。你在mysql里增删改一条数据,对
2020-07-19 20:00:58
125
原创 消息队列面试突击五:消息队列的传输可靠性
消息队列消息传递可靠性面试题如何保证消息的可靠性传输(如何处理消息丢失的问题)?面试官心里分析这个是肯定的,用mq有个基本原则,就是数据不能多一条,也不能少一条,不能多,就是刚才说的重复消费和幂等性问题。不能少,就是说这数据别搞丢了。那这个问题你必须得考虑一下。如果说你这个是用mq来传递非常核心的消息,比如说计费,扣费的一些消息,因为我以前设计和研发过一个公司非常核心的广告平台,计费系统,计费系统是很重的一个业务,操作是很耗时的。所以说广告系统整体的架构里面,实际上是将计费做成异步化的,
2020-07-19 17:07:00
100
原创 消息队列面试突击四:消息队列的幂等性、不重复消费
面试场景面试题如何保证消息不被重复消费啊(如何保证消息消费时的幂等性)?面试心里分析其实这个很常见的一个问题,这俩问题基本可以连起来问。既然是消费消息,那肯定要考虑考虑会不会重复消费?能不能避免重复消费?或者重复消费了也别造成系统异常可以吗?这个是MQ领域的基本问题,其实本质上还是问你使用消息队列如何保证幂等性,这个是你架构里要考虑的一个问题。面试官问你,肯定是必问的,这是你要考虑的实际生产上的系统设计问题。面试题剖析回答这个问题,首先你别听到重复消息这个事儿,就一无所知吧,你先大概
2020-07-19 11:07:32
114
原创 消息队列面试突击三:消息队列的高可用
场景如何保证消息队列的高可用啊?面试官心理分析如果有人问到你MQ的知识,高可用是必问的,因为MQ的缺点,我刚才已经说过了,有好多,导致系统可用性降低,等等。所以只要你用了MQ,接下来问的一些要点肯定就是围绕着MQ的那些缺点怎么来解决了。要是你傻乎乎的就干用了一个MQ,各种问题从来没考虑过,那你就杯具了,面试官对你的印象就是,只会简单实用一些技术,没任何思考,马上对你的印象就不太好了。这样的同学招进来要是做个20k薪资以内的普通小弟还凑合。如果招进来做薪资20多k的高工,那就惨了,让你设计个系统,里
2020-07-19 10:17:59
107
原创 kafka学习五:kafka之Consumer API
目录熟练掌握kafka之Consumer客户端了解kafka Consumer客户端配置掌握kafka Consumer高级特性Consumer客户端Consumer之API/*** 自动提交*/public static void consumPractic(){ Properties props = new Properties(); props.setProperty("bootstrap.servers", "192.163.124.3:9092
2020-07-14 22:16:12
254
原创 kafka学习四:kafka之Producer API
目录熟练掌握Kafka之Producer API了解Producer各项重点配置熟练掌握Producer负载均衡等高级特性Producer发送模式同步发送异步发送异步回调发送kafka异步发送/** - producer异步发送演示,一般情况下使用这种发送方式 */ public static void producerSend(){ Properties properties = new Properties(); properties.put(P
2020-07-12 14:52:44
525
原创 kafka学习三:kafka客户端操作
目录掌握构建kafka之Java客户端了解kafka客户端类型及其区别掌握kafka客户端的基本操作Kafka客户端操作如图所示,kafka给我提供了admin、producer、consumer、connectors、stream五种客户端。我们主要学习producer、consumer两种客户端。其中consumer客户端API操作比较复杂。Kafka客户端API类型AdminClient API:允许管理和检测Topic、broker以及其它kafka对象Producer AP
2020-07-11 15:27:11
412
原创 kafka学习二:初识kafka
目录介绍并安装kafka熟悉kafka启停操作熟悉kafka常见控制台操作介绍kafkaA distributed streaming platform(分布式的流平台)1.官方地址:http://kafka.apache.org/2.主要用于大数据处理,对接spark、fink等实时流处理平台。3.kafka是基于zookeeper的分布式消息系统。4.kafka具有高性能、实时、高吞吐率及考可靠等基于流平台的特点,它并不是一个纯粹的消息系统。安装kafka依赖安装包清单
2020-07-10 11:12:40
229
原创 kafka学习一:环境准备
@kafka学习一:环境准备1.学习kafka需要准备的环境备宿主机使用xshell工具连接至宿主机准备域名1.1宿主机要求CentOS7阿里云或者其它云厂本地虚拟机+内网穿透1.1.1云端构建步骤选择云厂并购买ECS服务器域名购买1.按照步骤进行购买,由于域名购买需要创建信息模板进行验证,去管局审核。2.审核成功后再进行备案,填写企业法人的亲笔签名和阿里云蓝底幕布照片(可以向客服要免费邮寄过来),信息填写完成后进行一天人工审核。3.提交至管局20个
2020-07-09 11:38:00
196
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人