207 похожих чатов

Есть вопрос с гениям архитектурных строений. Есть некоторое количество одоо

инстансов, которые обмениваются данными с главным одоо инстансом, а также есть мобильное приложение, которое обменивается данными также с главным инстансом. В мобильном приложении необходимо получать real-time данные со всех одоо инстансов, как лучше реализовать данную архитектуру? (Любые предложения и подсказки приветствуются)

Для примера: у десяти инстансов есть продукт, они обновляют его количество, данные о нем, а данный продукт продается в мобильном приложении, отображая, где и сколько продукта есть в наличии.

7 ответов

8 просмотров

если есть "главный" оду, с которым обмениваются все остальные оду, значит данные для мобильного приложения нужно тянуть из него. Если тянуть данные из всех(каждой) оду в приложение, то будет хаос. Конечно при модификации данных в дочерней оду, данные попадут в "главную" оду с некоторой задержкой. Плюс время на передачу из главной - в приложение. И получается - не очень то "риалтайм". Поэтому нужно уменьшить время передачи в чентральную оду. Для это нужно чтобы способ передачи данных был НЕ ПО КРОНУ!!!! НЕ ПО КРОНУ! А по событию изменения данных. И данные передавать нужно через прямое подключение оду-оду по http. В таком случае передача одного объекта(читай небольшого массива данных) - не должна занимать слишком много времени. До 3-х секунд! Ну и конечно же - не гонять по этой интеграции бинарные данные типа картинки товаров, а использовать CDN и гонять урлы на файлы. Файлы шарить между разными инстансами. А приложение, ябы вообще сделал, чтобы брало данные из "главной" оду - онлайн. Т.е. чтобы приложение не хранило бы данные в "своей" базе данных, а брало бы данные онлайн из "главной" оду по json-rpc.

Alex Kom
если есть "главный" оду, с которым обмениваются вс...

иметь в главном оду консьюмер который обновляет остатки по дочерним инстансам и ему отправлять сообщения на события с дочерних? или реалтайм запрос async/await распараллеленый на дочерние? @DontWantWakeUp а чем обусловлена такая архитектура - основной инстанс и дочерние? почему не все в одном (на разных складах напр) - нагрузкой или еще чем-то?

Anton- Автор вопроса
 Веранiка
иметь в главном оду консьюмер который обновляет ос...

Немного ошибся при описании проблемы Главная оду используется только как для подписочной системы дочерних, там просто crm, инвойсы и тому подобное, нет ни складов, ни продуктов. Каждый инстанс это отдельная ерп система для каждого заказчика, в которой он уже ведет свой учет продуктов и их актуальность. А мобильное приложение используется как точка доступа для поиска нужного продукта как можно ближе к конечному потребителю(аптеки и мед препараты). То есть мы получаем главная система-наша оду, десятки одоо инстансов наших заказчиков, которые продают свои мед товары и мобильное приложение, которое они используют для продажи

Anton
Немного ошибся при описании проблемы Главная оду ...

Вы говорите "в главной оду нет продуктов", но "есть инвойсы". Это как? А что написано в инвойсах? Продукт под названием "Продукт"? Вы говорите, что цель: > мобильное приложение используется как точка доступа для поиска нужного продукта Значит инфо по каждому продукту - нужно иметь. Остатки по каждому продукту - тоже. Список складов и их адреса - тоже. Возможно - для консолидации этих данных и реализации функции поиска "нужного продукта как можно ближе к конечному потребителю" Вам стоит поднять еще одну оду, в которую будут литься все эти данные. И ее интегрировать с приложением. Т.е. все эти данные НЕ заливать в базу приложения, а сделать как сервис "Приложение спрашивает у этого сервиса:" нужны продукты 1, 2 и 3 клиент находится по адресу Х найди ближайшие точки, в которых есть эти продукты. и сервисная оду, отвечает уже готовым ответом Приложению. Ну а как данные попадают в базу этой оду - я описал выше: передаются по событиям, онлайн.

Anton- Автор вопроса

А не будет ли тогда проблем с согласованностью данных и овербольшой нагрузки на одну одоо? Ей придется общаться как между Odoo инстансами, так и мобильным приложением

Anton
А не будет ли тогда проблем с согласованностью дан...

дык - воркеров-то не один. Можно вообще для этой цели купить железяку с многоядерным сердцем и на каждое ядро повесить по воркеру. оптоволокно несколько сетевух ... олдскул рулит)

Миллион раз писал не стоит крутить маркетплейс на Odoo ! Как уже писали выше без шини не обойтись. У нас были похожие задачи. Zato + Kafka + кролик + Редис + свои балансировки в одушках ... Есть пару идей как но чистой Odoo такое собирать .

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
@ahndmn @ayaw0_0 здарова, на чем пишете?
Aiwan \ (•◡•) / _bot
7
Коллеги, как получить PId для собственного процесса из под линукса?
Роман Лях (rgreat)
6
Карта сайта