Size: a a a

PostgreSQL + 1C + Linux

2020 November 06

АЛ

Артем Лазаренко... in PostgreSQL + 1C + Linux
Нужны конечно, да то что хуже, насколько хуже, какие последствия могут быть и т.д. пока заявления звучат просто как личное мнение.  Например при проектировании микросервисов широко юзают рест апи и ничего, конечно данный пример не микросервис, но мы ж обсуждаем варианты взаимодействия приложений
источник

АЛ

Артем Лазаренко... in PostgreSQL + 1C + Linux
У нас например тоже Кафка используется в качестве брокера, и 1с конечно не напрямую с очередями ее работает ибо нативно не умеет, 1с шлет http запросы, мне просто интересно что в этой архитектуре не так, причем настолько не так, что вы так удивляетесь
источник

AL

Alexey Lustin in PostgreSQL + 1C + Linux
Артем Лазаренко
У нас например тоже Кафка используется в качестве брокера, и 1с конечно не напрямую с очередями ее работает ибо нативно не умеет, 1с шлет http запросы, мне просто интересно что в этой архитектуре не так, причем настолько не так, что вы так удивляетесь
Я не удивляюсь - я в некотором культурном шоке опять.

При проектировании микросервисов - широко юзают OpenAPI 😉 - с этим полностью  согласен. Есть еще спецификация CloudEvents - она также реализована в виде REST сервисов.

Но Кафка/ActiveMQ/RabbitMQ/Nats - это службы для передачи событий в потоковом режиме. Соответственно REST Proxy  Kafka / HTTP API RabbitMQ - это костыль для Legasy систем которые не имеют SDK для подключения к потоковым протоколам

Как бы объяснить - через librdkafka на версиях от 8.3.15 я передаю и получают 300.000 сообщений в минуту на один поток при размере сообщения 100 килобайт (Сериализованный документ с 2000 строк) с применением сжатия lz4 передаваемых данных по сети.
И соответственно за минуту я успеваю получить подписчиком из топика 30.000 сообщений в минуту на один поток - но через librdkafka у меня есть возможность создать группу подписчиков с поддержкой перебалансировки

И самое главное - через librdkafka у меня есть поддержка транзакций из коробки как для Продюсера, так и для Консьюмера

RESTProxy выше 1000 вызовов отправить не смог на том же обрудовании - да оно и понятно - на каждый вызов примерно 100 мс уходит.
Плюс он куцый по API

Но самое главное для RESTPRoxy -  это то как организован "Подписчик" - Для REST Proxy вы вынуждены реализовывать "Сосущий алгоритм" - когда 1С фоновое задание делает на каждое сообщение curl -X GET http://localhost:8082/consumers/my_json_consumer

Это не событийная интеграция сообщений - это алгоритм долбежки  REST сервиса по расписанию - тут нет ничего от потоковой передачи событий

В случаях с Kafka/AMQP(0.9, 1.0)/NATS штатных протоколов - подписчик организован по принципу "слушающего сокета" - когда при поступлении в очередь/топик сообщения действующие подписчики получают оповещения с СЕРВЕРА. В этом случае задержки между передачей сообщений от источника до подписчика близки к задержкам на сетевом оборудовании.

Мы 5 лет записывали публичные видео на эту тему -и все равно REST.
источник

A

Andrey in PostgreSQL + 1C + Linux
А кто сказал, что я про рестпрокси?
источник

АЛ

Артем Лазаренко... in PostgreSQL + 1C + Linux
Alexey Lustin
Я не удивляюсь - я в некотором культурном шоке опять.

При проектировании микросервисов - широко юзают OpenAPI 😉 - с этим полностью  согласен. Есть еще спецификация CloudEvents - она также реализована в виде REST сервисов.

Но Кафка/ActiveMQ/RabbitMQ/Nats - это службы для передачи событий в потоковом режиме. Соответственно REST Proxy  Kafka / HTTP API RabbitMQ - это костыль для Legasy систем которые не имеют SDK для подключения к потоковым протоколам

Как бы объяснить - через librdkafka на версиях от 8.3.15 я передаю и получают 300.000 сообщений в минуту на один поток при размере сообщения 100 килобайт (Сериализованный документ с 2000 строк) с применением сжатия lz4 передаваемых данных по сети.
И соответственно за минуту я успеваю получить подписчиком из топика 30.000 сообщений в минуту на один поток - но через librdkafka у меня есть возможность создать группу подписчиков с поддержкой перебалансировки

И самое главное - через librdkafka у меня есть поддержка транзакций из коробки как для Продюсера, так и для Консьюмера

RESTProxy выше 1000 вызовов отправить не смог на том же обрудовании - да оно и понятно - на каждый вызов примерно 100 мс уходит.
Плюс он куцый по API

Но самое главное для RESTPRoxy -  это то как организован "Подписчик" - Для REST Proxy вы вынуждены реализовывать "Сосущий алгоритм" - когда 1С фоновое задание делает на каждое сообщение curl -X GET http://localhost:8082/consumers/my_json_consumer

Это не событийная интеграция сообщений - это алгоритм долбежки  REST сервиса по расписанию - тут нет ничего от потоковой передачи событий

В случаях с Kafka/AMQP(0.9, 1.0)/NATS штатных протоколов - подписчик организован по принципу "слушающего сокета" - когда при поступлении в очередь/топик сообщения действующие подписчики получают оповещения с СЕРВЕРА. В этом случае задержки между передачей сообщений от источника до подписчика близки к задержкам на сетевом оборудовании.

Мы 5 лет записывали публичные видео на эту тему -и все равно REST.
Насчет pull не согласен, почему 1с должна опрашивать, например в нашем случае есть над кафкой джавовское приложение которое работает с очедями и отправляет в 1с. А в целом основной аргумент это пропускная способность насколько я понимаю
источник

AL

Alexey Lustin in PostgreSQL + 1C + Linux
Andrey
А кто сказал, что я про рестпрокси?
Вам то я ответил что работают через librdkafka - пусть и поздновато.
источник

A

Andrey in PostgreSQL + 1C + Linux
Alexey Lustin
Вам то я ответил что работают через librdkafka - пусть и поздновато.
Это вы про одну красную компанию или не успели этот подход там внедрить?
источник

AL

Alexey Lustin in PostgreSQL + 1C + Linux
Артем Лазаренко
Насчет pull не согласен, почему 1с должна опрашивать, например в нашем случае есть над кафкой джавовское приложение которое работает с очедями и отправляет в 1с. А в целом основной аргумент это пропускная способность насколько я понимаю
Вы спросили почему не REST - я попытался объяснить. Учитывая как вы описали - что у вас Джава дергает 1С... Вы просто написали свою прослойку, но с 1С коммуницируете через тоже REST если правильно понял.

Вот почему всегда так... Почему как 1С - так костыли.

Вы же на Джаве пишете

 consumer.subscribe(Collections.singletonList(TOPIC));


почему на 1С не хотите написать

KafkaConsumer.Подписаться(КонтекстСохраняемый.ПрефиксТопиков + ИмяТопика);


?
источник

AL

Alexey Lustin in PostgreSQL + 1C + Linux
Andrey
Это вы про одну красную компанию или не успели этот подход там внедрить?
Это уже не ко мне - это к @Artem_Kuznetsov  $-)
источник

AL

Alexey Lustin in PostgreSQL + 1C + Linux
Andrew Bille
@the_flute, обратите, пожалуйста внимание, народ просит лицензию на сайт 1c.postgres.ru
Я спросил на FACEBOOK напрямую
источник

СГ

Сергей Голод... in PostgreSQL + 1C + Linux
Priestone
Я по этой ссылке уже за этот год трижды получал инструкции (для разных версий), подключал репы и ставил. Но ставил для разработки как и предписано доступным лицензионным соглашением, потому как не нашел ссылку на EULA для именно этой версии с 1с.постгрес.ру. У вас есть ссылка на лицензионное соглашение этой версии? Где его можно почитать?
возможно из этой картинки будет понятна разница между версиями ПГ
источник

AL

Alexey Lustin in PostgreSQL + 1C + Linux
Сергей Голод
возможно из этой картинки будет понятна разница между версиями ПГ
Как объяснил Иван - EULA относится к продуктам линейки СУБД Postgres Pro в которую не входит сборка для 1С
источник

АЛ

Артем Лазаренко... in PostgreSQL + 1C + Linux
Alexey Lustin
Вы спросили почему не REST - я попытался объяснить. Учитывая как вы описали - что у вас Джава дергает 1С... Вы просто написали свою прослойку, но с 1С коммуницируете через тоже REST если правильно понял.

Вот почему всегда так... Почему как 1С - так костыли.

Вы же на Джаве пишете

 consumer.subscribe(Collections.singletonList(TOPIC));


почему на 1С не хотите написать

KafkaConsumer.Подписаться(КонтекстСохраняемый.ПрефиксТопиков + ИмяТопика);


?
Потому что эта "прослойка " выполняет еще определённую логику, получается это ближе к шине нежели просто голый брокер, насчёт костылей не соглашусь, вы были не убедительны
источник

AL

Alexey Lustin in PostgreSQL + 1C + Linux
Артем Лазаренко
Потому что эта "прослойка " выполняет еще определённую логику, получается это ближе к шине нежели просто голый брокер, насчёт костылей не соглашусь, вы были не убедительны
Почему нельзя обработанный поток "с логикой" положить в другой топик для 1С ? Вы сделали костыль - но не можете признать - убедителен я или не убедителен, это уже не важно. Когда заходите сделать по нормально и не захотите никому платить денег - возьмите шаблон  внешней компоненты от Егора - там уже все готово для линковки с librdkafka через vcpkg и сделайте по нормальному.

https://github.com/Infactum/addin-template

P.S. Я блин не убедителен 😉
источник

ES

Eugene S. in PostgreSQL + 1C + Linux
Товарищи, все привет и хорошоего вечера.
Вопрос к 1с относится примерно никак, конечно, но постгрес затрагивает напрямую.

Подскажите пжста, как починить сломанную репликацию, в логах только намеки на измененую схему, но схема не менялась
источник

AL

Alexey Lustin in PostgreSQL + 1C + Linux
Артем Лазаренко
Потому что эта "прослойка " выполняет еще определённую логику, получается это ближе к шине нежели просто голый брокер, насчёт костылей не соглашусь, вы были не убедительны
чтобы вы понимали почему я вдруг опять взялся за эту тему и причем тут PG -  у меня вместе с клиентом стоит сейчас задача чтобы 1С научилась понимать Avro - потому что у него используется вот это https://www.confluent.io/blog/bottled-water-real-time-integration-of-postgresql-and-kafka/
источник

2_

2flower _ in PostgreSQL + 1C + Linux
Priestone
Думаю, что появление лицензионного соглашения для бесплатной версии постгреспро-1с решит такую проблему. Ну а там недалеко будет и до приобретения энтерпрайзной версии, если её фичи окажутся действительно востребованными у нас.
вот что я нашел в вин дистрибутиве pg  для 1с.
на сайте, где ссылки на загрузку есть также
На данном сайте представлены только сборки открытой СУБД PostgreSQL, поддерживаемой международным сообществом.
т.е. это сборка PostgreSQL, а не Postgres Pro.
Для юриста такие вещи не очевидны.
файл license.txt

====================
PostgreSQL License
====================

PostgreSQL is released under the PostgreSQL License, a liberal Open Source
license, similar to the BSD or MIT licenses.

PostgreSQL Database Management System
(formerly known as Postgres, then as Postgres95)

Portions Copyright (c) 1996-2015, The PostgreSQL Global Development Group

Portions Copyright (c) 1994, The Regents of the University of California

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written agreement
is hereby granted, provided that the above copyright notice and this paragraph
and the following two paragraphs appear in all copies.

IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT,
INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE
UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE
UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
ENHANCEMENTS, OR MODIFICATIONS.
источник

ES

Eugene S. in PostgreSQL + 1C + Linux
Eugene S.
Товарищи, все привет и хорошоего вечера.
Вопрос к 1с относится примерно никак, конечно, но постгрес затрагивает напрямую.

Подскажите пжста, как починить сломанную репликацию, в логах только намеки на измененую схему, но схема не менялась
Висят слоты репликации в неактивном состоянии и все. Поможет ли выпиливание со слейвов проблемной таблицы, или нужно обяз-но пересоздатm слоты репликации?
источник

АЛ

Артем Лазаренко... in PostgreSQL + 1C + Linux
Alexey Lustin
Почему нельзя обработанный поток "с логикой" положить в другой топик для 1С ? Вы сделали костыль - но не можете признать - убедителен я или не убедителен, это уже не важно. Когда заходите сделать по нормально и не захотите никому платить денег - возьмите шаблон  внешней компоненты от Егора - там уже все готово для линковки с librdkafka через vcpkg и сделайте по нормальному.

https://github.com/Infactum/addin-template

P.S. Я блин не убедителен 😉
Давайте абстрагируемся от конкретного брокера и посмотрим шире на саму технологию, не вижу в ней ничего костыльного. Взять тот же Apache Camel он умеет работать с рест, как бы Camel покруче будет каких-то там брокеров, как же так и там костылят?
источник

2_

2flower _ in PostgreSQL + 1C + Linux
Eugene S.
Висят слоты репликации в неактивном состоянии и все. Поможет ли выпиливание со слейвов проблемной таблицы, или нужно обяз-но пересоздатm слоты репликации?
а что значит висят?
источник