0. Eret1k 778 21.10.19 17:19 Сейчас в теме

Интеграция решений на 1С и сервиса обмена данными RabbitMQ через Web REST API

Отправка "Hello world" из 1С на сервер RabbitMQ и обратно при помощи web REST API.
Проще уже некуда! Совместимо с Linux и Windows!
Реализация протестирована на 1С 8.3.14.1854 (x64).

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. Region102 22.10.19 08:54 Сейчас в теме
Наконец-то можно будет затестить с мобильной платформой. Как раз клиент интересовался по поводу высоконагруженной системы, до 10 000 запросов в час. А то я не уверен, что http сервис 1С это выдержит.
2. user1166203 22.10.19 09:11 Сейчас в теме
(1)
3 запроса в секунду? Ну, в пике 10-20. Странные у вас сомнения :)
7. Region102 22.10.19 17:08 Сейчас в теме
(2) а кто сказал, что нагрузка будет распределенной во времени. Там может и за минуту столько быть, а может и за час 2-3 запроса. Вопрос отказоустойчивости системы, при этом каждый запрос должен создать и провести по регистрам типовой документ, сможет это 1С или нет, вот в чем вопрос.
3. yaroslavkravets 22.10.19 10:26 Сейчас в теме
Rest API RMQ не имеет гарантии доставки. для того чтобы затестить - подойдеть. но для большого проекта нужно смотреть в сторону amqp
4. Eret1k 778 22.10.19 12:50 Сейчас в теме
(3)где именно в технической документации вендора написано, что нет гарантии доставки?
5. yaroslavkravets 22.10.19 15:03 Сейчас в теме
(4) https://www.rabbitmq.com/management.html#http-api-monitoring
The API is intended to be used for monitoring and alerting purposes. It provides access to detailed information about the state of nodes, connections, channels, queues, consumers, and so on.
9. Eret1k 778 22.10.19 19:46 Сейчас в теме
(5) это просто предупреждение и о нем Я писал выше.
Сервер amqp поддерживает соединение в течении нескольких часов и может передать сотни тысяч сообщений за сеанс.
Естественно web это не потянет, но при обмене сотней другой сообщений с короткими перерывами это самое то.
6. yaroslavkravets 22.10.19 15:05 Сейчас в теме
Для получения данных из очереди нужно спрашивать кролик - есть ли изменения?
8. Eret1k 778 22.10.19 19:41 Сейчас в теме
(6) да нужно, делаем регламентное задание и каждые к примеру 5 минут опрашиваем, есть ли сообщения.
15. comol 4321 22.05.20 19:18 Сейчас в теме
(8) Лучше вот так:
https://infostart.ru/public/1116609/
Фоновое задание по расписанию зашквар ИМХО.
Если хочется http нативно - используйте kafka - там оно уже нормально работает.
17. oleganatolievich 145 23.05.20 10:33 Сейчас в теме
(15) confluent kafka rest? полгода назад были лютые тормоза по 30 секунд на последней версии кафки. пришлось свой rest поднимать. сейчас такого нет?
18. comol 4321 23.05.20 14:25 Сейчас в теме
(17) И год назад меньше секунды была обработка. "вы просто не умеете готовить kafka" (с)
19. oleganatolievich 145 23.05.20 14:50 Сейчас в теме
(18) ну конечно же, 2 года на ней сижу и не умею готовить.
20. comol 4321 23.05.20 23:21 Сейчас в теме
(19) Ну вот, обидки, минусы сразу... просто ни у меня ни у товарищей с DNS которые это как выяснилось тоже юзают проблем с 30 секундным ожиданием не выяснялось. Более того, в этом году на HighLoad++ ребята из того самого Confluent рассказывали что из Rest вполне себе Production и никаких там особо ограничений нет. Я могу сказать более политкорректно - "видимо это был ваш конкретный кейс" но суть об этого не изменится. Без обид, нормально confluent kafka работает. По крайней мере уж точно лучше чем RabbitMQ Rest
21. oleganatolievich 145 23.05.20 23:57 Сейчас в теме
(20) проблема вылезла именно после обновления на свежий релиз confluent rest, до него по скорости замечаний не было. с нашими объемами, по 10 млн записей в одну сторону, не было времени разбираться. мы сделали свой REST на flask.
10. Feelthis 36 24.10.19 08:57 Сейчас в теме
На моем опыте среди клиентов для Rabbit MQ на Node js - самый эффективный. Особенно если у вас высоконагруженный проект. Если к примеру мы читаем из Rabbit в сторону 1С (подключаемся по http сервисам), далее данные просто сохраняем в справочник, то клиент на node может считать и загрузить 100-150 сообщений в сек. Клиентом на C# мне не удалось такого достичь (не знаю есть ли там асинхронность не силен в C#). Использовать Web REST API вряд ли подойдет для скорости..
"Исходя из того, что вариантов для подключения и обмена данными не так уж и много, а если вдруг у нас платформа на Linux - то вообще нет, считаю, что это выход" - вот тут вообще не понял что хотели сказать в статье.
11. starik-2005 2173 24.10.19 10:56 Сейчас в теме
(10)
то клиент на node может считать и загрузить 100-150 сообщений в сек
Вот тут некто пишет, что достигал куда более весомого результата обычным курлом вроде как...Может быть в железяге дело.

С другой тороны, я на REDIS'е, который тоже умеет очереди, через именованные каналы даже на пыхе получал в районе 100к запросов в секунду... Но это райзен 1600-й, а не пентиум голд, конечно...
12. Feelthis 36 24.10.19 12:19 Сейчас в теме
(11)
Имею ввиду, что при замере я включил время записи 1с данных в справочник (чисто запись без всяких проверок) и то что клиент ждет ответ от 1с - успешно ли данные записались. То есть в call back функции обрабатываем ответ, в случае успеха делаем acknowledge, в случае не успеха - обрабатываем ошибки от 1с (например база на обслуживании и прочее) и делаем reject.
Понятно если просто читать сообщения там скорость космическая. Также в случае если мы всегда авто подтверждаем сообщения (без всяких проверок в callback ответах) то скорость тоже будет намного выше.
13. s0nya 21.04.20 22:19 Сейчас в теме
14. vis_tmp 30 25.04.20 14:07 Сейчас в теме
Никак не могу найти, есть ли возможность для 7.7 использовать Rabbit MQ ?
16. SergeyN 768 22.05.20 19:27 Сейчас в теме
Коллеги, это вредная статья. Жирный минус автору. Rest интерфейс кролика не позволяет подтверждать сообщения. Соответственно нет главного достоинства очередей в гарантированной доставке сообщений. Этот интерфейс предназначен для администрирования, а не для работы с очередями. Мой опыт с цифрами по пропускной способности rest и классических библиотек на реальном проекте: https://infostart.ru/public/1234830/
ShiningPhoenix; oleganatolievich; comol; primat; +4 Ответить
22. ShiningPhoenix 12 24.05.20 10:22 Сейчас в теме
RMQ в таком режиме тянет всего 170 запросов в секунду(если не ошибаюсь), нет подтверждения.
Этот режим для сервисных целей.
23. SergeyN 768 25.05.20 11:53 Сейчас в теме
(22) У меня в тестах тоже около 170 получалось даже при многопоточной работе.
24. acteck 25.05.20 21:51 Сейчас в теме
8.3.17
Обмен сообщениями. «Интеграционная шина» может подключаться к приложениям 1С начиная с версии платформы 1С:Предприятие 8.3.17. Также поддерживается обмен по протоколу AMQP и возможно подключение к внешним брокерам сообщений.
MAGDevelopment; +1 Ответить
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Екатеринбург
зарплата от 80 000 руб. до 130 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата до 150 000 руб.
Полный день

Ведущий программист 1С
Москва
зарплата от 150 000 руб.
Полный день

Ведущий программист 1С (УТ 11)
Москва
зарплата до 200 000 руб.
Полный день