2019java开发面试问答合集(附答案)

  • 时间:
  • 浏览:0

zookeeper

proxy_pass请求在后台跳转,不影响浏览器url

rewrite会发起3xx请求,影响浏览器url

nginx和tomcat的区别

事务有十个 价值形式acid

那先 是docker容器,那先 是docker镜像

集群蕴藏并有的是角色,leader,follower和observer,leader负责写操作,保证集群事务的顺序性,follower参与选举,observer负责读操作。必须当集群初始化和领导者一蹶不振 多数派支持刚刚地处领导者选举。

host模式

sed -i "s/x/y/g" *

一有兩个 多多文件中可不都要使用vim

tr命令替换

aws gsub函数

常用的查看cpu,内存,网络,磁盘的命令有那先

docker file COPY 和 ADD的区别

怎么都能能批量替换文本中的字符串

a:原子性,事务中的操作不可分割,要么同去成功,要么同去失败

c: 一致性,数据库中的数据什么都有我完正的,也蕴藏各资源状态的一致

i:隔离性,事务之间要有当事人的工作空间,必须相互干扰

d:持久性,事务完成后数据要落盘

数据库的事务是使用undo和redo日志做的,undo会记录未提交操作的数据用来回滚,redo记录已提交操作的数据落盘。

常用的分布式事务有几种办法:

正向代理代理的是客户端,服务端我什么都有我知道真正的客户端是谁,场景如vpn

反向代理代理的是服务端,客户端我什么都有我知道真正的服务端是谁,场景如负载均衡

DNS

other container模式

正向解析是指根据域名找到ip地址

反向解析是根据ip地址找到域名,通常用来屏蔽某个ip上的域名刚刚 邮件

一有兩个 多多域名解析的过程

分布式事务为什么在么在会 做

配置管理,刚刚 强一致性,可不都要存放集群配置

集群管理,有新机器加入时在指定目录创建临时znode,什么都有我集群所有机器对目录创建watch,当有机器断连时临时znode会自动删除,集群机器收到通知

分布式锁,集群机器同去创建znode,创建成功的抢到锁,zonde删除释放锁

队列,采用编号znode,按照编号顺序依次执行

集群

域名正向解析和反向解析

使用场景

都要java学习路线图的私信笔者“java”领取哦!另外喜欢这篇文章的可不都要给笔者点个赞,关注一下,每天刚刚分享Java相关文章!还有不定时的福利赠送,包括采集的学习资料,面试题,源码等~~

客户向本地dns服务器发起请求,本地dns服务器一层一层向上递归查询是是否域名解析,直到根服务器

根服务器返回顶级域的dns服务器地址给本地服务器,本地服务器迭代查询:根-顶级域-二级域-三级域,直到某个域服务器返回地址给本地服务器,本地服务器缓存该解析,什么都有我返回给客户端

网络

和宿主机共用网络namesapce,端口直接使用宿主机的端口

客户端发起请求,发送syn报文,seq=x

服务端收到syn请求后,返回ack,此时ack=x+1,什么都有我也返回一有兩个 多多syn,seq=y

客户端收到syn后,返回ack,此时ack=y+1,连接建立

四次挥手

tcp/ip协议,三次握手,四次挥手

2pc,两阶段提交,服务a发prepare请求给协调器,协调器将请求写到本地日志,什么都有我发送prepare给某些各服务,执行者收到请求后执行本地事务,但不需要commit,什么都有我将结果返回给协调器,协调器判断所有的返回刚刚 都成功则让所有执行者提交commit,刚刚 有失败的则完正回滚。

消息表,服务a在发起事务的刚刚 执行本地事务的消息同去写入消息表什么都有我发送消息给服务b,服务b在完成本地事务后回消息给服务a调度器清除消息表,刚刚 必须清除,则事务调度器读撤除息表发送消息给服务b,这就都要服务b有幂等性

消息事务,消息事务是通过消息上边件实现的类似2pc功能比如rocketmq,服务a提交prepare给mq,什么都有我执行本地事务,刚刚 失败则回滚,刚刚 成功则确认prepare消息,mq大约事务调度器会定期扫描prepare消息询问发送方是否要发送消息,而消费方刚刚 失败则都要有兩个 多劲重试

TCC事务补偿,先锁住资源,什么都有我使用锁住的资源执行业务逻辑,刚刚 失败则释放资源,刚刚 成功则落盘。

分布式cap,base理论

三次握手

10G整数文件中寻找中位数刚刚 第K大数

将一有兩个 多多大的系统拆分成多个细小的子系统,子系统之间通过网络通信的构成的大系统称为分布式系统。

COPY指令才能将构建命令所在的主机本地的文件或目录,qq克隆好友 到镜像文件系统。

ADD指令不仅才能将构建命令所在的主机本地的文件或目录,什么都有我才能将远程URL所对应的文件或目录,作为资源qq克隆好友 到镜像文件系统,还可不都要解压压缩文件并把它们上加到镜像中。

怎么都能能缩小docker镜像的体积

top

查看cpu命令:mpstat

查看内存:free

查看网络:netstat lsof查看端口,统计句柄

查看磁盘:df du fdisk

nginx

proxy_pass和rewrite的区别

客户端发起请求,发送fin报文,seq=x

服务端收到fin报文后,返回ack,此时ack=x+1,此步骤确认客户端已不需要发送数据,什么都有我服务端数据刚刚 必须返回

服务端确认数据完正返回后,发送fin报文,seq=y,告诉客户端已出理 完,可不都要关闭

客户端返回ack=y+1,关闭连接

snat 和 dnat

原理

Docker镜像用于创建容器。使用build命令创建镜像,什么都有我在使用run启动时它们将生成容器。

Docker容器包括应用多多应用程序 及其所有依赖项,但与某些容器共享内核,作为主机操作系统上用户空间中的独立多多应用程序 运行。

docker run和docker start有那先 区别

nginx是http server,常用做静态内容服务和代理服务器,直接外来请求转发给上边的应用服务器(tomcat,Django等)

tomcat是一有兩个 多多application server,更准确的说是一有兩个 多多servlet/jsp应用的容器,出理 http请求并生成动态页面。

正向代理和反向代理

数据库乐观锁,利用了mysql update行锁的特点,在每次update前先select出数据什么都有我根据数据的版本进行update,刚刚 版本变了就不更新并把错误抛给用户重试最终达到一致。

redis setnx,当该key不地处时就设置value,刚刚 刚刚 地处该key了就直接返回。

zookeeper 必须重复创建同一有兩个 多多节点,创建持久结点时都要主动删除结点释放,创建临时结点时断开连接就会释放

那先 是分布式系统,分布式原理是那先

尽量在同一层运行更多的命令

刚刚 copy,add,run刚刚生成新的层,尽量使用run命令执行copy和add,如wget

移除编译打包依赖

使用小体积的 Alpine 基础镜像

docker的网络模式

分布式系统的cap理论,c一致性,a可用性,p分区容错性,刚刚 网络和机器导致 不可控什么都有p是一定要保障的,大伙儿都知道cap必须同去满足,什么都有必须在c和a中选用,什么都有我有base理论,ba基本可用,s软状态(在最终一致前允许地处不一样的状态),e最终一致

zookeeper的核心是原子广播,采用zab协议,主要有恢复模式(选主)和广播模式(同步)

docker run = 创建容器docker create + 启动容器docker start

采用基于字节的桶排序将数字分到不同的桶中,比如找到第k大数,则先找出每个桶中的第k大数,在比较。

整形是4byte,有32位,先按高八位建25十个 桶

刚刚 内存必须2g,则每次读取2g的数据遍历装在 25十个 桶中,并统计25十个 桶的量,2g读取刚刚 将每个桶的数据导出到磁盘,循环读完10g数据。

这时根据25十个 桶的计数计算出中位数在哪个桶,什么都有我开使英语 建后续8位的桶,直到最后低8位也分完,这刚刚 对桶内数据进行快排即可。

怎么都能能实现分布式锁

内网机器要访问外网,都要snat,防火墙修改来源ip为公网出口ip发送请求包给外网,外网机器接收到的请求包的来源是公网出口ip而完正刚刚真正的内网ip

外网访问内网机器,都要dnat,外网发送请求包目标地址是公网出口ip,防火墙根据路由修改请求包的目标为内网ip发送给内网机器,内网机器返回时防火墙修改源地址为公网出口ip返回给外网机器

docker

和host模式很像,什么都有我共用的是从前容器的网络namespace