前言

我们说 Kafka 是一个消息队列,其实更加确切的说:是 Broker 这个核心部件。为何这么说?你会发现我们可以通过控制台、 Java 代码、 C++ 代码、甚至是 Socket 向 Broker 写入消息,只要我们遵从了 Kafka 写入消息的协议,就可以将消息发送到 Kafka 队列中。

用专业一点的话术来说,Kafka 定义了一个应用层的网络协议,只要我们基于传输层构造出符合这个协议的数据,就是合法的 Kafka 消息。

所以说我们写入 Kafka 消息的只是一个生产者的客户端,他的形式多种多样,有 Java ,Python,C++ 等多种实现,那么我们每次发消息难道还需要自己去实现这套发送消息的协议么?显然 Kafka 官方已经考虑到这个问题了,为了给我们提供 开箱即用 的消息队列,官方已经帮我们写好了各种语言的优质生产者实现,例如我们今天要讨论的 Java 版本的实现。

一面(基础面:大约60分钟)

  1. 自我介绍
  2. 对象相等的判断,equals方法实现。Hashcode的作用,与 equal 有什么区别?
  3. Java中CAS算法?
  4. G1回收器讲一下?
  5. HashMap,ConcurrentHashMap与LinkedHashMap的区别
  6. 如何在多线程环境下使用Map,ConcurrentHashMap原理,ConcurrentHashMap如何加锁。
  7. 多线程并发的同步实现,有两个方法,每个方法里有a部分代码和b部分代码,我要让两个线程分别执行两个方法,并且让他们运行完a部分代码再一起向下执行,如何实现。
  8. TCP连接中的三次握手和四次挥手,四次挥手的最后一个ack的作用是什么,为什么要time wait,为什么是2msl。
  9. aio,nio,bio的了解
  10. ReetrantLock和synchronized的区别。
  11. Java有哪些悲观锁的实现?
  12. Java有哪些类实现了乐观锁?

二面(二面就死抓多线程问)

  1. 线程池有哪些参数?分别有什么用?如果任务数超过的核心线程数,会发生什么?阻塞队列大小是多少?
  2. 数据库连接池介绍下,底层实现说下
  3. hashset底层实现,hashmap的put操作过程
  4. 说说HaspMap底层原理?再说说它跟HaspTable和ConcurrentHashMap他们之间的相同点和不同点?
  5. 说说B+树和B树的区别,优缺点等?
  6. 算法题,对一个链表进行归并排序,链表可能有环
  7. 怎么实现一个线程安全的计数器?
  8. 原子类AtomicInteger实现原理是什么?和你设计的计数器优劣比较?CAS怎么实现原子操作的?
  9. Java中的锁有什么?synchronized与Lock的区别?公平锁和非公平底层怎么实现的?AQS原理详细介绍一下?
  10. 你在项目中一般怎么调优JVM的呢?
  11. 说一下GC吧,什么时候进行Full GC呢?
  12. 你了解哪些收集器?CMS和G1。详细谈谈G1的优点

三面(Redis和mysql也要掌握,面试也是必问**)**

  1. 了解哪些排序算法,讲讲复杂度
  2. 手撕归并排序
  3. Redis有哪些数据结构?底层的编码有哪些?有序链表采用了哪些不同的编码?
  4. redis的hash数据结构最多能存储多少个元素
  5. 自己如何实现RPC?
  6. mysql默认存储引擎?MyISAM、InnoDB、MEMORY的区别
  7. 什么是幻读,如何解决
  8. 事务隔离级别有什么?通过什么来实现的?分别解决了什么问题?
  9. 乐观锁与悲观锁的使用场景

四面(这里问的技术问题就较多了 分布式架构 dubbo spring cloudKafka 数据库)

  1. 介绍对你技术能力帮助最大的项目,重点讲架构设计思路
  2. 分布式全局唯一ID怎样来实现?
  3. dubbo的生产者如何发布服务,注册服务,消费者如何调用服务?
  4. dubbo负载均衡的策略有哪些?一致性哈希详细聊一下?
  5. 分布式session如何实现的
  6. 微服务你的理解?以及常用的微服务方案dubbo、spring cloud的比较?
  7. Kafka怎么保证数据可靠性?
  8. 数据库主从同步数据一致性如何解决?技术方案的优劣势比较?
  9. 分布式锁的实现方式你知道有哪些?主流的解决方案是什么?
  10. Spring两大特性?AOP和IOC
  11. Spring的初始化过程?Spring bean的生命周期?
  12. 多个RPC请求进来,服务器怎么处理并发呢?

HR面(见招拆招)

常规问题为主

遇到什么挫折

这种问题主要考察面试者遇见困难是否能坚持下去,并且可以看出他的解决问题的能力。

可以简单描述挫折,并说明自己如何克服,最终有哪些收获。

职业规划

表明自己决心,首先自己不准备继续求学了,必须招工作了。然后说下自己不会短期内换行业,或者换工作,自己比较喜欢,希望可以坚持几年看自己的兴趣再规划之类的。

对阿里的认识

这个比较简答,夸就行了。

有什么崇拜的人吗

我说了詹姆斯哈登,hr小姐姐居然笑了。这个可以说一些IT大牛。

希望去哪里就业

这个问题果断回答该公司所在的城市啊。

其他问题

有什么兴趣爱好,能拿得上台表演的有吗 记忆深刻的事情

惊喜

最后还准备了一套上面资料对应的面试题(有答案哦)和面试时的高频面试算法题(如果面试准备时间不够,那么集中把这些算法题做完即可,命中率高达85%+)

法题做完即可,命中率高达85%+)

[外链图片转存中…(img-tRGn8KYq-1619275336337)]

[外链图片转存中…(img-WWlFEP9Y-1619275336340)]

资料获取方式:戳这里免费领取

简直无敌!反向代理、负载均衡实战,架构师必备!相关推荐

  1. Nginx反向代理 负载均衡sky

    Nginx服务部署 Nginx简介 Nginx (engine x) 是一个轻量级的.高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗 ...

  2. Nginx反向代理负载均衡虚拟主机动静分离UrlRewrite防盗链

    文章目录 1. Nginx简介 1.1 Nginx背景 1.2 Nginx的优点 1.3 Nginx的功能特性及常用功能 2.Nginx安装 2.1 下载上传解压 1.2 安装 3.nginx核心概念 ...

  3. Nginx 反向代理 负载均衡 虚拟主机

    Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...

  4. nginx 反向代理负载均衡 tomcat集群应用

    nginx 反向代理负载均衡 tomcat集群应用 环境介绍: 系统:centos5.8_64 192.168.0.201:nginx服务器 192.168.0.202:tomcat服务器 192.1 ...

  5. Nginx特性验证-反向代理/负载均衡/页面缓存/URL重定向

    原文发表于cu:2016-08-25 参考文档: Nginx 反向代理.负载均衡.页面缓存.URL重写等:http://freeloda.blog.51cto.com/2033581/1288553 ...

  6. 编译安装nginx并实现反向代理负载均衡和缓存功能

    一.编译安装nginx 1.下载 [root@ns1 ~]# wget http://nginx.org/download/nginx-1.10.0.tar.gz 2.解压 [root@ns1 ~]# ...

  7. Nginx总结(安装,使用,正向代理,反向代理,负载均衡)

    目录 Nginx介绍与安装 一.Nginx简介 1.什么是ngnix 2.nginx应用场景 二.Nginx安装与启动 Nginx静态网站部署 一.静态⽹站的部署 二.配置虚拟主机 1.端⼝绑定 2. ...

  8. 程序架构探讨—005 应用服务器集群的伸缩性之反向代理负载均衡

    利用反向代理也可以做负载均衡.如下图所示, 反向代理服务器处于WEB服务器的前面,既可以提供反向代理,也可以管理一组web服务器,将请求根据负载均衡算法转发到不同的web服务器上.web服务器处理完成 ...

  9. Nginx网络架构下的反向代理负载均衡upstream配置

    用例 第一步需要给Nginx配置上游服务器,即负载均衡到的真实处理业务服务器,通过在http指令下配置upstream upstream{server 102.168.61.1:9080 weight ...

  10. Nginx 反向代理+负载均衡

    一.Nginx 的引入背景 ● 公司产品出现瓶颈? 我们公司项目刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户. 用户少, ...

最新文章

  1. 嵌套SQL语句訪问DB2中SQLCA的调用技巧
  2. ie9怎么开兼容模式
  3. 最优化理论与方法(part11)--约束优化问题
  4. java里面的文件上传与下载
  5. 手游建筑美术资源_建筑商和机械手
  6. 果断Mark!Searchcode——源代码搜索利器
  7. 第六篇:如何学习C语言?
  8. 使用Apriori算法和FP-growth算法进行关联分析
  9. slam特征点深度 svd_【干货】视觉SLAM面试题汇总(第二部分)
  10. OFFICE技术讲座:T2B-NE/L2R-WN部分中文标点需要旋转
  11. 世界上最简单的会计书(先进先出法VS后进先出法)
  12. python中输入多个值用什么符号隔开_字典中多个元素之间使用
  13. 安卓手机Recovery概述和原理分析
  14. 什么是3D摄影机,与普通摄影机有什么不同?
  15. js下载文件的几种方式
  16. 图解2022年城市人口迁移趋势
  17. 【Linux网络服务】Centos7搭建yum服务器
  18. HTML文本、段落标记
  19. 【对抗攻击论文笔记】对抗迁移性:Delving Into Transferable Adversarial Examples And Black-Box Attacks
  20. 51单片机指令快速记忆方法总结

热门文章

  1. Google Android 原生Rom 下载地址及刷机教程--Factory Images for Nexus and Pixel Devices
  2. 修复Android手机屏幕的5种简单方法是黑色的
  3. 《操作系统——精髓与设计原理(第八版)》复习题抄录
  4. 制作映射表并替换字符串中的内容
  5. rstudio找不到r低版本_R学习笔记-安装R和RStudio,注意RStudio的版本需要与操作系统版本匹配...
  6. 人工智能学习(八斗学院)
  7. sudo,,sudo-i ,,su的区别
  8. [HNOI2003] 消防局的设立
  9. 如何利用Qt 3D 渲染与 Qt Quick 2D 元素结合创建太阳系行星元素?
  10. 编译器(Compiler)