5.2 KiB
5.2 KiB
WSL环境安装指南 - RabbitMQ和OCR依赖
快速安装命令
方法1: 一键安装 (推荐)
在PowerShell或CMD中执行:
# 打开WSL并安装
wsl -d Ubuntu-22.04 -- bash -c "sudo apt-get update && sudo apt-get install -y erlang-nox rabbitmq-server && sudo service rabbitmq-server start"
方法2: 分步安装
步骤1: 打开WSL终端
# PowerShell
wsl -d Ubuntu-22.04
# 或在CMD
wsl -d Ubuntu-22.04
步骤2: 更新软件包列表
sudo apt-get update
步骤3: 安装Erlang (RabbitMQ依赖)
sudo apt-get install -y erlang-nox erlang-dev
步骤4: 安装RabbitMQ
sudo apt-get install -y rabbitmq-server
步骤5: 启动RabbitMQ服务
sudo service rabbitmq-server start
步骤6: 验证安装
# 检查RabbitMQ状态
sudo rabbitmqctl status
# 查看队列列表
sudo rabbitmqctl list_queues
步骤7: 安装Python依赖
# 安装Python包管理器
sudo apt-get install -y python3-pip
# 安装必要的Python包
pip3 install flask pika requests
验证安装
运行验证脚本:
# 在项目目录下
bash verify_installation.sh
或手动验证:
# 1. 检查Erlang
erl -version
# 2. 检查RabbitMQ
rabbitmq-server --version
# 3. 检查服务状态
sudo service rabbitmq-server status
# 4. 检查Python依赖
python3 -c "import flask, pika, requests; print('All dependencies OK')"
RabbitMQ配置
默认配置
- 主机: localhost
- 端口: 5672 (AMQP)
- 管理端口: 15672 (Web UI)
- 默认用户: guest
- 默认密码: guest
启用管理插件 (可选)
sudo rabbitmq-plugins enable rabbitmq_management
sudo service rabbitmq-server restart
访问管理界面: http://localhost:15672 (guest/guest)
创建新用户 (可选)
# 创建用户
sudo rabbitmqctl add_user ocr_user ocr_password
# 设置为管理员
sudo rabbitmqctl set_user_tags ocr_user administrator
# 设置权限
sudo rabbitmqctl set_permissions -p / ocr_user ".*" ".*" ".*"
常用命令
RabbitMQ服务管理
# 启动
sudo service rabbitmq-server start
# 停止
sudo service rabbitmq-server stop
# 重启
sudo service rabbitmq-server restart
# 查看状态
sudo service rabbitmq-server status
队列管理
# 列出所有队列
sudo rabbitmqctl list_queues
# 列出所有交换机
sudo rabbitmqctl list_exchanges
# 列出所有绑定
sudo rabbitmqctl list_bindings
# 清空队列
sudo rabbitmqctl purge_queue queue_name
用户管理
# 列出用户
sudo rabbitmqctl list_users
# 添加用户
sudo rabbitmqctl add_user username password
# 删除用户
sudo rabbitmqctl delete_user username
# 修改密码
sudo rabbitmqctl change_password username newpass
启动OCR服务
安装完成后,在WSL中启动OCR服务:
1. 进入项目目录
cd /mnt/c/Users/WIN10/Desktop/work/26th-week/report-detect-backend
2. 启动Flask API
cd python_api
python3 ocr_api_server.py
3. 启动RabbitMQ消费者 (新终端)
cd /mnt/c/Users/WIN10/Desktop/work/26th-week/report-detect-backend/python_api
# 设置环境变量
export FLASK_HOST=127.0.0.1
export FLASK_PORT=8081
export RABBITMQ_HOST=localhost
export RABBITMQ_PORT=5672
# 启动消费者
python3 ocr_task_consumer.py
4. 在Windows中启动Java应用
# PowerShell
mvn clean package
java -jar target/report-detect-backend-1.0.0.jar
故障排查
RabbitMQ无法启动
# 查看日志
sudo cat /var/log/rabbitmq/rabbit@hostname.log
# 检查Erlang版本兼容性
erl -version
连接被拒绝
# 检查RabbitMQ是否运行
sudo service rabbitmq-server status
# 检查端口是否被占用
sudo netstat -tlnp | grep 5672
Python导入错误
# 重新安装依赖
pip3 install --upgrade flask pika requests
WSL网络问题
如果WSL无法访问Windows服务:
# 检查Windows IP
cat /etc/resolv.conf | grep nameserver
# 测试连接
ping -c 3 $(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
开机自启动
设置RabbitMQ开机自启
# 方法1: 使用systemd
sudo systemctl enable rabbitmq-server
# 方法2: 使用sysvinit
sudo update-rc.d rabbitmq-server defaults
设置Flask和消费者开机自启
创建systemd服务文件:
sudo nano /etc/systemd/system/ocr-flask.service
内容:
[Unit]
Description=OCR Flask API
After=network.target rabbitmq-server.service
[Service]
Type=simple
User=your_username
WorkingDirectory=/mnt/c/Users/WIN10/Desktop/work/26th-week/report-detect-backend/ocr-resources
ExecStart=/usr/bin/python3 ocr_api_server.py
Restart=on-failure
[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload
sudo systemctl enable ocr-flask
sudo systemctl start ocr-flask
性能优化
RabbitMQ内存限制
编辑 /etc/rabbitmq/rabbitmq.conf:
vm_memory_high_watermark.relative = 0.6
vm_memory_high_watermark_paging_ratio = 0.75
文件描述符限制
# 检查当前限制
ulimit -n
# 增加限制
echo "* soft nofile 65536" | sudo tee -a /etc/security/limits.conf
echo "* hard nofile 65536" | sudo tee -a /etc/security/limits.conf