Имя: Пароль:
1C
1С v8
Транспорт RabbitMQ & Web-сервисы
,
0 Hisoka
 
19.05.20
07:27
1. Rabbitmq 100% (2)
2. Web-сервисы 0% (0)
Всего мнений: 2

Коллеги приветствую, поделитесь пожалуйста опытом.

Есть центральная база и 1000 периферийных. На данный момент обмен происходит сообщениями через Rabbitmq.
Появилась задача передавать заказы, которые создаются в периферийных базах, в центральную более быстрым способом
По примерным расчетам, около 50 заказов может быть создано одновременно, соответственно одновременно 50 WEB запросов на передачу в центральную базу.

Есть ли у кого опыт использования  Web-сервисов на подобные задачи, либо все же использовать старого доброго кролика?..
Заранее спасибо за советы.
1 Комрад1
 
19.05.20
07:41
А что, у кролика такая низкая скорость, что веб-сервисы быстрее будут?
2 Hisoka
 
19.05.20
07:44
Там сейчас раз в 20 минут передается операционная деятельность. Вариант сделать отдельную очередь и вычитывать ее быстрее тоже рассматривается.

К скорости кролика - вопросов нет.
3 Комрад1
 
19.05.20
07:47
(2) Ну тогда зачем использовать другую технологию, если имеющаяся устраивает? В чём вы видите потенциальный выигрыш от Web-сервисов?
4 Hisoka
 
19.05.20
07:52
(3) Передача заказов планируется под интернет магазин. То есть объемы данных совсем маленькие.
Через кролик же передается более большой объем информации, и пока не редки случаи что обмен через кролика иногда ложится (проект в активной разработке, группой разработчиков. Бывает что случаются проблемы при обработке входящий и исходящих сообщений, очередь забивается и потом очень долго рассасывается)
5 Hisoka
 
19.05.20
07:54
(3) таким образом пытаюсь чуть-чуть повысить отказоустойчивость. Что-то мне подсказывает что веб сервис будет более лучшим решением для моей задачи.
6 Комрад1
 
19.05.20
07:59
(4) Как-то "маленький объем" и "50 заказов одновременно" не бьётся. Если не уверены в надежности кролика, то рассмотрите HTTP сервисы ещё, там диагностика проблем проще.
7 Hisoka
 
19.05.20
08:04
(6) Понял, спасибо за совет
8 Hisoka
 
19.05.20
08:05
(6) Заказ не типовой, обрезанный. Очень мал по объему
9 Garykom
 
гуру
19.05.20
08:38
(2) Нужно сделать отдельную очередь.
Точнее ее надо всегда делать когда не требуется последовательность передачи сообщений.
10 Garykom
 
гуру
19.05.20
08:39
(0) С кроликом как работаете через адаптер или пулю или еще как?
11 Garykom
 
гуру
19.05.20
08:48
(9)+ Да если сообщений не много то можно и одну очередь использовать с приоритетами сообщений.
Но имхо на 1000 периферийных лучше разные очереди.
12 arsik
 
гуру
19.05.20
09:17
(0) Для вас 1с создала https://wonderland.v8.1c.ru/blog/integratsionnaya-shina/
13 Комрад1
 
19.05.20
09:35
(12) Использовать "сырой" продукт без опыта промышленной эксплуатации - так себе решение.
14 Hisoka
 
19.05.20
09:52
(12) оба продукта на 1с, тут наверное этот инструмент не совсем подойдет. Но все равно спасибо за предложение
15 Hisoka
 
19.05.20
09:54
(11) на каждую базу свою очередь ?
16 mzelensky
 
19.05.20
09:55
(15) На каждое "направление" свою очередь
17 PR
 
19.05.20
10:58
(0) Лучше научиться готовить Кролика, а не менять технологии по сто раз на дню
18 Hisoka
 
19.05.20
11:24
(17) HTTP сервисы тоже используются, тут дело за выбором на конкретную задачу
19 H A D G E H O G s
 
19.05.20
11:30
Почитал про rabbit mq и так и не понял, нафига он нужен.
20 Комрад1
 
19.05.20
11:32
(19) Для задач, подобных этой, и не нужен, в общем то.
21 Garykom
 
гуру
19.05.20
11:37
(19) Для удобного обмена объектами-сообщениями.
22 Garykom
 
гуру
19.05.20
11:39
(20) Это примерно как RDP|тонкий клиент vs РИБ
23 timurhv
 
19.05.20
11:41
(19) Для высоконагруженных систем и с большим количеством обменов. Обмен не упадет между системами, если 1С базу решили обновить. Все сообщения обмена будут сохранены в RabbitMQ.
RabbitMQ
https://www.youtube.com/watch?v=0xoT0-TzhZ4

Хранение изменений объектов в Kafka:
https://www.youtube.com/watch?v=BqkJaidyno0

Nats (отправка за 3 секунды, 1С разбирает за 9 мин):
https://www.youtube.com/watch?v=P-J2ohPmhnw
24 Garykom
 
гуру
19.05.20
11:45
(15) На каждую базу своя входящая очередь да и можно несколько очередей на базу чтобы разделить потоки.
Правильная архитектура точек входа/очередей/биндингов это продумывать надо под условия.
25 Комрад1
 
19.05.20
11:46
(22) Нет, если бы автору надо было заказ прогрузить во все 1000 переферийных баз в реальном времени, тогда кролик вполне был бы уместен.
26 H A D G E H O G s
 
19.05.20
11:47
(23) Я думал - какая-нибудь bulk insert напрямую в базу, а это всего лишь транспорт.
27 Garykom
 
гуру
19.05.20
11:47
(25) Ты же наверно понимаешь что на заказ из каждой 1000 периферийных баз надо ответить?
28 Garykom
 
гуру
19.05.20
11:48
(26) Угу всего лишь транспорт и с напрямую в базу приходится отдельно извращаться.
Ну можно с многопотчностью на фоновых
29 Комрад1
 
19.05.20
11:51
(27) И что из этого следует? 50 заказов в секунду в пике - это какая-то запредельная нагрузка, что-ли?
30 Garykom
 
гуру
19.05.20
11:52
(29) У ТС уже есть кролик - не вижу смысла если задачу можно решить на нем без лишних сущностей.
Если бы его не было то да есть смысл выбирать веб-сервисы (еще вопрос какие ибо их дофига разных) или кролика внедрять.
31 Комрад1
 
19.05.20
12:06
(30) Топором, конечно, можно забивать гвозди. Но лучше использовать молоток.
32 PR
 
19.05.20
12:11
(19) Брокер сообщений
Типа КД 3, только трехзвенка
Например, Пете нужно сообщить всем интересующимся о том, что Танька из 5 квартиры девица легкого поведения
Но Петя не хочет бегать и спрашивать у каждого, интересна ли ему эта информация
И не хочет отвечать всем обращающимся по этому вопросу в любое время дня и ночи
Поэтому он пишет в подъезде на стене эту информацию, а уж все интересующиеся читают ее там
33 Garykom
 
гуру
19.05.20
12:11
(31) В условиях ограничения веса предпочту взять только топор с обухом подходящим для забивки гвоздей.
Или ты умеешь молотком валить деревья? Тор ты это?
34 PR
 
19.05.20
12:12
(27) Кролик переваривает десятки тысяч обращений в секунду
35 Комрад1
 
19.05.20
12:12
(33) Ну если с расчетом, что лет через 5 после забивания гвоздей вдруг лес валить понадобится :)
36 Garykom
 
гуру
19.05.20
12:14
(35) Нет тут фишка что количество технологий в одной конфе возрастает - с поддержкой проблема.
37 Garykom
 
гуру
19.05.20
12:14
(36)+ Хотя если уже есть и кролик и веб-сервисы в конфе то глубоко пофиг да.
38 Комрад1
 
19.05.20
12:17
(36) Я больше про вопрос выбора технологий для реализации конкретных задач, думать, что будет, если "вдруг через 5 лет компания вырастет в мильён раз" не очень разумно
39 Garykom
 
гуру
19.05.20
12:21
(38) В мильён раз да, но зачем в два раза увеличивать технологическую сложность то?
Я бы понял если например нужен именно онлайн и офлайном через кролика никак, тогда да только сервисы.
40 Garykom
 
гуру
19.05.20
12:23
(39)+ В этом случае нечто вроде gRPC на ура идет но это еще сложнее.
41 Garykom
 
гуру
19.05.20
12:25
Имхается шина данных в 1С уже появилась, со временем и до gRPC c protobuf из коробки дойдет.
JSON же добавили хотя XML до сих пор в строю.
42 Комрад1
 
19.05.20
12:26
(39) С Http-сервисами знакомо большинство 1С-ников, а вот с кроликами/кафками и т.п. - единицы. Использование кролика без необходимости - зачем? Если бы автора устраивала работа кролика, или была возможность самому сделать так, чтобы устраивала - вопроса здесь не появилось бы.
43 Garykom
 
гуру
19.05.20
12:27
(41)+ Хотя не удивит что в очередной раз через одно место как с ЖР который недо sqlite блин.
Лучше бы нативную поддержку sqlite впилили в платформу а не только древний xbase-dbf
44 Garykom
 
гуру
19.05.20
12:27
(42) Дык (30)
45 Garykom
 
гуру
19.05.20
12:28
(42) Или ты предлагаешь отказаться ТС от кролика совсем и весь обмен перевести на веб-сервисы? Нюню.
46 Комрад1
 
19.05.20
12:33
(45) У ТС альтернатива - трахаться с кроликом, или сделать надёжно работающий вариант. Тут уж кому как больше нравится :)
47 Garykom
 
гуру
19.05.20
12:39
(46) Думаю просто ты пока кролика не освоил и находишься на этапе ура я освоил веб-сервисы ))
48 Комрад1
 
19.05.20
12:45
(47) Ты тему целиком читал, вообще? Перечитай (3) и (4) :))
49 spock
 
19.05.20
13:21
Лучше шина, но с отдельными очередями.

Проще пояснить от обратного: в центре нужно будет иногда тушить базу на регламентные процедуры (обновление, чистка, апгрейд железа, прочее) и, при схеме с WS, все эти 1000 точек будут ждать подъема центра. ХЗ как реализовано в точках, может там кто-то должен дрюкать кнопку "Отправить" и его будет злить ошибка отсутствия связи с центром. Ок, центр поднялся и одновременно большая толпа точек начнет пушить свои заказы. Центру поплохеет от такой активности.

Если будет шина - заказы от точек уходят и копятся в шине, центр поднялся после регламентных процедур и в нормальном режиме начал обходить очереди и забирать заказы.

Rabbitmq
50 Комрад1
 
19.05.20
13:25
(49) А если шина упала/на регламентном обслуживании, то что?
51 novichok79
 
19.05.20
13:27
естественно шина данных, я бы выбрал Kafka, в нашем случае это было быстрее ссаного кролика.
52 novichok79
 
19.05.20
13:27
проголосовал

Rabbitmq
53 Cyberhawk
 
19.05.20
13:28
Делай на Кафке, Кролик тупой
54 novichok79
 
19.05.20
13:36
(50) для этого есть логи. веб сервисы тоже могут упасть.
55 novichok79
 
19.05.20
13:42
Kafka предлагает гораздо более высокую производительность, чем брокеры сообщений, такие как RabbitMQ. Она использует последовательный дисковый ввод-вывод для повышения производительности, что делает ее подходящим вариантом для реализации очередей. Она может обеспечить высокую пропускную способность (миллионы сообщений в секунду) при ограниченных ресурсах, что необходимо для случаев использования больших данных.

даже гугол знает правду.
56 Комрад1
 
19.05.20
13:43
(54) Могут. Я про то, что отказоустойчивость не является важным преимуществом кролика.
57 Комрад1
 
19.05.20
13:44
(55) О, а расскажи про 1С с миллионами сообщений в секунду?
58 novichok79
 
19.05.20
13:48
(57) да пожалуйста. реальный кейс, который я автоматизировал. есть база на 1С, а есть парсер, который собирает данные в реальном времени и кладет в кафку, база на 1С забирает эти данные из кафки регл. заданием и пишет в базу в потоках.
59 Garikk
 
19.05.20
13:52
(58) и прям миллион сообщений в секунду?

обычно всё упирается не в скорость брокера, а в сами обработчики
60 novichok79
 
19.05.20
13:53
(59) сбор данных - 1,5 млн в день. проверка актуальности ссылок - 10-20 млн. в день.
61 Комрад1
 
19.05.20
13:55
(60) Это и близко не "миллионы в секунду"
62 novichok79
 
19.05.20
13:58
(61) ок, но под задачу из (0) Kafka идеально подходит, т. к. она еще хранит какое-то время данные, а у кролика насколько я помню очередь закончилась и уссё.
63 Garikk
 
19.05.20
13:59
(60) 20млн в день это гдето 230 в секунду...вообще ерунда с точки зрения любой службы очередей

у меня ща на работе больше 2тыс в секунду...и загрузка на хосте кролика меньше 15% ...тупо не успевают серваки разбирать
(62) кролик настраивается по разному... минус у него в том что он немногопоточный, в смысле многопроцессорность не умеет
64 Cyberhawk
 
19.05.20
14:10
(63) "кролик настраивается по разному" // Подскажешь, как Кролика настроить, чтоб он продолжал хранить в себе уже успешно отданные сообщения?
65 Комрад1
 
19.05.20
14:12
(62) Подходит. Только, эту-же задачу можно решить ещё несколькими не менее подходящими, но более простыми, способами.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший