系统架构面试题(8)Redis集群

系统架构面试题(8)Redis集群

Redis是个KV内存数据库,支持多种数据结构、简单消息队列、磁盘持久化,特点是高性能、使用简单、稳定可靠。常见使用场景如下:(1) 数据缓存:客户端访问服务器的时候,先检查redis是否有数据,Redis有数据直接反馈给客户端;如果没有数据再请求数据库,查询数据后缓存到Redis,下次就可以直接读Redis。(2)分布式锁:微服务项目服务部署到不同的服务器上,单体架构的同步锁没办法锁住服务,利用Redis实现分布式锁,常用组件为Redisson。(3)数据共享:将包含用户信息的令牌存储在Redis中,用户每次访问时从Redis中查询令牌,实现资源的共享,即分布式Session。

老者Java,奋战一线

老者Java,奋战一线

Java已经诞生20多年了,依然是企业级开发中使用最广泛的语言,也是挨骂最多的语言。Java广受批评的四个缺点是:性能差、内存消耗大、GUI弱、代码啰嗦,我们应该如何看待这几个问题呢?在微服务的背景下,提倡围绕业务能力而非技术来构建应用,允许由不同的语言构建应用程序。一个超大的集群,往往有上万个微服务的容器在运行。为了更有效率的管理容器,必须对微服务提几点要求:镜像体积小、内存消耗小、启动速度快,这些却都是Java的弱项。

新冠疫情下的生活

新冠疫情下的生活

从2019到2022年,为了防止新冠疫情蔓延,国家自我封锁了三年之久。在这漫长的三年里, 每个普通人的生活都受到重大的影响,大部分人失去了自由,还有一些人失去生命、失去工作、失去生意。疫情不光影响人的身体,还影响人的心理。我们害怕再次失去自由,害怕反复感染病毒,对未来也失去了信心。时代的尘埃,落在个人的身上,都是一座山。

寻味人生(20)火锅永远沸腾

寻味人生(20)火锅永远沸腾

火锅是中国独创的美食,具备奇特的饮食魅力。沸腾的红汤,扑鼻的香味,丰富的食材,沾满汤汁的肉卷在蘸料碗里打滚,一口吃下去,所有的不开心都会烟消云散了。火锅蕴含了中国人的生活观和价值观。吃火锅很容易形成热烈的用餐氛围,适合家庭或者朋友聚会。能够在一个锅里搅合的人,关系不会太浅。一对相亲的男女,初次见面可能会选择优雅的西餐厅,戴着面具交谈几个小时。如果他们确定了关系,可能一起吃火锅,热气熏得人花容失色,必须以真面目示人。

Java面试题(16)- 故障排查

Java面试题(16)- 故障排查

整理一些Java基础面试题,内容涵盖语言基础、并发、JVM、IO模型、中间件、开发框架等等。本章节的面试题有:怎么解决Java包依赖冲突;如何排查JVM中出现的OOM原因;怎么查看Java线程的资源占用;如何分析thread dump文件;如何排查服务器的CUP使用率过高的原因;如何排查服务器Load高而CPU使用率低的情况;如何排查后台服务变慢的原因。

如何优雅关闭线程池

如何优雅关闭线程池

许多业务场景中都会到线程池,比如微服务接收外部调用、异步发送邮件、离线统计报表等等。线程池有三个优点:降低资源消耗,通过重复利用已创建的线程降低线程创建和销毁造成的消耗;提高响应速度,当任务到达时,任务可以不需要等到线程创建就能立即执行;提高线程的可管理性,对线程进行统一的分配,调优和监控。老话说,请神容易送神难,使用了线程池就要承受它带来的问题。线程池的运行机制比较复杂,使用线程池的参数并不好配置。线程池执行的情况与任务类型相关,IO密集型和CPU密集型的任务运行起来的情况差异很大,配置合理依赖开发人员的经验和知识。如果配置不当,反而降低系统效率。另外,还一个问题,如何优雅关闭线程池,避免任务或者数据丢失呢?

Java面试题(15)- Spring Cloud Alibaba

Java面试题(15)- Spring Cloud Alibaba

整理一些Java基础面试题,内容涵盖语言基础、并发、JVM、IO模型、中间件、开发框架等等。本章节的面试题有:Spring Cloud Alibaba主要包含哪些组件;Nacos的核心功能有哪些;说说Nacos的工作流程;说说Sentinel的使用场景;说说限流算法有哪几种;Sentinel如何限制资源的调用;为什么会产生分布式事务;Seata如何避免并发场景的脏读与脏写;Seata主推的事务模式是什么,有什么优势。

Java面试题(14)- Spring Cloud

Java面试题(14)- Spring Cloud

整理一些Java基础面试题,内容涵盖语言基础、并发、JVM、IO模型、中间件、开发框架等等。本章节的面试题有:你怎么描述Spring Cloud 框架;说说微服务架构的优缺点;Spring Cloud有哪些重要组件;Eureka的作用是什么;什么是Eureka的自我保护模式;你还了解其他网关吗,有什么区别;服务雪崩的原因有哪些。

Java面试题(13)- Spring Boot

Java面试题(13)- Spring Boot

整理一些Java基础面试题,内容涵盖语言基础、并发、JVM、IO模型、中间件、开发框架等等。本章节的面试题有:Spring Boot有哪些优点;Spring Boot的核心配置文件有哪些,区别是什么呢;Spring Boot的配置文件有哪几种格式,有什么区别;SpringBoot的核心注解是哪个;Spring Boot 3.0 的新特性了解吗;SpringBoot打成的jar和普通jar有什么区别;SpringBoot中如何实现定时任务;什么是Spring Boot Starter。

Java面试题(12)- Mybatis框架

Java面试题(12)- Mybatis框架

整理一些Java基础面试题,内容涵盖语言基础、并发、JVM、IO模型、中间件、开发框架等等。本章节的面试题有:Mybatis的适用场景是什么;MyBatis与Hibernate有哪些不同;Mybatis如何实现批量提交;Mybatis有缓存吗;#{}和${}的区别是什么;Mybatis如何解决SQL注入。