为了账号安全,请及时绑定邮箱和手机立即绑定

面试官:浏览器请求 www.baidu.com 时,背后都干了些啥? 原创

1、面试题用浏览器请求一个链接的时候,经历了哪些过程(DNS解析过程)?2、面试官心里分析这个问题,其实就是跟之前的那个一样,他就是考察考察你的基本功,看你对基本的网络通信知识有没有了解。而且话说回来,考察一个人的基本功,就这个问题应该是相当经典和直接的一个问题,你理解清楚了,那么网络通信这块的一些基本概念,你基本都了解了。3、面试题剖析如果你阅读过昨天发布文章,就应该知道网络七层模型大概都是怎么回事了,然后四层模型其实就是会话层、表示层和应用层,合并为了一个应用层,同时没把物理层算在内并且我们也大概知道每一层的协议和作用,网络通信的时候都是怎么回事了,现在我们来看看假设通过浏览器发送一个请求,你访问到那个网站对应的机器,然后...

2194浏览
2推荐
0评论

面试官:RocketMQ 如何基于mmap+page cache实现磁盘文件的高性能读写? 原创

1、mmap:Broker读写磁盘文件的核心技术今天我们要给大家介绍一个非常关键的黑科技,很多人可能都不太熟悉,这个技术就是mmap技术,而Broker中就是大量的使用mmap技术去实现CommitLog这种大磁盘文件的高性能读写优化的。通过之前的学习,我们知道了一点,就是Broker对磁盘文件的写入主要是借助直接写入os cache来实现性能优化的,因为直接写入os...

5572浏览
3推荐
0评论

30K以内Java必问:一个关于MySQL索引的面试6连炮! 原创

1、面试真题MySQ索引的原理和数据结构能介绍一下吗?b+树和b-树有什么区别?MySQL聚簇索引和非聚簇索引的区别是什么?他们分别是如何存储的?使用MySQL索引都有哪些原则?MySQL复合索引如何使用?2、面试官心理分析数据库是30k以内的工程师面试必问的问题,而且如果问数据库,一定是问mysql,N年前可能java工程师出去面试,oracle这块的技能是杀手锏,现在已经没人说,会oracle是加分项了,现在都是熟悉大数据hadoop、hbase等技术是加分项。3、面试题剖析 3.1...

6184浏览
0推荐
1评论

面试官:你能说说事务的几个特性是啥?有哪几种隔离级别? 原创

1、面试题事务的几个特点是什么?数据库事务有哪些隔离级别?MySQL的默认隔离级别?2、面试官心里分析用mysql开发的三个基本面:存储引擎、索引,然后就是事务,你必须得用事务。因为一个业务系统里,肯定要加事务保证一堆关联操作,要么一起成功要么一起失败,对不对?所以这是聊数据库必问的一个问题最最最基本的用mysql来开发,就3点:存储引擎(了解),索引(能建索引,写的SQL都用上索引),事务(了解事务的隔离级别,基于spring的事务支持在代码里加事务)存储引擎 ->...

2635浏览
2推荐
0评论

深入探究 RocketMQ 事务机制的实现流程,为什么它能做到发送消息零丢失? 原创

1、解决消息丢失的第一个问题:订单系统推送消息领丢失既然我们已经明确了消息在基于MQ传输的过程中可能丢失的几个地方,那么我们接着就得一步一步考虑如何去解决各个环节丢失消息的问题,首先要解决的第一个问题,就是订单系统推送消息到MQ的过程中,可能消息就丢失了。之前我们也说过了,可能在订单系统推送消息到MQ的过程中,就因为常见的网络故障之类的问题,导致消息就丢失了,这里我们可以看一下下图中的示意。                      ...

1625浏览
1推荐
0评论

哥们,你们的系统架构中为什么要引入消息中间件? 原创

这篇文章开始,我们把消息中间件这块高频的面试题给大家说一下,也会涵盖一些MQ中间件常见的技术问题。假如面试官看你简历里写了MQ中间件的使用经验,很可能会有如下问题:你们公司生产环境用的是什么消息中间件?为什么要在系统里引入消息中间件?引入消息中间件之后会有什么好处以及坏处?好,我们一个个的来分析!一你们公司生产环境用的是什么消息中间件?这个首先你可以说下你们公司选用的是什么消息中间件,比如用的是RabbitMQ,然后可以初步给一些你对不同MQ中间件技术的选型分析。举个例子:比如说ActiveMQ是老牌的消息中间件,国内很多公司过去运用的还是非常广泛的,功能很强大。但是问题在于没法确认ActiveMQ可以支撑互联网公司的高并发、...

1681浏览
3推荐
0评论

哥们,那你说说系统架构引入消息中间件有什么缺点? 原创

前情回顾给大家讲了讲消息中间件引入系统架构的作用,主要是解决哪些问题的。其比较常见的实践场景是:复杂系统的解耦复杂链路的异步调用瞬时高峰的削峰处理二正式开始这篇文章给大家讲讲,如果你在系统架构里引入了消息中间件之后,会有哪些缺点?1系统可用性降低首先是你的系统整体可用性绝对会降低,给你举个例子,我们就拿之前的一幅图来说明。比如说一个核心链路里面,系统A -> 系统B ->...

810浏览
0推荐
0评论

案例实战:每秒10万并发的BI系统是如何频繁发生Young GC的? 原创

1、前文回顾本周我们的一个重点就是给大家再次强调JVM频繁GC对系统性能的危害性。因此在分析完JVM发生GC的场景以及原理,以及梳理清楚各种GC名词的概念和触发时机之后,我们就可以来用两个之前我们线上系统真实的案例来给大家再次在脑海中强化一下频繁GC带来的性能问题。2、服务于百万级商家的BI系统是什么?先给大家说一下我们线上一个真实的生产系统,是一个服务于百万级商家的BI系统。这个所谓BI系统,很多开发业务系统的同学可能没接触过,所以简单介绍一下他的背景。简单来说,比如你是一个平台,然后有数十万甚至上百万的商家在你的平台上做生意,会使用你的这个平台系统此时一定会产生大量的数据,基于这些数据我们需要为商家提供一些数据报表比如:每...

1441浏览
0推荐
0评论

30道“热乎乎”的 JVM 典型题目剖析! 原创

写在前面下面,我整理了第一周所有同学问题中最典型的30个问题,并给出了解答,大家可以仔细看看,认真思考,看是不是你也对这些问题曾经有过疑惑?问题一问题方法走完,引用消失,堆内存还未必消失。好多人在做报表导出的时候,就会在for循环里不断的创建对象,很容易造成堆溢出,请问这种大文件导出怎么破?解答  建议不要在for里创建对象,可以在外面搞一个对象,for循环里对一个对象修改数据即可问题二问题1.Java支持多线程,每个线程有自己的Java虚拟机栈和本地方法栈,是这样吗? 2.新建的实例在堆内存,实例变量也是在堆内存?...

1988浏览
0推荐
0评论

如何设计一个短小精悍、可拓展的RPC框架? 原创

简介如果大家对RPC有一些了解的话,或多或者都会听到过一些大名鼎鼎的RPC框架,比如Dobbo、gRPC。但是大部分人对于他们底层的实现原理其实不甚了解。有一种比较好的学习方式:就是如果你想要了解一个框架的原理,你可以尝试去写一个简易版的框架出来,就比如如果你想理解Spring...

2118浏览
1推荐
0评论

面试官:画一下你项目的核心链路图?遇到过某个关键步骤失败的情况吗? 原创

一、写在前面下面列出了我对大家第一周提出的问题的答疑。除答疑之外,咱们专栏特有的授人以渔环节,引导各位将文章中的内容和自己公司的项目深度结合,不少同学也按照要求做了,并且做的非常好,在此一并呈现给大家。二、答疑汇总 &...

1629浏览
0推荐
0评论

【真实案例分享】面对BAT大厂的竞争对手时,小公司Java工程师是如何败北的? 原创

“ 这篇文章,聊一个很多人感兴趣的话题,小公司的Java工程师和大厂Java工程师一起出去求职同一个职位时,前者的竞争力到底差在哪里呢?搞明白这个事情,相信很多中小公司的同学可以对自己当前的情况以及跟大厂之间的差距有更加清晰的认识。从而可以更好的规划自己的职业发展路线,更好的去努力争取一步一步的缩小差距。(1)从一个求职案例引入以下是一个非常真实的案例,是一个大厂工程师和一个小公司工程师同时求职一个独角兽公司的职位的经历。其中一个同学,211/985本科学历,出身互联网大厂,四五年经验的样子。技术积累非常扎实,而且参与开发的系统支撑过上亿用户量,有真正的高并发经验。虽然说那个系统不是他主导设计的,他仅仅是一个资深工程...

3780浏览
14推荐
8评论

【金三银四跳槽季】Java工程师如何在1个月内做好面试准备? 原创

写在前面即将迎来的是一年一度的金三银四跳槽季。假如你准备在金三银四跳槽的话,那么作为一个Java工程师,应该如何利用1个月的时间,快速的为即将到来的面试进行充分的准备呢?总结起来,面试官考察候选人的时候主要是从技术广度、技术深度、基础功底、系统设计、项目经验几个角度来进行的。那么本文咱们就针对每一块内容,具体的来说一下考察的一些点。更重要的,是针对考察的这些点,如何来快速的进行准备。技术广度技术广度,顾名思义,你作为一个合格的工程师在开发一个系统,完成一些具体的技术任务的时候,必然是要使用到很多的技术的,而且针对这些技术还需要掌握一些非常常见,各种不同的系统可能都会涉及到的一些技术架构/技术方案。举个例子,一个互联网公司的比较...

1638浏览
0推荐
0评论

一个日均百万交易订单系统的整体架构、业务流程及负载情况? 原创

1、专栏主人公介绍小猛:应届毕业Java工程师,刚刚通过校招进入一家互联网公司工作,一个职场新人,对很多技术都不是太熟悉,还需要有资深的工程师带着,讲解系统业务和架构,同时安排和布置任务给他明哥:10年工作经验的Java架构师,常年在国内各个一线互联网公司工作,有丰富的互联网公司的核心系统的设计、开发与运维经验,目前独立带领一个团队负责公司的订单系统,小猛就是他团队中的校招应届生,由他亲自带。说明:这个专栏会从较为真实的职场环境出发,以两个主人公在工作中的一些对话作为核心的主体内容,带着大家去熟悉一个电商订单系统的架构以及各种技术痛点。然后会由主人公之一的明哥带着职场新人小猛去熟悉消息中间件技术,为他布置各种任务去完成系统中的...

1230浏览
0推荐
0评论

三年努力,梦归阿里! 原创

写在前面去阿里是我一直以来的梦想,今朝得到实现,这一路来要感谢太多人,也感谢这三年来一直努力的自己,这里记录一些心得,希望能够帮助到大家。一、初出茅庐,初临帝都2015年10月8日,一个人拖着行李踏上了去北京找实习的路,因为基础太差,屡战屡败。最后好不容易入职了一家算上我共2人的外包公司,做了两个月,觉得太没发展,毅然离职回校;二、闭关深造,再临帝都从北京回来深受打击,认识到自己是多么的差,如果在这么下去毕业就是失业,下定决心闭关学习,不成功不出关。先去淘宝上花了9.9买了一套视频,每天除了下午去健身一个小时,其他时间都在啃视频,花了2个多月做出了一个博客网站,并成功发布到网上,当时喜悦的心情现在都铭刻在心之后就是开始每天把学...

1172浏览
2推荐
0评论

【双11狂欢的背后】微服务注册中心如何承载大型系统的千万级访问? 原创

目录:一、问题起源二、Eureka Server设计精妙的注册表存储结构三、Eureka Server端优秀的多级缓存机制四、总结一、问题起源Spring Cloud架构体系中,Eureka是一个至关重要的组件,它扮演着微服务注册中心的角色,所有的服务注册与服务发现,都是依赖Eureka的。不少初学Spring Cloud的朋友在落地公司生产环境部署时,经常会问:Eureka Server到底要部署几台机器?我们的系统那么多服务,到底会对Eureka Server产生多大的访问压力?Eureka...

1042浏览
1推荐
0评论

拜托!面试请不要再问我Spring Cloud底层原理 原创

目录一、业务场景介绍二、Spring Cloud核心组件:Eureka三、Spring Cloud核心组件:Feign四、Spring Cloud核心组件:Ribbon五、Spring Cloud核心组件:Hystrix六、Spring Cloud核心组件:Zuul七、总结概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈Spring Cloud微服务架构的底层原理。实际上,Spring...

1160浏览
2推荐
0评论

什么是读写锁?微服务注册中心是如何进行读写锁优化的? 原创

一、读写锁的介绍本文我们来聊一下读写锁。所谓的读写锁,就是将一个锁拆分为读锁和写锁两个锁,然后加锁的时候,可以加写锁,也可以加读锁。如下面代码所示:如果有一个线程加了写锁,那么其他线程就不能加写锁了,同一时间只能允许一个线程加写锁。因为加了写锁就意味着有人要写一个共享数据,那同时就不能让其他人来写这个数据了。如果有线程加了写锁,其他线程就不能加读锁了,因为既然都有人在写数据了,你其他人当然不能来读数据了!如果有一个线程加了读锁,别的线程是可以同时加读锁的,因为只是有线程在读数据而已,此时别的线程也是可以来读数据的!同理,如果一个线程加了读锁,此时其他线程是不可以加写锁的,因为既然有人在读数据,那就不能让你随意来写数据了!好了!...

2016浏览
0推荐
0评论

211 渣硕菜鸟的秋招之路! 原创

本人方向Java后台开发,经过了秋招初期的0offer后,屡败屡战越挫越勇之后终获offer,结果还算是差强人意。从10月陆续得到的offer有瓜子二手车、小米、京东、度小满、新浪微博、58同城,就面试通过率来说我还是比较满意的(哈哈哈,安慰自己一波)!顺利上岸之后,希望回馈大家给予的帮助,所以在这里整理一份面经分享自己的秋招经历。我的备战期主要在8、9两个月里,期间没有做特别系统的复习,仅仅针对之前的知识的重复学习加深理解。不论是知识点也好算法题也好,真的特别容易忘,有些东西看过一遍还真就是相当于没看过,因此我后期更求质量(深度)不求数量(广度)。这里关于秋招的笔试我没有太好的方法,就是多刷刷题LeetCode各种常见题型(...

1630浏览
1推荐
0评论

老司机生产实践经验:线上系统的JVM内存是越大越好吗? 原创

“ 这篇文章,给大家聊一个生产环境的实践经验:线上系统部署的时候,JVM堆内存大小是越大越好吗?先说明白一个前提,本文主要讨论的是Kafka和Elasticsearch两种分布式系统的线上部署情况,不是普通的Java应用系统。1、是否依赖Java系统自身内存处理数据?先说明一点,不管是我们自己开发的Java应用系统,还是一些中间件系统,在实现的时候都需要选择是否基于自己Java进程的内存来处理数据。大家应该都知道,Java、Scala等编程语言底层依赖的都是JVM,那么只要是使用JVM,就可以考虑在JVM进程的内存中来放置大量的数据。还是给大家举个例子,大家应该还记得之前聊过消息中间件系统。比如说系统A可以给系统B发...

1907浏览
1推荐
0评论
首页上一页1234567下一页尾页
意见反馈 帮助中心 APP下载
官方微信