
面试
文章平均质量分 75
pqq的迷弟
--
展开
-
zookeeper相关面试题
leader保证顺序写,即所有的写请求在follower上是保持一致的,但是由于任何follower节点都可以实现读请求,有可能会读到leader已经commit的数据,但是follower节点还没有来得及完成commit数据,因此可能读取到旧的数据,我们可以在客户端读取数据(getData)之前调用sync方法,sync方法会使连接的follower节点在读取数据之前,先完成和leader的数据同步。zookeeper会保证整个事务中的操作要么都成功,要么都不成功,从而保证原子性。原创 2024-09-08 23:02:01 · 781 阅读 · 0 评论 -
分布式锁 redis与zookeeper
watch dog机制(Redisson底层就是基于watch dog机制来实现分布式锁的自动续期,当未设置过期时间时,会默认设置30秒,并起一个看门狗线程,每十秒去检测一次,如果当前线程仍然在执行,就自动续期,当然,如果手动设置了过期时间,就不会自动续期了)。获取锁和设置过期时间是2个命令,两次网络IO和redis交互,不具备原子性,可能出现获取锁成功之后 设置过期时间之前服务器宕机,导致其他线程永远都获取不到锁的现象。当前仍存在锁时间达到了过期时间,但是线程没执行完的问题。原创 2024-08-25 23:51:03 · 619 阅读 · 0 评论 -
http和https的区别(面试题)
超文本传输协议http是明文传输,所以当请求被拦截时,用户输入的信息可能会被泄露,比如说银行卡号和密码;安全套接字层超文本传输协议为了保证数据安全的传输,https在http的基础上加了SSL/TLS的协议,SSL/TLS依靠证书验证服务器的身份,并未浏览器和服务器之间的通信加密;https的作用主要有两种,一种是建立一个信息安全通道,保证数据的安全性,第二种是确认网站的真实性;客户端在使用HTTPS与web服务器之间通信的步骤:用户使用https的URL与web服务器建立SSL连接;web服务原创 2020-06-23 09:09:21 · 717 阅读 · 1 评论 -
Dubbo相关面试题
一、Dubbo服务注册和发现的流程?1、容器启动;2、服务提供者连接注册中心,将接口信息保存到注册中心中;3、服务消费者从注册中心订阅所需要的服务并缓存本地,4、服务提供方有变更时,注册中心将提供一份新的列表给消费者并缓存在消费者端;5、消费者根据接口地址调用服务提供者;6、监听器定时监听接口的调用次数和调用时长;二、dubbo支持哪些协议?dubbo:dubbo默认推荐的协议,单一长连接和NIO异步通讯,适用于高并发小数据量的请求,以及消费者远大于提供者,tcp传输协议,Hessian原创 2020-06-09 15:57:28 · 245 阅读 · 0 评论 -
ElasticSearch面试题
一、elasticsearch的写入过程?当es介绍到一个写请求时,es的请求会发送到协调节点上,协调节点根据该条记录的_id通过一个路由算法计算出我们该条记录被分配到哪一条shard上,当数据保存到对应的primary shard和replica shard上之后,返回响应到协调节点,协调节点返回成功的响应到客户端;二、elasticsearch的写入是实时搜索的不?非实时的,elasticsearch是一个近实时的搜索系统,写入的时候,现将文档写入到内存缓冲区中和translog里面,通过refr原创 2020-06-05 16:54:22 · 303 阅读 · 0 评论 -
面试-Spring面试题
一、Bean的生命周期?原创 2020-06-02 14:23:34 · 331 阅读 · 0 评论 -
Mysql面试题
一、事务的四大基本特征?原子性:事务中的操作要么全成功,要么全失败,若事务执行到一半发现报错了,就会回滚该事务中之前做的操作,回到事务开始前的状态;一致性:在执行事务之前,数据库是一致的,在执行事务之后,数据库也还是一致的;持久性:事务提交之后,就会持久化到数据库;隔离性:多个事务之间,彼此独立,互不影响;二、事务的隔离级别?1、读未提交(Read Uncommitted):所有事务都可以看到其他事务未提交的内容,解决不了任何并发问题;2、读已提交(Read committed):所有事务只能原创 2020-05-28 12:37:08 · 179 阅读 · 0 评论 -
JUC java并发面试题
1、synchronized的底层原理java虚拟机里面的同步是基于进入和退出monitor对象实现的,无论是显式同步(同步代码块)还是隐式同步都是如此,同步方法并不是由monitorenter和monitorexit指令来实现同步的,而是由方法调用指令读取运行时常量池中的表结构的ACC_SYNCHRONIZED标志来隐式实现的;同步代码块:monitorenter插入到同步代码块开始位置,monitorexit指令插入到同步代码块结束的位置,任何对象都有一个monitor与之关联,当且一个monito原创 2020-05-28 12:36:31 · 4278 阅读 · 0 评论 -
java、spring线程池面试题
一、线程池的好处?1.通过new Thread来创建线程池会比较耗时,性能差,当我们在通过线程的时候,有可能会出现(创建线程+销毁线程)的时长>线程执行(业务逻辑)的时长;2.线程缺乏统一管理,可能会出现无限制的创建线程,线程之间相互竞争,争夺资源而导致系统崩溃;3.缺乏更多的管理功能,比如定时执行、定期执行、线程中断;相比较于new Thread,创建线程的好处在于:1.重用已存在的线程,避免线程新建和消亡产生的开销。2.可以控制最大并发数,避免同时多个线程执行,争夺资源,导致系统崩溃;原创 2020-05-23 20:08:42 · 895 阅读 · 0 评论 -
Redis面试题
一、Redis对比memcached有哪些优势?redis的类型有5大类,分别是string、list、set、sorted set、hash,而memcached只有string一种类型redis数据存储在内存,但是可以持久化,可通过RDB或者AOF的方式持久化数据,RDB方式持久化会生成一个压缩过的二进制文件,它将所有的内存中的数据都保存在该文件中,redis.conf文件提供了RDB方式的三种同步机制,save 900 1save 300 10save 60 10000分别表示当在900原创 2020-05-21 13:04:15 · 176 阅读 · 0 评论