Austin容器化部署:Docker Compose一键部署指南

Austin容器化部署:Docker Compose一键部署指南

【免费下载链接】austin 消息推送平台:fire:推送下发【邮件】【短信】【微信服务号】【微信小程序】【企业微信】【钉钉】等消息类型。 【免费下载链接】austin 项目地址: https://gitcode.com/GitHub_Trending/au/austin

痛点:传统部署的复杂性

你是否还在为消息推送平台的复杂部署而头疼?面对MySQL、Redis、Kafka、Flink、Nacos、XXL-JOB等多个中间件的安装配置,传统的手动部署方式不仅耗时耗力,还容易出错。每个中间件都需要单独安装、配置、启动,版本兼容性问题更是让人防不胜防。

读完本文,你将获得:

  • ✅ 完整的Austin平台Docker Compose部署方案
  • ✅ 一键启动所有依赖中间件的配置方法
  • ✅ 生产环境级别的容器化部署最佳实践
  • ✅ 详细的配置说明和故障排查指南
  • ✅ 可视化监控和日志收集的集成方案

架构概览:容器化部署全景图

Austin消息推送平台采用微服务架构,依赖多个中间件组件。通过Docker Compose,我们可以将整个系统容器化,实现一键部署。

mermaid

环境准备:Docker与Docker Compose安装

系统要求

  • 操作系统:CentOS 7.6+
  • 内存:建议16GB+(最小8GB)
  • 存储:50GB+可用空间
  • Docker:20.10+
  • Docker Compose:1.24+

安装步骤

# 安装GCC环境
yum -y install gcc gcc-c++

# 安装Docker依赖
yum install -y yum-utils device-mapper-persistent-data lvm2

# 设置阿里云镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 更新软件包索引
yum makecache fast

# 安装Docker CE
yum -y install docker-ce

# 启动Docker
systemctl start docker
systemctl enable docker

# 安装Docker Compose
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 国内镜像加速
# curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# 添加执行权限
chmod +x /usr/local/bin/docker-compose

# 创建软链接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# 验证安装
docker-compose --version

核心配置:Docker Compose详解

完整的docker-compose.yml配置

Austin项目提供了完整的Docker Compose配置文件,位于项目根目录的docker-compose.yml文件中。该文件定义了所有必需的中间件服务:

version: '3'
services:
  austin-mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root123_A
      TZ: Asia/Shanghai
    volumes:
      - ./doc/sql:/docker-entrypoint-initdb.d
    ports:
      - "3306:3306"

  austin-redis:
    image: redis:3.2
    volumes:
      - ./doc/docker/redis/redis.conf:/usr/local/etc/redis/redis.conf
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - "6379:6379"

  austin-zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"

  austin-kafka:
    image: wurstmeister/kafka
    environment:
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://austin-kafka:9092
      KAFKA_ZOOKEEPER_CONNECT: austin-zookeeper:2181
      KAFKA_CREATE_TOPICS: "austinBusiness:1:1,austinRecall:1:1,austinTraceLog:1:1"
    ports:
      - "9092:9092"
    depends_on:
      - austin-zookeeper

  austin-xxl-job:
    image: xuxueli/xxl-job-admin:2.3.0
    environment:
      PARAMS: '--spring.datasource.url=jdbc:mysql://austin-mysql:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8 --spring.datasource.username=root --spring.datasource.password=root123_A'
    ports:
      - "8080:8080"
    depends_on:
      - austin-mysql

  austin-nacos:
    image: nacos/nacos-server:v2.1.0
    environment:
      MODE: standalone
      SPRING_DATASOURCE_PLATFORM: mysql
      MYSQL_SERVICE_HOST: austin-mysql
      MYSQL_SERVICE_DB_NAME: nacos_config
      MYSQL_SERVICE_USER: root
      MYSQL_SERVICE_PASSWORD: root123_A
    ports:
      - "8848:8848"
    depends_on:
      - austin-mysql

  austin:
    build: .
    ports:
      - "7777:7777"
    depends_on:
      - austin-redis
      - austin-mysql
      - austin-kafka
      - austin-xxl-job
      - austin-nacos

networks:
  app:
    driver: bridge

关键配置说明

服务版本端口依赖说明
MySQL5.73306-主数据库,存储业务数据
Redis3.26379-缓存和消息队列
Zookeeperlatest2181-Kafka依赖的协调服务
Kafkalatest9092Zookeeper消息队列,用于异步处理
XXL-JOB2.3.08080MySQL分布式任务调度平台
Nacos2.1.08848MySQL配置中心和服务发现
Austin应用自定义7777所有服务主业务应用

部署流程:一键启动所有服务

步骤1:克隆项目并准备环境

# 克隆项目
git clone https://gitcode.com/GitHub_Trending/au/austin.git
cd austin

# 构建Austin应用镜像
mvn clean package -DskipTests
docker build -t austin-app .

步骤2:启动所有服务

# 一键启动所有服务
docker-compose up -d

# 查看服务状态
docker-compose ps

# 查看日志
docker-compose logs -f

步骤3:验证服务状态

# 检查MySQL
docker exec -it austin-mysql mysql -uroot -proot123_A -e "SHOW DATABASES;"

# 检查Redis
docker exec -it austin-redis redis-cli -a austin ping

# 检查Kafka主题
docker exec -it austin-kafka /opt/kafka/bin/kafka-topics.sh --list --zookeeper austin-zookeeper:2181

数据库初始化:自动执行SQL脚本

Docker Compose配置中通过卷挂载实现了数据库的自动初始化:

mermaid

初始化脚本位于 doc/sql/ 目录下:

  • austin.sql - 主业务数据库表结构
  • nacos.sql - Nacos配置中心表结构
  • xxl-job.sql - XXL-JOB任务调度表结构

网络配置:服务间通信机制

Docker Compose创建了专用的桥接网络app,所有服务都在同一网络中,可以通过服务名进行通信:

mermaid

可选组件部署:监控与日志收集

Prometheus + Grafana监控

# doc/docker/prometheus/docker-compose.yaml
version: '2'
services:
  prometheus:
    image: prom/prometheus
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - "9090:9090"

  grafana:
    image: grafana/grafana
    ports:
      - "3000:3000"

Graylog日志收集

# doc/docker/graylog/docker-compose.yml
version: '3'
services:
  graylog:
    image: graylog/graylog:4.2
    environment:
      GRAYLOG_HTTP_EXTERNAL_URI: http://服务器IP:9009/
    ports:
      - 9009:9000
      - 12201:12201

故障排查与常见问题

1. 端口冲突问题

如果出现端口冲突,可以修改docker-compose.yml中的端口映射:

services:
  austin-mysql:
    ports:
      - "3307:3306"  # 外部端口:容器内部端口

2. 内存不足问题

如果服务器内存不足,可以调整JVM参数:

services:
  austin:
    environment:
      JAVA_OPTS: "-Xms512m -Xmx1024m"

3. 服务启动顺序问题

使用depends_on确保服务启动顺序:

services:
  austin:
    depends_on:
      - austin-mysql
      - austin-redis
      - austin-kafka

4. 数据持久化问题

为重要数据添加卷持久化:

services:
  austin-mysql:
    volumes:
      - mysql_data:/var/lib/mysql
      
volumes:
  mysql_data:

性能优化建议

资源配置建议

服务CPU内存磁盘网络
MySQL2核4GBSSD千兆
Redis1核2GB内存千兆
Kafka2核4GBSSD千兆
Austin应用4核8GB普通千兆

JVM调优参数

environment:
  JAVA_OPTS: "-server -Xms4g -Xmx4g -XX:NewRatio=2 -XX:SurvivorRatio=8 -XX:+UseG1GC -XX:MaxGCPauseMillis=200"

总结与展望

通过Docker Compose一键部署Austin消息推送平台,我们实现了:

  1. 标准化部署:统一的部署流程,避免环境差异导致的问题
  2. 快速启动:从零到完整环境只需几分钟时间
  3. 易于维护:版本控制和配置管理更加简单
  4. 资源隔离:每个服务独立运行,互不影响
  5. 扩展性强:轻松添加新的服务组件

未来可以进一步优化:

  • 使用Kubernetes进行容器编排
  • 实现自动化CI/CD流水线
  • 添加更完善的监控告警机制
  • 支持多环境部署(开发、测试、生产)

现在就开始你的Austin容器化之旅吧!只需简单的几条命令,就能拥有一个功能完整的消息推送平台。

【免费下载链接】austin 消息推送平台:fire:推送下发【邮件】【短信】【微信服务号】【微信小程序】【企业微信】【钉钉】等消息类型。 【免费下载链接】austin 项目地址: https://gitcode.com/GitHub_Trending/au/austin

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值