- 博客(5)
- 收藏
- 关注
原创 消息队列面试题
例如消费者已经获取到这个数据,并且提交了offset,但后续在对数据进行业务操作的时候挂掉了,导致数据没有成功处理,这时候kafka认为你已经成功获取了,但实际没有,就造成了数据丢失的问题。kafka的某个broker宕机,重新选举partition的leader时,如果其他的follower还没有完成数据同步,此时leader挂了,那么就有可能造成数据丢失的问题。同样的也是利用幂等性的原理来解决,可以给每条数据加上一个唯一标识,进行数据处理的时候校验这个标识是否存在,如果存在即为重复数据,丢弃。
2023-07-03 17:59:05 56 1
原创 Spring面试题
Autowired:Spring提供的注解,默认按类型自动装配,通过byType的方式实现自动装配,如果容器中有多个类型匹配的bean,那么会抛出异常。@Resource:JDK1.6支持的注解,默认按照名称来装配,它通过byName的方式实现自动装配,如果指定了name属性,那么会按照名称装配,如果没有指定name属性,那么会按照类型装配。总结:一个类,俩个实现类,Autowired就不知道注入哪一个实现类,而Resource有name属性,可以区分。注入:@Autowired @Resource。
2023-07-03 17:55:42 56 1
原创 SpringBoot、SpringCloud面试题
采用接口的方式调用,将需要调用的其他服务的方法定义成抽象方法即可,不需要自己构建http请求。在引用log4j之前,需要先排除项目创建时候带的日志,因为那个是Logback,然后再引入log4j的依赖,引入依赖之后,去src/main/resources目录下的log4j-spring.properties配置文件,就可以开始对应用的日志进行配置使用。服务调用的原理:服务首先注册到注册中心eureka中(注册一个名字通过名字调用),负载均衡ribbon,先去注册中心取到对应的服务,然后交给ribbon。
2023-07-03 17:50:44 113 1
原创 JAVA面试题
如果两个线程A、B都在进行put操作,并且hash函数计算出的插入下标是相同的,当线程A执行完此代码后由于时间片耗尽导致被挂起,而线程B得到时间片后在该下标处插入了元素,完成了正常的插入,然后线程A获得时间片,由于之前已经进行了hash碰撞的判断,HashSet中add方法调用的是底层HashMap中的put方法,put方法要判断插入值是否存在,而HashSet的add方法,首先判断元素是否存在,如果存在则插入,如果不存在则不插入,这样就保证了HashSet中不存在重复值。
2023-07-03 17:49:12 64 1
原创 Redis常见面试题
Redis 是一个基于内存的高性能key-value数据库,Redis 的数据是存在内存中的,所以读写速度非常快。持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。Redis 提供两种持久化机制 RDB(默认) 和 AOF 机制:RDB:是Redis DataBase缩写快照RDB是Redis默认的持久化方式。按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件为dump.rdb。通过配置文件中的save参数来定义快照的周期。
2023-04-04 16:48:25 78 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人