Java进阶知识点

高并发架构

消息队列

  1. 为什么使用消息队列?

  2. 消息队列有什么优点和缺点?

  3. Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?

  4. 如何保证消息队列的高可用?

  5. 如何保证消息不被重复消费?(如何保证消息消费时的幂等性)

  6. 如何保证消息的可靠性传输?(如何处理消息丢失的问题)

  7. 如何保证消息的顺序性?

  8. 如何解决消息队列的延时以及过期失效问题?

  9. 消息队列满了以后该怎么处理?

  10. 有几百万消息持续积压几小时,说说怎么解决?

  11. 如果让你写一个消息队列,该如何进行架构设计啊?说一下你的思路。

搜索引擎

  1. es 的分布式架构原理能说一下么(es 是如何实现分布式的啊)?

  2. es 写入数据的工作原理是什么啊?

  3. es 查询数据的工作原理是什么啊?

  4. 倒排索引了解吗?

  5. es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?

  6. es 生产集群的部署架构是什么?每个索引的数据量大概有多少?每个索引大概有多少个分片?

缓存

  1. 在项目中缓存是如何使用的?

  2. 缓存如果使用不当会造成什么后果?

  3. Redis 和 Memcached 有什么区别?

  4. Redis 的线程模型是什么?

  5. 为什么单线程的 Redis 比多线程的 Memcached 效率要高得多?

  6. Redis 都有哪些数据类型?分别在哪些场景下使用比较合适?

  7. Redis 的过期策略都有哪些?手写一下 LRU 代码实现?

  8. 如何保证 Redis 高并发、高可用?

  9. Redis 的主从复制原理能介绍一下么?

  10. Redis 的哨兵原理能介绍一下么?

  11. Redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的?

  12. Redis 集群模式的工作原理能说一下么?在集群模式下,Redis 的 key 是如何寻址的?分布式寻址都有哪些算法?

  13. 了解一致性 hash 算法吗?如何动态增加和删除一个节点?

  14. 了解什么是 Redis 的雪崩和穿透?Redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 Redis 的穿透?

  15. 如何保证缓存与数据库的双写一致性?

  16. Redis 的并发竞争问题是什么?如何解决这个问题?了解 Redis 事务的 CAS 方案吗?

  17. 生产环境中的 Redis 是怎么部署的?

分库分表

  1. 为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?

  2. 用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的?

  3. 现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?

  4. 如何设计可以动态扩容缩容的分库分表方案?

  5. 分库分表之后,id 主键如何处理?

读写分离

  1. 如何实现 MySQL 的读写分离?

  2. MySQL 主从复制原理是啥?

  3. 如何解决 MySQL 主从同步的延时问题?

高并发系统

  1. 如何设计一个高并发系统?

分布式系统

系统拆分

  1. 为什么要进行系统拆分?如何进行系统拆分?

分布式服务框架

  1. 分布式服务接口的幂等性如何设计(比如不能重复扣款)?

  2. 分布式服务接口请求的顺序性如何保证?

分布式锁

  1. Zookeeper 都有哪些应用场景?

  2. 使用 Redis 如何设计分布式锁?使用 Zookeeper 来设计分布式锁可以吗?以上两种分布式锁的实现方式哪种效率比较高?

分布式事务

  1. 你们如何解决分布式事务问题的?

  2. TCC 如果出现网络连不通怎么办?

  3. XA 的一致性如何保证?

限流

  1. 如何限流?在工作中是怎么做的?说一下具体的实现?

熔断

  1. 如何进行熔断?

  2. 熔断框架都有哪些?具体实现原理知道吗?

降级

  1. 如何进行降级?


threadlocal的原理,为什么会内存泄漏,线程销毁会清空threadlocal吗?
线程池里核心线程执行完任务后threadlocal会不会销毁,单个线程执行完任务threadlocal会不会销毁
当Thread销毁的时候,ThreadLocalMap也会随之销毁,减少内存使用,早期的ThreadLocal并不会自动销毁。
实现自定义注解步骤
缓存一致性问题,数据更新成功、缓存更新失败怎么
https://blog.csdn.net/bocai_xiaodaidai/article/details/124010396
 

(1)遍历二叉树然后按倒序加入一个列表:https://blog.csdn.net/weixin_45295612/article/details/109177252
(2)spring的线程池和juc的线程池有啥区别,选择使用
(4)redis数据结构、zset的底层原理、跳表
https://blog.csdn.net/TABE_/article/details/122524100
(8)aqs理解,aqs下面的工具类
(9)cas原理
(10)多线程满足什么特性:原子性、可见性、有序性
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值