DevOps 面试
Nginx
Nginx 是什么?它有哪些应用场景?
Nginx 是一种高性能的服务器、反向代理服务器。
用于反向代理、负载均衡、网关。
什么是正向代理和反向代理,如何使用 Nginx 做反向代理?
配置 domain、upstream
domain 配置将域名请求,根据 context 映射到不同 upstream
在 upstream 中配置反向映射的 IP+端口,并设置负载均衡、重试规则
Nginx 是一种高性能的服务器、反向代理服务器。
用于反向代理、负载均衡、网关。
配置 domain、upstream
domain 配置将域名请求,根据 context 映射到不同 upstream
在 upstream 中配置反向映射的 IP+端口,并设置负载均衡、重试规则
进程是正在运行的程序,其占用系统资源是独立的。
线程是系统调度的最小单位,其使用系统资源是共享的。
互斥
占有并等待
不可强占
循环依赖
共享内存
MQ
RPC
锁
管程(synchronized)
信号量
工程最佳实践,编程范式。
饿汉式
懒汉式
双重锁
一共有 23 种主流设计模式
Dubbo 是一款高性能、轻量级的开源 Java RPC 框架。
Dubbo 提供了三大核心能力:
什么是服务注册与发现?
服务注册与发现是微服务的核心基础设施,通过解耦服务地址硬编码,实现动态扩缩容和故障自动恢复。
订单服务
启动后,向注册中心注册:"order-service: 192.168.1.100:8080"
。支付服务
需要调用订单服务
时,从注册中心获取所有可用的order-service
节点列表。判断 Java 对象是否可以被回收有两种方法:
引用计数算法(Reference Counting)的原理是:在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。
引用计数算法简单高效,但是存在循环引用问题——两个对象出现循环引用的情况下,此时引用计数器永远不为 0,导致无法对它们进行回收。
扩展阅读:
事务指的是满足 ACID 特性的一组操作。事务内的 SQL 语句,要么全执行成功,要么全执行失败。可以通过 Commit
提交一个事务,也可以使用 Rollback
进行回滚。通俗来说,事务就是要保证一组数据库操作,要么全部成功,要么全部失败。
“索引”是数据库为了提高查找效率的一种数据结构。
日常生活中,我们可以通过检索目录,来快速定位书本中的内容。索引和数据表,就好比目录和书,想要高效查询数据表,索引至关重要。在数据量小且负载较低时,不恰当的索引对于性能的影响可能还不明显;但随着数据量逐渐增大,性能则会急剧下降。因此,设置合理的索引是数据库查询性能优化的最有效手段。