首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    两年经验Java研发,5面拿下阿里 Offer(复盘总结)

    非本科,软件工程,2年工作经验。有幸得到内推机会,参加了阿里Java岗的面试。...知道什么是内存泄露,如何手动去造成内存泄露? 线程池常见的一些参数,知道Future接口? 数据库部分 常见的索引类型有哪些? 为什么主键索引使用B+树而不去使用B树?...知道回表查询?聚集索引? 项目中有没有使用到分表分库?说一说怎么分的? 分布式/中间件部分 Redis是单线程的? 为什么Redis的性能比较高?...使用消息列有没有遇到消息丢失的情况,怎么去设计补偿行为? 说一说项目中为什么使用Kafka而不去使用其它消息队列? 说一说Zookeeper中的Zab协议 分布式锁的实现方案有哪些?...分布式限流Sentinel中线程模式与QPS模式的区别 微服务部分 有没有遇到dubbo连接数爆满的问题 dubbo如何实现使用zookeeper找到对应的服务 dubbo使用zookeeper作为分布式治理中心有什么弊端

    85410

    Java中的5大队列,你知道几个?

    Java 中的队列有很多,例如:ArrayBlockingQueue、LinkedBlockingQueue、PriorityQueue、DelayQueue、SynchronousQueue 等,那它们的作用是什么...Oct 19 20:16:12 CST 2020 | ArrayBlockingQueue Size:3 Mon Oct 19 20:16:12 CST 2020 | ArrayBlockingQueue...端队列(Deque)是指队列的头部和尾部都可以同时入队和出的数据结构,如下图所示: 接下来我们来演示一下端队列 LinkedBlockingDeque 的使用: import java.util.concurrent.LinkedBlockingDeque...delayQueue.put(new MyDelay(1000, "消息1")); delayQueue.put(new MyDelay(3000, "消息2"));...1 消息2 结束执行时间:2020-10-20 20:17:31 从上述结束执行时间和开始执行时间可以看出,消息 1 和消息 2 都正常实现了延迟执行的功能。

    54110

    Java 面试题大全及答案大全(共 2000+,2022最新版)

    25、Dubbo 服务之间的调用是阻塞的?26、Dubbo 支持分布式事务?27、Dubbo telnet 命令能做什么?28、Dubbo 支持服务降级?29、Dubbo 如何优雅停机?...11、Zookeeper 集群支持动态添加机器12、ZooKeeper 是如何实现分布式事务的?13、ZooKeeper 是如何实现分布式锁的?14、Zookeeper 中的文件系统怎么理解?...8、分布式系统下会遇到哪些问题?9、分布式 Session 共享怎么实现?10、分布式唯一 ID 怎么实现?11、什么是分布式事务?12分布式事务的解决方案有哪些?13、什么是微服务?...消息队列1、消息列有什么用?2、消息列有哪些应用场景?3、消息列有什么优缺点?4、消息队列怎么选型?5、有了多线程,为什么还要消息队列?6、消息队列和多线程应该怎么选择呢?...12消息延迟推送有哪些应用场景?13、什么是拉模式和推模式?14、什么是消息持久化?15、消息持久化有什么缺点?16、什么是 JMS?17、什么是 RabbitMQ?

    3.1K20

    Java 面试题大全及答案大全(共 2000+,2022最新版)

    25、Dubbo 服务之间的调用是阻塞的?26、Dubbo 支持分布式事务?27、Dubbo telnet 命令能做什么?28、Dubbo 支持服务降级?29、Dubbo 如何优雅停机?...11、Zookeeper 集群支持动态添加机器12、ZooKeeper 是如何实现分布式事务的?13、ZooKeeper 是如何实现分布式锁的?14、Zookeeper 中的文件系统怎么理解?...8、分布式系统下会遇到哪些问题?9、分布式 Session 共享怎么实现?10、分布式唯一 ID 怎么实现?11、什么是分布式事务?12分布式事务的解决方案有哪些?13、什么是微服务?...消息队列1、消息列有什么用?2、消息列有哪些应用场景?3、消息列有什么优缺点?4、消息队列怎么选型?5、有了多线程,为什么还要消息队列?6、消息队列和多线程应该怎么选择呢?...12消息延迟推送有哪些应用场景?13、什么是拉模式和推模式?14、什么是消息持久化?15、消息持久化有什么缺点?16、什么是 JMS?17、什么是 RabbitMQ?

    14.2K64

    Java 面试题大全及答案大全(共 2000+,2022最新版,包括JVM、多线程、Redis、Spring Boot、Spring Cloud 面试题等等)

    25、Dubbo 服务之间的调用是阻塞的?26、Dubbo 支持分布式事务?27、Dubbo telnet 命令能做什么?28、Dubbo 支持服务降级?29、Dubbo 如何优雅停机?...11、Zookeeper 集群支持动态添加机器12、ZooKeeper 是如何实现分布式事务的?13、ZooKeeper 是如何实现分布式锁的?14、Zookeeper 中的文件系统怎么理解?...8、分布式系统下会遇到哪些问题?9、分布式 Session 共享怎么实现?10、分布式唯一 ID 怎么实现?11、什么是分布式事务?12分布式事务的解决方案有哪些?13、什么是微服务?...消息队列1、消息列有什么用?2、消息列有哪些应用场景?3、消息列有什么优缺点?4、消息队列怎么选型?5、有了多线程,为什么还要消息队列?6、消息队列和多线程应该怎么选择呢?...12消息延迟推送有哪些应用场景?13、什么是拉模式和推模式?14、什么是消息持久化?15、消息持久化有什么缺点?16、什么是 JMS?17、什么是 RabbitMQ?

    3K10

    数据迁移与一致性思考与实践

    那么现在的问题就是怎么写呢??...,抛出一条消息出来,异步写存储C 写的策略是加上了,但是怎么保证数据的一致性呢?...写了存储B成功之后,再写存储C就一定能写成功,如果不成功,那两边的数据就不一致,读到了不一致的数据,又该怎么办?...对于第一种方案,如果存储支持分布式事务(如mysql),是可以做到强一致性的,我们可以通过事务的机制保证储存B和存储C要么同时成功,要么同时失败。...但是这里的影响也仅仅是短暂的看到表现不一致而已,如果用户再次使用该优惠券,写的时候写存储B就会失败,因为存储B里面的状态是已使用,不可能让已使用状态的优惠券再次使用。

    17K4017

    利用Redis实现消息队列

    什么是消息队列 消息队列(message queue) 可以分为两部分,即消息(message)与队列(queue),它是分布式系统中重要的组件,其通用的使用场景可以简单地描述为: 当不需要立即获得结果...当前使用较多的消息列有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMq等,而部分数据库如Redis、Mysql以及phxsql也可实现消息队列的功能。...开始实现 消息队列的本质和队列结构类似,均为先进先出(FIFO),这里利用到的是redis的List(列表).利用lpush进行入队,然后通过rpop出. class Mq{ public static...} public function proc($str){ $data = $this->redis->rpop(self::$key); //从首出并处理...public function proc($str){ while($data = $this->redis->brpop(self::$key),3600){ //从首出并处理

    85921

    【荐】成为Java高级工程师到底需要掌握什么?

    这样效果更好噢~ 高并发架构 消息队列 为什么使用消息队列?消息列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?...搜索引擎 es 的分布式架构原理能说一下么(es 是如何实现分布式的啊)? es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解?...如何保证缓存与数据库的写一致性? Redis 的并发竞争问题是什么?如何解决这个问题?了解 Redis 事务的 CAS 方案? 生产环境中的 Redis 是怎么部署的?...分布式系统 系统拆分 为什么要进行系统拆分?如何进行系统拆分?拆分后不用 Dubbo 可以分布式服务框架 说一下 Dubbo 的工作原理?注册中心挂了可以继续通信?...使用 Redis 如何设计分布式锁?使用 Zookeeper 来设计分布式锁可以?以上两种分布式锁的实现方式哪种效率比较高? 分布式事务 分布式事务了解?你们如何解决分布式事务问题的?

    1.1K30

    【Java面试】第一章:P5级面试

    种设计模式_廖志伟-CSDN博客 Redis支持的数据类型以及使用场景,持久化,哨兵机制,缓存击穿,缓存穿透 答案:理论:第四章:Redis支持的数据类型以及使用场景,持久化,哨兵机制,缓存雪崩,缓存穿透,删策略..._廖志伟-CSDN博客_缓存删策略 线程是什么,有几种实现方式,它们之间的区别是什么,线程池实现原理,JUC并发包,ThreadLocal与Lock和Synchronize区别 答案:理论:第八章:线程是什么...例如:传入参数为(订单id)和(优惠券id),拿(订单id)查询该订单的用户id,拿来和登录的用户id进行对比,判断是否为本人操作。拿(优惠券id)查询用户表是否领取了该优惠券,该优惠券是否可用。...(幂等性),消息发送失败,消息掉包,长时间收不到消息,发送的消息太大造成接收不成功 答案:互联网 Java 工程师进阶知识完全扫盲 单点登录实现原理 答案:面试:第十章:单点登录_廖志伟-CSDN博客...讲解的真的够全面?拿下面第一题来说,面试官一般都直接问你HashMap实现原理,但是要是换一个问法,比如:影响HashMap性能有哪些因素?HashMap为什么存取效率那么高?

    13.5K10

    C++从 STL 中的队列开始说起

    进入的一端称为尾,出去的一端称为头。 队列有 2 个常规操作: 入队:进入队列,数据总是从尾进入队列。 出:从队列中取出数据,数据总是从头出来。...STL 中的队列 STL的队列有: queue(普通队列)。 priority_queue(优先队列)。 deque(端队列)。...类似的,如果禁用pop_back()和push_front()则可以模拟出普通队列的存储效果…… 可能会问,为什么选择deque作为基础组件,难道它有什么先天性优势?...( 6 ); cout<<"查看头数据 : "<<myDeque.front()<<endl; cout<<"查看尾数据: "<<myDeque.back()<<endl; //端队列支持迭代器查询...在循环队列,当入队的速度快于出速度时,rear指针是可以追上front指针的。如下图所示: 这时队列为满负荷状态。也就是说,front等于rear时,队列有可能是空的也有可能是满的。

    87510

    死磕 java集合之ArrayDeque源码分析

    ---- 问题 (1)什么是端队列? (2)ArrayDeque是怎么实现端队列的? (3)ArrayDeque是线程安全的? (4)ArrayDeque是有界的?...简介 端队列是一种特殊的队列,它的两端都可以进出元素,故而得名端队列。 ArrayDeque是一种以数组方式实现的端队列,它是非线程安全的。 继承体系 ?...出同样有很多方法,我们主要看两个,pollFirst()和pollLast()。...总结 (1)ArrayDeque是采用数组方式实现的端队列; (2)ArrayDeque的出入队是通过头尾指针循环利用数组实现的; (3)ArrayDeque容量不足时是会扩容的,每次扩容容量增加一倍...双重队列(Dual Queue)是指一种队列有两种用途,里面的节点分为数据节点和非数据节点,它是LinkedTransferQueue使用的数据结构。

    67330

    【数据结构基础】队列简介(使用ES6)

    03 什么是端队列 端队列是一个特殊的更灵活的队列,我们可以在队列的“头”或“尾”添加和删除元素。由于端队列是实现了FIFO和LIFO这两个原则,也可以说是队列和堆栈结构的合体结构。...addBack(element):此方法用于在端队列的“尾”添加元素。 removeFront():此方法用于删除端队列的“头”元素。...removeBack():此方法用于删除端队列的“尾”元素。...peekFront():此方法用于返回端队列的“头”元素 peekBack():此方法用于返回端队列的“尾”元素 addFront(element) 由于从端队列的的“头”添加元素,稍微复杂些...其实队列在我们的实际业务场景中运用还是蛮多的,比如我们要实现一个队列的消息推送机制,我们JS的event loop的事件循环机制,浏览器的页面渲染机制等等。

    61620

    【数据结构基础】队列简介(使用ES6)

    端队列是一个特殊的更灵活的队列,我们可以在队列的“头”或“尾”添加和删除元素。...addBack(element):此方法用于在端队列的“尾”添加元素。 removeFront():此方法用于删除端队列的“头”元素。...removeBack():此方法用于删除端队列的“尾”元素。...peekFront():此方法用于返回端队列的“头”元素 peekBack():此方法用于返回端队列的“尾”元素 addFront(element) 由于从端队列的的“头”添加元素,稍微复杂些...其实队列在我们的实际业务场景中运用还是蛮多的,比如我们要实现一个队列的消息推送机制,我们JS的event loop的时间循环机制,浏览器的页面渲染机制等等。

    81640

    微服务应该这么搞,才能少踩坑!

    好,咱们这次就盘一盘分布式事务,最终一致,补偿机制,事务型消息!...我们以TCC分布式事务和RocketMQ事务型消息为例,做详细分享!这个弄明白了,也就清楚分布式事务,最终一致,补偿机制这些概念啦!...基本步骤如下: 1,修改订单状态为“已支付” 2,扣减库存 3,扣减优惠券 4,通知WMS(仓储管理系统)捡货出库(异步消息) 我们先看扣减库存,更新订单状态和扣减优惠券这三步同步调用,通知WMS的异步消息会在后面的...那么有什么问题? 答案是肯定的。没法保证数据一致性,也就是说不能保证这几步操作全部成功或者全部失败!...这些关于流程的逻辑也要手动编码?这也太麻烦了吧! 实际上TCC分布式事务框架帮我们把这些事都干了。比如我们前面提到的Hmily,ByteTCC,TCC-transaction 这些框架。

    3.7K20

    一个故事理解消息队列-上

    下面的内容是关于消息队列这一中间件的详细介绍。消息队列功能概述消息队列(Message Queue,简称MQ)是指保存消息的一个容器,其本质是一个保存数据的队列。...消息队列时分布式系统中重要的技术组件,主要解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性的系统架构。...目前使用较多的消息列有ActiveMQ、RabbitMQ、RocketMQ、Kafka等。...且每个环节都要进行校验,比如库存是否足够,商品是否参与会员折扣,是否有优惠券等。只要其中一个强依赖的下游应用调用超时或者失败,那这笔订单就无法创建成功。...流量削峰填谷还是以电商业务为例,每次11大促,对系统的性能和稳定性都是一大考验,很多公司的系统在面临这种高并发场景时都跪了。

    6810

    服务化带来的数据一致问题---分布式事务,事务型消息

    本文我们聊聊分布式事务和事务型消息的解决思路,通过阅读本文,可以理解分布式事务和事务型消息,并且能够应用到实际生产工作中。 服务化后单体系统被拆分成多个服务,各服务访问自己的数据库。...好,咱们这次就盘一盘分布式事务,最终一致,补偿机制,事务型消息!...这次咱们以TCC分布式事务和RocketMQ事务型消息为例,做详细分享!这个弄明白了,也就清楚分布式事务,最终一致,补偿机制这些概念啦!...那么有什么问题? 答案是肯定的。没法保证数据一致性,也就是说不能保证这几步操作全部成功或者全部失败!...这些关于流程的逻辑也要手动编码?这也太麻烦了吧! 实际上TCC分布式事务框架帮我们把这些事都干了。比如我们前面提到的Hmily,ByteTCC,TCC-transaction 这些框架。

    2.1K20

    为什么要用消息队列?

    Tip:话是这么说,但是这其实是用了消息队列的一个缺点,涉及到分布式事务的知识点,我下面会提到。...你看阿里双十一12:00的时候这么多流量瞬间涌进去,他有时候是不是会慢一点,但是人家没挂啊,或者降级给你个友好的提示页面,等高峰过去了又是一条好汉了。 ?...为了这个图特意打高一台服务的流量 听你说了辣么多,怎么都是好处,那我问你使用了消息列有啥问题么? 诶,看过前面我写的文章的人才都知道,我经常说的就是,技术是把双刃剑!...数据一致性 这个其实是分布式服务本身就存在的一个问题,不仅仅是消息队列的问题,但是放在这里说是因为用了消息队列这个问题会暴露得比较严重一点。...分布式事务:把下单,优惠券,积分。。。都放在一个事务里面一样,要成功一起成功,要失败一起失败。 ? Tip:分布式事务在互联网公司里面实在常见,我也不在这里大篇幅介绍了,后面都会专门说的。

    92610
    领券