Advertisement

(阿里巴巴)国际化中台商家链路一面

阅读量:

A表明我是初学Java开发的一名新人,并希望通过这次面试展现出良好的专业态度

博主从事产品相关工作,并介绍了自己负责的产品模块及相应的模型设计思路

  1. 您认为在这几项产品中有哪些突出亮点?
    A:包括但不限于 RocketMQ 的异步通信功能、分布式事务管理能力以及 Redis 的缓存性能。

  2. 如何处理分布式事务? A:RocketMQ采用什么方法执行分布式事务操作?其他相关的2PC系统和开源解决方案如何处理?

  3. RocketMQ您认为是2PC还是3PC呢?
    A:对比分析两者的运行机制,与现有方案类似但细节上有明显不同之处...目前行业内针对这一通信模式尚未形成成熟的产品方案。

  4. 交易模块借助 RocketMQ 发布的消息供您监控。如何确保这些信息不会丢失?你可以从 RocketMQ 的持久化机制来理解。后面复盘觉得可以从消息产生到消费的三个阶段来说明各个阶段 RocketMQ 如何保证信息的安全性。

在使用RocketMQ时是否曾遇到消息堆积的现象?如何应对?
A:在实际使用过程中曾遇到过此类情况。分析导致消息堆积的原因时发现生产者的发送频率过高以及消费者的消息处理速度较慢。针对此问题提出了相应的解决方案和实施步骤。

  1. 您如何应对信息过载导致的消息重复消费?
    A:这是一个常见话题,在消费端已经实现了幂等性特性。具体实现路径是什么?

在你们的产品中是如何对Redis进行缓存策略的阐述的?

请列举Redis的基本数据类型有哪些?其中包含字符串类型(String)、列表(List)、集合(Set)、有序集合(SortedSet)、哈希表(Hash)、位图(BitMap)、地理位置类型(GEO)以及基数(基数)。

让我们深入探讨Redis中String类型的数据存储机制。A类:基于可变长度链表的内存块,并探讨这两部分的具体实现及其在不同数据类型下的存储差异。(例如当数值较小时(如整数)采用8字节长型存储,而当涉及字符类型的数据时,则采用更为复杂的组合方式——即简单动态字符串(SDS)与RedisObject结合的方式。其在处理不同类型的数据时会采用不同的组织架构。)

  1. SortedSet(zset)类型的底层数据结构?
    A:跳表、简单队列

介绍一下跳表是什么。它的计算复杂度如何?插入操作又是什么样的呢?

A同学:类比树结构进行分析,他推测树结构的时间复杂度为O(\log N)(实际上正确)。

常见的话题包括缓存雪崩、缓存击穿与缓存穿透。A阐述了这些概念的来源背景及其应对策略。

在项目中遇到雪崩、击穿、穿透等问题时的具体应对措施是什么?

阐述布隆过滤器的基本实现原理。

想了解一下Redis的线程模型吗?A:了解Redis的线程模型时通常会涉及NIO机制。讨论了NIO机制与BIO机制之间的区别。具体来说,NIO中的多路复用机制大致是如何运作的?

我对NIO的multiplexing原理还说得过去吗? Linux上的epoll命令到底是什么样的呢? 这个问题实在是没有办法完成。

  1. NiFi(或根据上下文决定是否替换)你是否曾在其他系统中见到过?
    A:详细阐述了它们如何在Dubbo和Zookeeper中实现NiFi的支持。

  2. 产品中的策略模式你是怎么实现的?
    A:讲了下产品中的实现思路

您是否了解责任链模式?又在哪里见过该模式?
A的回答指出:框架中常见的是SpringMVC的拦截器或Servlet的过滤器

  1. 讲讲HTTP和HTTPS的区别?
    A:解决的问题,通过什么方式解决的?

  2. 一次TCP建立连接的过程?
    A:讲讲三次握手过程和原因

A:轻声地询问一下本地主机列表后向DNS服务器发起查询请求随后对返回结果不够清楚

  1. ThreadLocal是线程安全的吗?怎么解决的?
    A:讲了下源码的实现结构

  2. 子线程如何实现与父线程共享ThreadLocal?
    A:当创建新线程时,在内部初始化过程中完成传递

  3. ConcurrentHashMap是如何实现其线程安全机制的设计?
    A:基于Java 1.7和Java 8的研究框架(采用Segmented比较算法以及Concurrent Access Safeguarding (CAS)配合Synchronized关键字)

在JDK1.6版本之后对Synchronized进行了优化改进,在随后询问具体的优化措施是什么?结果得到的回答是讲述了lock升级的具体步骤以及各个步骤中如何实现lock获取的操作。

  1. 请问CAS是乐观锁还是悲观锁?您是否曾在其他代码库中见到过类似情况?
    A:A提到了在ReentrantLock中使用CAS来实现加锁的过程。

  2. 产品中曾经应用过Compare-and-Swap(CAS)协议或递归锁机制吗? A:详细说明了产品中有一段逻辑通过在表设置version来实现Compare-and-Swap(CAS)协议。

  3. 产品中曾经应用过Compare-and-Swap(CAS)协议或递归锁机制吗? A:详细说明了产品中有一段逻辑通过在表设置version来实现Compare-and-Swap(CAS)协议。

  4. 项目中是否遇到了跨域问题?具体是如何解决的?
    A:学校在项目初期由于缺乏规划导致前端开发团队为了提高效率采用Vue框架实现快速开发,并最终应用CORS机制来确保通信的安全与可靠。

A:阐述CORS是如何处理跨域请求的方法是什么?复杂请求如何处理?

  1. 在处理复杂请求时,CORS如何执行预请求过程?
    A:之前未曾深入探讨过,在复杂请求场景下,浏览器如何执行预请求数组网络层的任务?

可能是面得太久了,毕竟60分钟,其他的有点想不起了。。。就到这里吧

全部评论 (0)

还没有任何评论哟~