ZooKeeper

Java面试必备的12个技术点解析:Spring全家桶+微服务+Redis+Netty+Kafka等,你掌握了多少?

和自甴很熟 提交于 2020-11-12 11:47:45
跳槽一直是个敏感话题 ,但在如今几乎没有稳定工作的时代,跳槽对很多人来说是再平常不过的事了,而互联网人也是跳槽蛮频繁的一个群体,有人说, 程序员涨薪晋升全靠跳槽,这也不尽然,在一家好企业沉淀几年也许是更好的选择。 然而面对今年的大环境而言,跳槽成功的难度比往年高了很多,很明显的感受就是:对于今年的java开发朋友跳槽面试,无论一面还是二面,都开始考验一个Java程序员的技术功底和基础。就连对应届生来说,面试也没有往年那么宽容了,总归来说,跳槽真的越来越难。 但是,对每一个程序员来说,心中 都有一座大厂梦,这个大厂梦需要坚持和努力,才能实现。所以,程序员如果想要面试拿到心仪的offer,补充好自己的知识库是很有必要的。 以下展示面试资料,有需要获取面试体系文档的朋友 Java 面试题基础篇 Spring 面试专题及答案 SpringBoot 面试专题及答案 SpringMVC 面试专题及答案 SpringCloud 面试专题及答案 微服务面试专题及答案 多线程面试专题及答案 开源框架面试专题及答案 Redis 面试专题及答案 Netty 相关面试专题及答案 ZooKeeper面试专题及答案 以上是部分的专题及答案截图,除了以上专题以外,还有部分专题的内容未展示,包括数据库、设计模式、并发编程、Tomcat、SQL、RabbitMQ、Nginx、MySQL、Linux、Dubbo等。

身为一个合格的Java架构师,应该了解并且常用的Java技术有哪些?

时光怂恿深爱的人放手 提交于 2020-11-11 10:19:46
目录 前言 来自小编的建议 JAVA 该学习的哪些技术? 初中级 Java 程序员必须掌握的知识 Java 程序员必备书单 基础 并发 JVM 推荐的视频教程 前言 我听说编程语言,经常使用的是其中20%的技术。在Java这门语言中,这20%包括哪些内容?参加培训两个月了,还有两个月的时间,要想在两个月后,找到一份Java初级程序员的工作,有哪些是必须掌握的,有哪些是可以现学现卖的?一个完整的Javaweb项目,有哪些具体模块,每个模块用到的技术是哪些? 来自小编的建议 建议不要管那个常不常用的这些问题!技术一直在不断更新,学习是永不止境的,每个技术阶段虽然都有对应的常用技术需要学习,但是单单学习几个单个的技术是远远不够的。如果你想找工作就要老老实实的学, 操作系统、计算机网络这些基础知识,工作之后基本都忘的差不多了。但是,我个人觉得也还是要学的。很多人都说数据结构和算法就像一个程序员的内功,前期可能你看不出来,等到后面你再和那些算法和数据结构厉害的人比可能就会相形见绌。所以,我觉得除了应付找工作之外。搞好基础知识。如果非要学那些常用,我个人觉得:Spring、Hibernate、Mybatis 等框架、Dubbo、Zookeeper、常见的消息队列(比如Kafka、RocketMq)的使用、缓存Redis、MySQL等等这些东西都应该是每个Java初中级程序员必备的技能了吧!

京东大佬,传统三年,2个月终拿到0ffer 中间经历了什么?

此生再无相见时 提交于 2020-11-10 13:20:52
点赞关注,不会迷路! 前言 今天为大家分享一位来自京东大佬的面试历程,从传统企业工作三年,历时2个月的时间,终于跳槽到了京东,拿到大厂offer的故事。 学习笔记放文章末尾 ! 京东一面 1.线程池用过哪些,线程池有哪些参数,然后问我几个常用线程池的用法和实际场景问 题。 2.集合框架的知识,hashmap,ArrayList,LinkedList源码相关知识,基本整个介绍了 一遍,与hastable,concurrenthashmap相互的关联和区别 3.说几个垃圾回收器,cms回收器有哪几个过程,停顿几次,会不会产生内存碎片。老 年代产生内存碎片会有什么问题。 4.讲讲快速排序,分析一下时间复杂度? 5.双亲委派模型介绍一下 6.java中同步、volatile关键字 7.jvm内存分区,为什么要有新生代和老年代 8.有做个VM内存优化吗? 9.数据库索引主键和唯一索引有什么区别 10.聚集索引和非聚集索引的区别? 11.MySQL存储引擎innoDB和MylSAM的区别? 12. innoDB的B+树索引叶子节点的Data域存储的是什么?MylSAM的B+树索引叶子节 点的Data域存储的是主键还是物理地址? 京东二面 1.MySQL innodb的b+树索引,主键索引,聚簇索引有什么区别。 2.数据库四大特性 3.事务的四大隔离级别 4.jvm场景问题

【秋招总结】渣本Java应届生如愿以偿拿到阿里跟腾讯offer(双offer面经)

蓝咒 提交于 2020-11-10 11:55:14
前言 今年9月10月份,每天苦逼的刷着群里更新的面试题,逛着群文件里面的大厂面试,每天的心情就像一个一首歌,“山路十八弯”。 点击此处免费进群,暗号:CSDN 看过别人发的腾讯大厦,幻想过腾讯大厦向外看的感觉。 大一暑假去过阿里杭州园区,担忧自己有没有机会再去。 真的没想到迷茫中的自己等来了腾讯,又迎来了阿里。 终有一天,梦想实现,想起阿里园区中的一句话, “谢谢那个曾经努力的自己” 。 面试情况 腾讯(WXG微信支付) 投的是CSIG云产业群,意外的被WXG微信组捞起,感谢机缘巧合吧。 腾讯简历面(编程 + 33分35秒) 记事本里手写OOP实现一个签到的程序。 从一堆数字中O(n)找不重复的数字。 字符串处理,魔改KMP。 数学智力题,64匹马取前8,问最快要几次。11次。 简历面,问项目做了什么,主要的技术栈。 腾讯一面(41分38秒) 深入问了我项目。 线程池,连接池,各自优点。 Java常见设计模式。 讲讲builder建造者模式。这个答的不太好。 TCP/UDP区别,什么时候该用什么。 UDP实现TCP。 设计一个APP,TCP/UDP具体运用。 数据库索引,数据库引擎。 学习方向,我说C++/Java/Python比较均衡。 科技创新立项都做了什么。 没给我机会问问题,大概还是我太菜了。 腾讯二面(视频面试,75分钟,主要是写代码) ACM复杂规则模拟

来自蚂蚁金服内部JAVA面试宝典意外流出!【收藏了】

ぃ、小莉子 提交于 2020-11-10 11:54:56
目录 前言 MyBatis系列面试宝典 1.MyBatis是什么? 2.Mybatis优缺点: 3.MyBatis和Hibernate的适用场景? 4.MyBatis的功能架构是怎样的 5.Mybatis如何执行批量操作 JVM系列面试宝典 1.详解JVM内存模型 2.说说内存屏障 3.happen-before原则 4.怎么打破双亲委派模型? 5.强引用、软引用、弱引用、虚引用的区别? Zookeeper系列面试宝典 1.Zookeeper 的 java 客户端都有哪些? 2.说几个 zookeeper 常用的命令。 3.Zookeeper 的典型应用场景 4.负载均衡 5.集群支持动态添加机器吗? 6.Zookeeper 下 Server 工作状态 前言 来自蚂蚁金服内部面试宝典意外流出! 面试宝典内容(JVM+Mybatis+Zookeeper),附答案+解析 MyBatis系列面试宝典 1.MyBatis是什么? Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。 MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录

java.io.IOException: Connection reset by peer

无人久伴 提交于 2020-11-10 01:45:56
一.场景: spark通过phoenix 读取hbase表,其实说白了先要去Zookeeper建立connection。 二.代码: 点击(此处)折叠或打开 val zkUrl = "192.168.100.39,192.168.100.40,192.168.100.41:2181" val formatStr = "org.apache.phoenix.spark" val oms_orderinfoDF = spark.read.format(formatStr) .options(Map("table" -> "oms_orderinfo", "zkUrl" -> zkUrl)) .load 三.查看SparkJob日志: 点击(此处)折叠或打开 17/10/24 03:25:25 INFO zookeeper.ClientCnxn: Opening socket connection to server hadoop40/192.168.100.40:2181. Will not attempt to authenticate using SASL (unknown error) 17/10/24 03:25:25 INFO zookeeper.ClientCnxn: Socket connection established, initiating session,

什么是分布式系统,如何学习分布式系统

陌路散爱 提交于 2020-11-10 01:02:29
目录 什么是分布式系统 分布式系统挑战 分布式系统特性与衡量标准 组件、理论、协议 用一个请求串起来 一个简化的架构图 概念与实现 总结 references 正文   虽然本人在前面也写过好几篇分布式系统相关的文章,主要包括 CAP理论 、 分布式存储 与 分布式事务 ,但对于分布式系统,并没有一个跟清晰的概念。分布式系统涉及到很多的技术、理论与协议,很多人也说,分布式系统是“入门容易,深入难”,我之前的学习也只算是管中窥豹,只见得其中一斑。因此,一致希望能对分布式系统有一个更全面的认识,至少能够把分布式系统中的各个技术、理论串起来,了解他们在分布式系统分别解决什么问题,有哪些优秀的实现。   我曾在网络上搜索过”如何学习分布式系统“,也在知乎上关注了该话题,但并没有看到一个全面的、有指导意义的答案。本文的目标是给打算全面学习分布式系统的自己、以及感兴趣的读者指明一条可行的路径,使得之后的学习不再盲目。   不过,我并没有越过这座山,我只是站在山前,从前人留下的痕迹揣测山的全貌与沟壑,臆想的成分居多,还望各位大师指点迷津。   2018 03 14更新:对于如何学习分布式系统,经过思考,我觉得有更好的方法,请参见《 分布式学习最佳实践:从分布式系统的特征开始(附思维导图) 》   本文地址: http://www.cnblogs.com/xybaby/p/7787034.html

Redis Cluster搭建高可用Redis服务器集群

混江龙づ霸主 提交于 2020-11-09 20:30:43
一、Redis Cluster集群简介 Redis Cluster是Redis官方提供的分布式解决方案,在3.0版本后推出的,有效地解决了Redis分布式的需求,当一个节点挂了可以快速的切换到另一个节点,当遇到单机内存、并发等瓶颈时,可以采用分布式方案要解决问题。 二、集群原理 Redis Cluster架构图 Redis Cluster集群采用了P2P的模式,完全去中心化,Redis把所有的Key分成了16384个slot,每个Redis实例负责其中一部分slot,集群中的所有信息(节点、端口、slot等),都通过节点之间定期的数据交换而更新,Redis客户端可以在任意一个Redis实例发出请求,如果所需数据不在该实例中,通过重定向命令引导客户端访问所需的实例。 其结构特点: 所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。 节点的fail是通过集群中超过半数的节点检测失效时才生效。 客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。 redis-cluster把所有的物理节点映射到[0-16383]slot上(不一定是平均分配),cluster负责维护node<->slot<->value。 Redis集群预分好16384个桶,当需要在Redis集群中放置一个key

【分布式】分布式锁都有哪些实现方案?

核能气质少年 提交于 2020-11-09 12:50:59
一、业务场景 同一个jvm里多个线程操作同一个有状态的变量,可以通过JVM内的锁保证线程安全。 如果是多个JVM操作同一个有状态的变量,如何保证线程安全呢? 这时候就需要分布式锁来发挥它的作用了 二、特点 分布式系统往往业务流量比较大、并发较高,对分布式锁的高可用和高性能有较高的要求。一般分布式锁的方案需要满足如下要求: 有高可用的获取锁和释放锁功能 获取锁和释放锁的性能要好 这把锁要是一把可重入锁(避免死锁) 这把锁最好是一把阻塞锁(根据业务需求考虑要不要这条) 这把锁最好是一把公平锁(根据业务需求考虑要不要这条) 三、基于数据库的分布式锁方案 1、基于表主键唯一做分布式锁 利用主键唯一的特性,如果有多个请求同时提交到数据库的话,数据库会保证只有一个插入操作可以成功,那么我们就可以认为操作成功的那个线程获得了该方法的锁,当方法执行完毕之后,想要释放锁的话,删除这条数据库记录即可 1.1、缺点 数据库单点 没有锁超时机制 不可重入 非公平锁 非阻塞锁 1.2、优化点 数据库主从备份,解决单点问题。因为主从同步有延迟,可能导致数据不一致 定时任务检测锁超时自动释放或者通过 connection.commit() 操作来释放锁 加锁加上机器和线程信息,加锁之前先查询,支持可重入 中间表,记录加锁失败的机器线程,按照创建时间排序 自旋实现阻塞效果 1.3、原理

Kafka集群搭建及必知必会

时间秒杀一切 提交于 2020-11-09 12:47:15
Kafka集群部署并启动 在本文中将从演示如何搭建一个Kafka集群开始,然后简要介绍一下关于Kafka集群的一些基础知识点。但本文仅针对集群做介绍,对于Kafka的基本概念不做过多说明,这里假设读者拥有一定的Kafka基础知识。 首先,我们需要了解Kafka集群的一些机制: Kafka是天然支持集群的,哪怕是一个节点实际上也是集群模式 Kafka集群依赖于Zookeeper进行协调,并且在早期的Kafka版本中很多数据都是存放在Zookeeper的 Kafka节点只要注册到同一个Zookeeper上就代表它们是同一个集群的 Kafka通过brokerId来区分集群中的不同节点 Kafka的集群拓扑图如下: Kafka集群中的几个角色: Broker:一般指Kafka的部署节点 Leader:用于处理消息的接收和消费等请求,也就是说producer是将消息push到leader,而consumer也是从leader上去poll消息 Follower:主要用于备份消息数据,一个leader会有多个follower 在本例中,为了更贴近实际的部署情况,使用了四台虚拟机作演示: 机器IP 作用 角色 brokerId 192.168.99.1 部署Kafka节点 broker server 0 192.168.99.2 部署Kafka节点 broker server 1 192.168