odoo18应用、队列服务器分离(SSHFS)

目录

[1. 背景](#1. 背景)

2.环境准备

[3. conf配置](#3. conf配置)

3.1应用服务器

[3.2 队列服务器](#3.2 队列服务器)

4.结果演示


1. 背景

在大型企业或高并发业务场景下,Odoo 的应用层和后台任务处理层往往会产生资源竞争。随着业务规模的增长,用户在操作界面(应用服务器)与后台异步任务(队列服务器)之间的耦合问题会逐渐凸显。将 Odoo 应用服务器 与 Queue Job 队列服务器 进行架构分离,是一种更高效、可扩展、符合现代分布式设计的方案。本文介绍基于 SSHFS 模式的 队列服务器和应用服务器分离。

2.环境准备

准备两个服务器

服务器1 4核4G 10.1.8.15 odoo 的data_dir 路径 /opt/odoo18_data

服务器2 2核2G 10.1.20.2

这两个服务器的 内网IP位于同一个局域网下面

应用服务器:安装 openssh-server

bash 复制代码
sudo apt update && sudo apt install openssh-server

队列服务器:

安装sshfs

sudo apt install sshfs

实际挂载点创建

sudo mkdir -p /opt/odoo18_data

sudo sshfs -o allow_other,default_permissions ubuntu@10.1.8.15:/opt/odoo18_data /opt/odoo18_data

ubuntu 是服务器1 的登录名

挂载之后可以去看一下应用服务器的这个文件夹是否过来了

3. conf配置

3.1应用服务器

bash 复制代码
[options]
addons_path = /home/ubuntu/odoo18/odoo/addons,/home/ubuntu/odoo18/myaddons
db_host = localhost
proxy_mode = True
gevent_port = 8072
db_port = 5432
db_name = False
bin_path = /usr/local/bin
http_port = 8068
db_user = odoo
db_password = odoo
logfile = ./odoo18.log
limit_request = 8192
limit_time_cpu = 600
limit_time_real = 60000
limit_time_real_cron = -1
list_db = True
server_wide_modules = base,web
data_dir = /opt/odoo18_data
workers = 4                 
max_cron_threads = 2        
limit_memory_hard = 2684354560  
limit_memory_soft = 2147483648

这里的应用服务器用的是 NGINX 代理本地的 localhost:8068

server_wide_modules 去除 queue_job 即应用服务器不跑队列

3.2 队列服务器

bash 复制代码
db_port = 5432
db_name = False

db_user = odoo
db_password = odoo
#logfile = ./odoo18.log
limit_request = 8192
limit_time_cpu = 600
limit_time_real = 60000
limit_time_real_cron = -1
list_db = True
server_wide_modules = base,web,queue_job
data_dir = /opt/odoo18_data
              
max_cron_threads = 0
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
http_enable = False

[queue_job]
channels = root:4
port = 8068
host = 10.1.8.15

注意: http_port 需要设置为False,因为我们的队列服务器已经不需要开启HTTP服务了,http_port 参数也不需要设置

关于 queue_job 的配置说明

channels = root:4 设置默认队列为 root队列,开启四个 work

port = 8068

host = 10.1.8.15

队列完成任务的时候向应用服务器 发起回调;host、port 也就是应用服务器的地址和http端口

4.结果演示

当我们只开启应用服务器,生成队列任务的时候, 任务都是等待状态

这时开启队列服务器的进程:

可以看到 通过应用服务器生成的任务这时已经开始执行,通过应用服务器1 的queue_job的web页面可以看到任务已经是完成状态。 到此 基于 SSHFS 模式的 应用服务器和队列服务器基本配置完成,但是相对于NFS,SSHFS的性能还是不大行,当并发量大起来的时候还是得考虑 NFS 进行文件共享,后续有空再出一个NFS的教程...

相关推荐
云贝贝贝19 分钟前
腾讯云 TDSQL(MySQL 版)运维高频 6 坑:代理路由、读写分离、分片键、监控、PITR
运维·mysql·腾讯云
小五传输30 分钟前
FTP替代怎么做?医院文件安全传输选型与迁移指南
大数据·运维·安全
金智维科技官方34 分钟前
财务核算如何提效?这三条核心链路正在加速自动化
运维·人工智能·ai·自动化·财务·智能体
tang7778936 分钟前
反爬虫场景下代理IP池的动态扩容与失效IP自动清理方案实现
linux·服务器·网络·爬虫代理·住宅代理ip
新时代牛马2 小时前
Linux 系统调用与IPC 完整篇:从syscall 入口、VDSO 到pipe/shm/futex 选型
linux·运维·服务器
luckystar513~2 小时前
Hermes 实战 :系列收官/生产化——安全审计与运维
运维·人工智能·安全·agent·智能体开发·hermes实战·智能体网关
大模型码小白2 小时前
AI大模型接入SDK:人工智能核心概念与发展史
大数据·运维·人工智能·安全·prompt
野熊佩骑3 小时前
Kubernetes实战系列文章(三) 之 K8S运维常用命令
linux·运维·docker·微服务·云原生·容器·kubernetes
小HANN3 小时前
Linux建站实战:CentOS7+LNMP 从零部署 ECShop 开源电商系统
linux·运维·服务器·经验分享
三8444 小时前
SSRF 从入门到实战:原理、危害与基础利用
服务器·网络安全·ssrf·#web安全