寻味人生(21)听取蛙声一片
今年三月份,我回了一趟湖北老家,离家这么多年,这是第一次春季返乡。连续下了几天大雨,雨后池塘积攒了许多水,水里的土克马(农村常见蛙类)不想再当单身狗了,大喊大叫抓紧时间求偶。晚上,我躺在家里的床上,听到外面一阵阵蛙鸣,想起了儿时的许多趣事,仿佛回到了少年时期。小学课本就开始教导我们:青蛙是益虫,要保护青蛙。但是农村的物质短缺啊,农村人也的确短视,青蛙是田野里能抓到最好吃的东西了。青蛙是两栖动物,在水里和陆地上都非常灵活和机警。钓青蛙,是活捉青蛙的不二法门。
今年三月份,我回了一趟湖北老家,离家这么多年,这是第一次春季返乡。连续下了几天大雨,雨后池塘积攒了许多水,水里的土克马(农村常见蛙类)不想再当单身狗了,大喊大叫抓紧时间求偶。晚上,我躺在家里的床上,听到外面一阵阵蛙鸣,想起了儿时的许多趣事,仿佛回到了少年时期。小学课本就开始教导我们:青蛙是益虫,要保护青蛙。但是农村的物质短缺啊,农村人也的确短视,青蛙是田野里能抓到最好吃的东西了。青蛙是两栖动物,在水里和陆地上都非常灵活和机警。钓青蛙,是活捉青蛙的不二法门。
Redis是个KV内存数据库,支持多种数据结构、简单消息队列、磁盘持久化,特点是高性能、使用简单、稳定可靠。常见使用场景如下:(1) 数据缓存:客户端访问服务器的时候,先检查redis是否有数据,Redis有数据直接反馈给客户端;如果没有数据再请求数据库,查询数据后缓存到Redis,下次就可以直接读Redis。(2)分布式锁:微服务项目服务部署到不同的服务器上,单体架构的同步锁没办法锁住服务,利用Redis实现分布式锁,常用组件为Redisson。(3)数据共享:将包含用户信息的令牌存储在Redis中,用户每次访问时从Redis中查询令牌,实现资源的共享,即分布式Session。
Java已经诞生20多年了,依然是企业级开发中使用最广泛的语言,也是挨骂最多的语言。Java广受批评的四个缺点是:性能差、内存消耗大、GUI弱、代码啰嗦,我们应该如何看待这几个问题呢?在微服务的背景下,提倡围绕业务能力而非技术来构建应用,允许由不同的语言构建应用程序。一个超大的集群,往往有上万个微服务的容器在运行。为了更有效率的管理容器,必须对微服务提几点要求:镜像体积小、内存消耗小、启动速度快,这些却都是Java的弱项。
从2019到2022年,为了防止新冠疫情蔓延,国家自我封锁了三年之久。在这漫长的三年里, 每个普通人的生活都受到重大的影响,大部分人失去了自由,还有一些人失去生命、失去工作、失去生意。疫情不光影响人的身体,还影响人的心理。我们害怕再次失去自由,害怕反复感染病毒,对未来也失去了信心。时代的尘埃,落在个人的身上,都是一座山。
火锅是中国独创的美食,具备奇特的饮食魅力。沸腾的红汤,扑鼻的香味,丰富的食材,沾满汤汁的肉卷在蘸料碗里打滚,一口吃下去,所有的不开心都会烟消云散了。火锅蕴含了中国人的生活观和价值观。吃火锅很容易形成热烈的用餐氛围,适合家庭或者朋友聚会。能够在一个锅里搅合的人,关系不会太浅。一对相亲的男女,初次见面可能会选择优雅的西餐厅,戴着面具交谈几个小时。如果他们确定了关系,可能一起吃火锅,热气熏得人花容失色,必须以真面目示人。
整理一些Java基础面试题,内容涵盖语言基础、并发、JVM、IO模型、中间件、开发框架等等。本章节的面试题有:怎么解决Java包依赖冲突;如何排查JVM中出现的OOM原因;怎么查看Java线程的资源占用;如何分析thread dump文件;如何排查服务器的CUP使用率过高的原因;如何排查服务器Load高而CPU使用率低的情况;如何排查后台服务变慢的原因。
许多业务场景中都会到线程池,比如微服务接收外部调用、异步发送邮件、离线统计报表等等。线程池有三个优点:降低资源消耗,通过重复利用已创建的线程降低线程创建和销毁造成的消耗;提高响应速度,当任务到达时,任务可以不需要等到线程创建就能立即执行;提高线程的可管理性,对线程进行统一的分配,调优和监控。老话说,请神容易送神难,使用了线程池就要承受它带来的问题。线程池的运行机制比较复杂,使用线程池的参数并不好配置。线程池执行的情况与任务类型相关,IO密集型和CPU密集型的任务运行起来的情况差异很大,配置合理依赖开发人员的经验和知识。如果配置不当,反而降低系统效率。另外,还一个问题,如何优雅关闭线程池,避免任务或者数据丢失呢?
整理一些Java基础面试题,内容涵盖语言基础、并发、JVM、IO模型、中间件、开发框架等等。本章节的面试题有:Spring Cloud Alibaba主要包含哪些组件;Nacos的核心功能有哪些;说说Nacos的工作流程;说说Sentinel的使用场景;说说限流算法有哪几种;Sentinel如何限制资源的调用;为什么会产生分布式事务;Seata如何避免并发场景的脏读与脏写;Seata主推的事务模式是什么,有什么优势。
整理一些Java基础面试题,内容涵盖语言基础、并发、JVM、IO模型、中间件、开发框架等等。本章节的面试题有:你怎么描述Spring Cloud 框架;说说微服务架构的优缺点;Spring Cloud有哪些重要组件;Eureka的作用是什么;什么是Eureka的自我保护模式;你还了解其他网关吗,有什么区别;服务雪崩的原因有哪些。
整理一些Java基础面试题,内容涵盖语言基础、并发、JVM、IO模型、中间件、开发框架等等。本章节的面试题有:Spring Boot有哪些优点;Spring Boot的核心配置文件有哪些,区别是什么呢;Spring Boot的配置文件有哪几种格式,有什么区别;SpringBoot的核心注解是哪个;Spring Boot 3.0 的新特性了解吗;SpringBoot打成的jar和普通jar有什么区别;SpringBoot中如何实现定时任务;什么是Spring Boot Starter。