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

news/2025/9/30 9:38:51/文章来源:https://www.cnblogs.com/tlnshuju/p/19120014

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

2025-09-30 09:33  tlnshuju  阅读(0)  评论(0)    收藏  举报

目录

1. 背景

2.环境准备

3. conf配置

3.1应用服务器

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

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应用服务器

[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 队列服务器

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的教程...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库服务分布架构(MyCAT)

数据库服务分布架构(MyCAT)1.18.1数据库服务分布架构概述介绍分布式架构理念:(基于业务逻辑分布式/基于程序逻辑分布式)●架构演变过程早期,为了满足主要业务功能需求,可以将所有程序部署在一个服务器节点上;架构…

题解:P14038 [PAIO 2025] Adventure Plan

P14038:差分约束、最短路、负环。第一次给官方比赛投题,来写发题解 /se 子任务 \(1,3,4\) 随便乱做就好了,没啥技术含量。 设 \(x_u\) 表示从 \(0\) 到 \(u\) 路径的长度,那么一条有向边 \(u\stackrel{[l,r]}{\to}…

20231414_王仕琪_密码技术密码杂凑算法学习笔记

20231414_王仕琪_密码技术密码杂凑算法学习笔记

网站备案关闭网站高性能网站开发 书籍

在数字化时代,数据存储的重要性不言而喻。然而,有时候我们会遭遇一些意想不到的困扰,比如存储在D盘的数据突然消失。这不仅可能导致重要文件的丢失,还可能影响我们的工作和生活。本文将探讨D盘数据消失的可能原因,提供…

做一家网站需要多少钱网站建设和app开发

函数是对程序逻辑进行结构化或过程化的一种编程方法。能将整块代码巧妙地隔离成易于管理 的小块,把重复代码放到函数中而不是进行大量的拷贝--这样既能节省空间,也 有助于保持一致性,因为你只需改变单个的拷贝而无须去寻找再修改大量复制代码…

租赁服务器做电影网站网站开发的税率

1、链接测试:a:进入页面后点击链接是否正常跳转 b:单独将链接复制到浏览器里面是否正常展示页面(如果需要登录的网站,还需要考虑个人中心等需要登录的功能在未登录成功时以及登录成功后直接通过链接打开的情况) 2、菜单测试&#…

做宠物服务的相关网站简单的购物网站设计

转载自 关于Spring底层原理面试的那些问题,你是不是真的懂Spring? 1.什么是 Spring 框架?Spring 框架有哪些主要模块? Spring 框架是一个为 Java 应用程序的开发提供了综合、广泛的基础性支持的 Java 平台。Spring帮助开发者解…

深圳网站制作服什么是电子商务网站开发

10日,记者从市教育局获悉,我市中招理化生实验操作考试、信息技术考试时间确定,分别在4月1日至23日、4月1日至30日举行。“目前,城市区义务教育学校已完成属地化管理工作。为进一步做好城市区中招工作,提高工作效率&…

调度算法易错概念总结

临界区是指进程中用于访问临界资源的那段代码 临界区时指并发进程访问共享变量段段那段代码 不需要信号量就能实现的功能是进程的并发执行并发进程如果不经过处理是异步的,因此要进行同步互斥锁是用来解决临界区的问题…

响应式网站搭建开发app平台需要多少钱

自动驾驶建图–道路边缘生成方案探讨 一、背景 对于自动驾驶来说,建图是必不可少的,目前主流厂商技术都在从HD到"无图"进行过渡筹备中,不过想要最终实现真正的"无图"还是有很长的一段路要走。 对于建图来说,…

堆设置了8G,java进程却占用了12G内存

简单来说,当你的JVM堆内存(Heap)使用了8GB时,整个Java进程实际占用的物理内存(常被称为RSS - Resident Set Size)会远大于8GB。一个合理的估算是在 10GB 到 12GB 之间,甚至可能更高,具体取决于你的应用特性和J…

Huxe 推出主动式 AI 音频服务,无感内容消费;OpenAI 推出 ChatGPT Pulse:主动提供个性化信息丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 , 每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 技术」、「有亮点的产品」、「有思考的文章」、「有…

厦门旅游网站建设目的哈尔滨网站设计哪里有做

什么是数据结构?数据结构是什么?要了解数据结构,我们要先明白数据和结构,数据就是一些int char 这样的变量,这些就是数据,如果你是一个篮球爱好者,那么你的球鞋就是你的数据,结构就是…

C++学习:C++类型转换专栏 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

网站多域名怎么做北京建机职业技能鉴定中心证书查询

1、 你有几次遇到需要解压 .tar 文件但无法记住所需的确切参数?别名可以帮助你!只需将以下内容添加到 .bash_profile 中,然后使用 untar FileName 解压缩任何 .tar 文件。 alias untartar -zxvf 2、 下载文件时,如果出现问题想要…

太原网站建设找山西云起时企业宣传片拍摄思路

小弟多次想把调用门和RPL分开单独说,但几次尝试都没有成功,我发现它们之间是紧偶合、密不可分,RPL的产生主要是为解决系统调用时的“越权”问题,系统调用的实现方式中,以调用门和中断门最为适合。由于以后我们将用中断…

网站不能上传附件ps软件下载中文版免费下载

面向对象 面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。方法:类中定义的函数。类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实…

kubelet源码阅读(三)——kubelet调用device plugin的allocate接口

kubernetes-master/pkg/kubelet/cm/devicemanager/endpoint.go 入参:devs是设备ID 响应:AllocateResponse包含了需要注入到容器中的工作件(envs环境变量、mounts挂在信息、devices设备信息、annotations注解信息、c…

建网站做cpa小影wordpress主题

F1 显示当前程序或者windows的帮助内容。 F2 当你选中一个文件的话,这意味着“重命名” F3 当你在桌面上的时候是打开“查找:所有文件” 对话框 F10或ALT 激活当前程序的菜单栏 windows键或CTRLESC 打开开始菜单 CTRLALTDELETE 在win9x中打开关闭程序对话…

NAFNet (Simple Baselines for Image Restoration) 阅读笔记 - 教程

NAFNet (Simple Baselines for Image Restoration) 阅读笔记 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &quo…