b站JAVA面试汇总

b站JAVA面试汇总

  • eureka注册中心【服务的 注册发现健康检查】;
    避免单点故障【实现高可用】——》使用【双节点相互注册】
    服务注册到eureka server健康检查【springboot 开启e-server插件;注册服务的ip和端口】
    组成:
    1.服务端-提供者
    2.客户端-消费者【获得服务注册列表】
    3.注册中心【用restapi实现注册查询可视化】

  • 分布式事务【一个分布式事务可以看成多个分布式事务的子进程实现】
    case:电商
    订单在订单微服务
    库存在库存——
    优惠券——
    协同实现

  • 对微服务的操作——tcc【try confirm cancel】
    调用接口完成业务操作实现顺序,cancel报错回滚。
    解决方案:
    1.强一致性【代码耦合性比较高】;2.最终一致性+事后补偿;3.最大努力通知;

  • 熔断
    一组微服务——调用链
    下游出现响应时间超长的情况——直接不调用

  • redis
    【集群-哨兵模式——使用三台机器——根据哨兵选取新的master;优势:优化主从的中端,可以自行恢复//clast分片模式数据自行分槽,一主一从】
    保证缓存和数据库的双写一致性:【场景:查询数据,先查缓存,没有再查数据库】
    1.双删【写的时候删一边,延迟一段时间再删缓存】避免读取脏数据
    2.保证热点数据【redis命中一次就增加一段过期时间/主动刷新过期时间】

  • 缓存雪崩【redis的大部分缓存过期或者不能使用——》要去数据库查询数据——》存储层压力很大;解决方式:添加key——返回null/封ip/失效加锁限制线程/设置缓存过期时间均匀分布】

  • 缓存穿透【查询不存在数据——》缓存查不到——》数据库查不到——》之后每次都会直接查询数据库;解决方案:布隆过滤/控制层校验——》不符合就丢弃】

  • 消息中间件【异步】
    邮件短信放到消息队列

  • token实现幂等性

  • 设计模式——代理模式
    给一个对象提供代理,代理对象可以协调【框架自带】;

  • arraylist扩容
    本文介绍了 ArrayList动态扩容的全过程。如果通过无参构造的话,初始数组容量为0,当真正对数组进行添加时,才真正分配容量。每次按照1.5倍(位运算)的比率通过copeOf的方式扩容。 在JKD1.6中实现是,如果通过无参构造的话,初始数组容量为10,每次通过copeOf的方式扩容后容量为原来的1.5倍,以上就是动态扩容的原理

  • 多线程start【交给系统的调度器】

  • ribben负载均衡
    不知道一个服务会有多少需求——轮询、权重

  • mysql索引
    每次建立索引会生成 .FRM是索引结构文件,两种数据结构——btree/。hash【不支持范围查询】
    建立索引之前考虑:唯一性差高频访问次不建立索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值