Docker 基础(四)- Compose

Compose 的简介和安装

文档参考快速入门安装综述Linux 安装文档

在单容器时代,我们使用 docker run 配合各种参数就能玩得风生水起。但随着业务演进到微服务时代,问题接踵而至:一个标准的电商系统可能需要 1 个 Spring Boot 业务容器、1 个 Redis 缓存、1 个 MySQL 数据库、1 个 RabbitMQ 消息队列。如果依然用普通的 Docker 命令,你必须手动敲 4 次极其冗长的 docker run,还要小心翼翼地处理它们的启动顺序、手动创建网络并把它们一个个拉进来。一旦漏掉一个参数,整个系统就会瘫痪。为了解决单机多容器分布式应用的编排与部署痛点,生产的标配工具就是 Docker Compose


Docker 基础(三)- network

在 Docker 的世界里,Network(网络)是赋予容器沟通能力的灵魂所在。默认情况下,容器是一个个完全隔离的、孤独的沙盒。如果没有网络,它们既无法被外部用户访问,之间也无法互相通信。在实际的案例中,Docker 网络最核心的就是弄懂它的 4 种原生网络模式(Bridge、Host、None、Container)以及大厂最爱用的自定义网络。


Java NIO - 使用 netty 模拟 dubbo RPC 远程服务调用


使用 Netty 从零实现一个 RPC(类似 Dubbo)是一个非常经典的工程实践案例。为了遵循由简单到复杂的工程原则,我们将按以下五个步骤逐步进行深化。

  • Stage 1:跑通 Netty 最基础的通信,用反射完成一个最基本的调用。
  • Stage 2:引入 RequestId 和 CompletableFuture,完成单连接多路复用。
  • Stage 3:引入心跳和重连,保证了长连接的网络健壮性。
  • Stage 4:重构掉废弃 API,设计自定义二进制私有协议头和高性能 Kryo 序列化。
  • Stage 5:跳出单机思维,引入服务注册发现中心软负载均衡轮询算法。