Solr Docker 容器化部署指南
Docker 部署概述
Docker 容器化部署已经成为现代应用部署的标准方式,Apache Solr 提供了官方的 Docker 镜像,支持从简单的单节点部署到复杂的分布式 SolrCloud 集群。这种部署方式具有环境一致性、资源隔离、快速扩展等优势。
Solr Docker 镜像类型
Apache Solr 提供两种官方 Docker 镜像:
1. 完整版镜像
1 | solr:<version> |
特点:
- 包含完整的 Solr 发行版
- 集成所有标准插件和工具
- 镜像体积较大但功能完整
- 适合功能需求复杂的部署
2. 精简版镜像
1 | solr:<version>-slim |
特点:
- 移除了非核心组件和工具
- 镜像体积更小,启动更快
- 适合资源受限或简单部署场景
- 保留核心搜索和索引功能
基础部署模式
1. 单节点 Solr 服务器
快速启动
1 | # 创建数据目录 |
命令解析:
-d
- 后台运行容器-v "$PWD/solrdata:/var/solr"
- 数据持久化挂载-p 8983:8983
- 端口映射--name my_solr
- 容器命名solr-precreate gettingstarted
- 预创建名为 “gettingstarted” 的集合
访问验证
启动后可通过以下方式访问:
- Web 管理界面:http://localhost:8983/solr
- API 端点:http://localhost:8983/solr/gettingstarted
2. 使用 Docker Compose 部署
单节点配置
1 | version: '3.8' |
配置说明:
- 持久化存储:使用 Docker 卷保证数据持久性
- 健康检查:定期检查服务健康状态
- 内存配置:通过环境变量设置堆内存大小
- 自动重启:容器异常时自动重启
SolrCloud 分布式部署
1. 基础 SolrCloud 配置
完整的 Docker Compose 配置
1 | version: '3.8' |
2. 启动和管理集群
启动集群
1 | # 启动所有服务 |
创建分布式集合
1 | # 进入任意 Solr 容器 |
集合和核心管理
1. 预创建集合
单节点预创建
1 | # 启动时预创建集合 |
SolrCloud 预创建
1 | services: |
2. 动态集合管理
通过管理界面
- 访问 Solr 管理界面:http://localhost:8983/solr
- 选择 “Collections” 选项卡
- 点击 “Add Collection” 创建新集合
- 配置分片和副本参数
通过 API 管理
1 | # 创建集合 |
数据加载和索引
1. 通过挂载目录加载数据
配置数据挂载
1 | services: |
2. 使用初始化脚本
自定义初始化
1 | # 创建初始化脚本目录 |
1 | services: |
3. 实时数据加载
通过 API 加载数据
1 | # JSON 格式数据 |
高级配置和优化
1. 环境变量配置
常用环境变量
1 | services: |
2. 自定义配置文件
挂载配置文件
1 | services: |
自定义 solr.in.sh
1 | # ./conf/solr.in.sh |
3. 监控和日志配置
集成监控系统
1 | services: |
生产环境部署最佳实践
1. 资源配置建议
硬件资源规划
1 | services: |
存储配置
1 | volumes: |
2. 高可用性配置
多节点部署策略
1 | services: |
负载均衡配置
1 | services: |
3. 安全配置
启用认证
1 | services: |
TLS 加密配置
1 | services: |
故障排除和调试
1. 常见问题诊断
容器启动问题
1 | # 查看容器日志 |
性能问题诊断
1 | # 查看 JVM 状态 |
2. 集群健康检查
自动化健康检查脚本
1 |
|
备份和恢复
1. 数据备份策略
自动化备份
1 | services: |
集合级备份
1 | # 创建备份 |
2. 灾难恢复
完整集群恢复
1 |
|
小结
Docker 容器化部署为 Apache Solr 提供了灵活、可扩展和易于管理的部署方式。无论是简单的单节点部署还是复杂的分布式 SolrCloud 集群,Docker 都能提供一致的部署体验。
关键要点:
- 选择合适的镜像:根据需求选择完整版或精简版镜像
- 数据持久化:正确配置数据卷确保数据安全
- 网络配置:合理规划网络架构和端口映射
- 资源管理:设置适当的资源限制和保留
- 监控和日志:集成完善的监控和日志系统
- 安全配置:启用认证和加密保护集群安全
- 备份策略:建立完善的备份和恢复机制
通过遵循这些最佳实践,可以构建稳定、高效、安全的 Solr 容器化搜索服务,满足从开发到生产的各种需求。