Linux~MQ

一、Linux

  1. 基础命令
    • 如何查看当前进程?
      ps -auxtop(实时监控)。
    • 如何查找文件?
      find /path -name "filename"locate filename
    • 如何查看系统日志?
      tail -f /var/log/syslogjournalctl(Systemd 系统)。
  2. 权限管理
    • 如何修改文件权限?
      chmod 755 filenamechmod u+x filename
    • 如何修改文件所有者?
      chown user:group filename
  3. 性能排查
    • CPU 使用率过高如何排查?
      top 找到占用高的进程,结合 straceperf 分析。
    • 如何查看内存使用情况?
      free -hvmstat
    • 如何排查磁盘 I/O 问题?
      iostatiotop
  4. Shell 脚本
    • 如何实现定时任务?
      crontab -e 添加任务。
    • 如何传递参数给脚本?
      :通过 $1, $2 等获取参数。

二、Docker

  1. 基础概念
    • Docker 和虚拟机的区别?
      :Docker 共享宿主机内核,轻量级;虚拟机需要完整操作系统。
    • 镜像(Image)和容器(Container)的关系?
      :镜像是只读模板,容器是镜像的运行实例。
  2. 常用命令
    • 如何构建镜像?
      docker build -t image-name .
    • 如何进入运行中的容器?
      docker exec -it container-id /bin/bash
  3. 高级问题
    • Dockerfile 中 COPYADD 的区别?
      ADD 支持自动解压和远程 URL,COPY 仅复制本地文件。
    • 如何限制容器资源?
      docker run --memory=1g --cpus=2
    • Docker 网络模式有哪些?
      bridge(默认)、hostnoneoverlay
  4. 实战场景
    • 如何持久化容器数据?
      :使用数据卷(Volume)或绑定挂载(Bind Mount)。
    • Docker Compose 和 Docker Swarm 的区别?
      :Compose 用于单机多容器编排,Swarm 是 Docker 原生的集群管理工具。

三、Redis

  1. 核心概念
    • Redis 支持哪些数据类型?
      :String、List、Hash、Set、Sorted Set、Bitmaps 等。
    • 什么是缓存穿透/雪崩/击穿?如何解决?
      • 穿透:查询不存在的数据 → 布隆过滤器。
      • 雪崩:大量缓存同时过期 → 随机过期时间。
      • 击穿:热点 key 失效 → 互斥锁或永不过期。
  2. 持久化
    • RDB 和 AOF 的区别?
      :RDB 是快照,恢复快但可能丢失数据;AOF 记录写操作,更安全但文件大。
    • 如何选择持久化方式?
      :生产环境通常同时开启 RDB 和 AOF。
  3. 高可用
    • 主从复制原理?
      :主节点异步复制数据到从节点。
    • 哨兵(Sentinel)和 Cluster 的区别?
      :哨兵监控主从故障转移,Cluster 分片存储数据。
  4. 性能优化
    • 如何减少大 Key 的影响?
      :拆分大 Key 或使用压缩算法。
    • Redis 为什么快?
      :内存操作、单线程避免上下文切换、I/O 多路复用。

四、SpringCloud

  1. 核心组件
    • Eureka 和 Nacos 的区别?
      :Nacos 支持动态配置管理和服务发现,Eureka 仅服务发现。
    • Ribbon 的负载均衡策略有哪些?
      :轮询、随机、加权响应时间等。
  2. 服务治理
    • Hystrix 的作用?
      :服务熔断、降级、隔离,防止雪崩效应。
    • Gateway 和 Zuul 的区别?
      :Gateway 基于异步非阻塞模型(Netty),性能更高。
  3. 配置中心
    • Spring Cloud Config 如何实现动态刷新?
      :通过 @RefreshScope 注解 + Spring Cloud Bus 通知。
    • 如何保证配置安全?
      :加密敏感配置(如使用 Jasypt)。
  4. 分布式事务
    • Seata 的 AT 模式原理?
      :通过全局锁 + 反向 SQL 日志实现两阶段提交。

五、MQ(消息队列)

  1. 核心概念
    • 为什么使用 MQ?
      :解耦、异步、削峰填谷。
    • 如何保证消息不丢失?
      :生产者确认(ACK)、MQ 持久化、消费者手动提交。
  2. 常见问题
    • 如何处理消息重复消费?
      :幂等性设计(如唯一 ID + 数据库去重)。
    • 如何保证消息顺序性?
      :单分区(Kafka)或同一队列(RabbitMQ)顺序消费。
  3. 对比与选型
    • Kafka 和 RabbitMQ 的区别?
      :Kafka 高吞吐适合日志场景,RabbitMQ 功能丰富适合业务消息。
    • RocketMQ 的特性?
      :支持事务消息、延迟消息、消息轨迹。
  4. 实战场景
    • 消息堆积如何处理?
      :增加消费者、设置过期时间、批量处理。
    • 如何实现延迟队列?
      :RabbitMQ 死信队列,RocketMQ 内置延迟级别。

高频综合问题

  1. 如何用 Docker 部署 SpringCloud 微服务?
    :打包镜像 → 使用 Docker Compose 定义服务依赖 → 配置网络和卷。
  2. Redis 在 SpringCloud 中如何实现分布式锁?
    SET key value NX EX timeout + Lua 脚本释放锁。
  3. 如何通过 MQ 实现最终一致性?
    :生产者发送事务消息 → 消费者处理成功后确认。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值