《JAVA八股真解》十、部署

#JAVA##JAVA面经##JAVA内推#

1. Nginx 的作用

Nginx 是一个高性能的 HTTP 和反向代理服务器,广泛应用于 Web 服务的前端代理与负载均衡。

主要功能:

  • 反向代理:将多个服务器虚拟成一台服务器,对外提供统一入口。
  • 负载均衡:将请求均匀分配到多台后端服务器,减轻单台压力,提升整体吞吐量。
  • 动/静分离:将静态资源(如图片、CSS、JS)由 Nginx 直接响应,动态请求转发给应用服务器,提高访问速度。
  • 高并发处理:基于事件驱动模型,支持大量并发连接,适合高流量场景。

典型应用场景

  • 网站前端代理
  • API 网关
  • CDN 加速节点

2. Linux 常用命令

Linux 是大多数服务器的操作系统,熟悉常用命令是运维工作的基础。

系统类命令:

  • ifconfig:查看网络接口信息(IP 地址、MAC 地址等)。
  • reboot:重启系统。
  • free:查看内存使用情况。
  • df:查看磁盘空间使用情况。
  • top:实时监控系统资源占用(CPU、内存、进程等)。
  • lsof -i:端口号:查看指定端口对应的进程(常用于排查端口冲突)。

进程类命令:

  • ps -ef | grep java:查看当前运行的所有 Java 进程。
  • kill -9 PID:强制终止指定 PID 的进程(PID 为进程 ID)。
  • java -Xmx32g -Xms1g -jar myapp.jar:启动 Spring Boot 应用(JAR 文件)。
  • nohup java -Xmx32g -Xms1g -jar myapp.jar &:后台运行 JAR 文件,忽略挂断信号。

文件类命令:

  • tail -10f order.log:实时动态查看日志文件最后 10 行内容,并持续监控新增日志(面试常考)。
  • tail -n 10 order.log:非动态查看日志文件最后 10 行内容,不监控后续更新。
  • find /path/to/directory -name "*.txt":在指定目录下查找所有扩展名为 .txt 的文件。
  • cat file.txt:显示文件内容。

提示tail -f 是开发调试中常用的命令,用于实时观察日志输出。

3. Jenkins 自动部署原理

Jenkins 是一个开源的持续集成与交付工具,支持自动化构建、测试和部署流程。 alt

工作流程:

  1. 配置项目:在 Jenkins 中创建新项目,设置项目名称、源码管理方式(如 Git)、构建触发条件等。
  2. 源码拉取:当触发条件满足时(如代码提交),Jenkins 从 Git 仓库获取最新代码。
  3. 构建过程
    • 设置构建环境:指定 JDK 版本、Maven 配置等。
    • 安装依赖:通过 Maven 下载并安装项目所需依赖包。
    • 编译项目:执行编译命令,生成可执行的字节码文件。
    • 运行测试:执行单元测试、集成测试,确保代码质量和功能正确性。
    • 打包发布:将编译后的代码打包成 JAR/WAR 文件,准备部署。
  4. 部署到服务器
    • 远程拷贝:通过 SSH 将构建产物复制到目标服务器。
    • 容器化部署:使用 Docker 或其他容器技术,在目标服务器上创建并运行包含应用的容器。
  5. 验证部署:通过发送请求或执行自动化测试,验证部署的应用是否正常运行。

优势

  • 实现 CI/CD 流程自动化。
  • 减少人工操作,提升交付效率。
  • 支持多种插件扩展,适应不同需求。

适用场景

  • 微服务架构下的持续交付。
  • 多环境部署(开发、测试、生产)。
#JAVA##java##面经#
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务