Size: a a a

2020 May 03

A

Alexey in pro.jvm
всем привет, подскажите, пожалуйста, возможно ли подружить postgis с hibernate/jdbc на текущий момент? диалект не хочет подгружаться никак чтобы функции их использовать, такие как st_within и др
кто-нибудь работал с этим?
источник

Ø

Øлег in pro.jvm
Привет
Вопрос для тех кто сталкивался или имеет представление о том, как в распределенной системе добиться сохранения порядка сообщений(в некотором приближении)
Сообщения имеют инкрементальный sequence
Есть N инстансов, которые обрабатывают сообщения и складывают их в топик условного брокера(в топике должен быть сохранен порядок исходя из sequnce сообщения)
Очевидно что обработчики должны синхронизироваться
Но при этом синхронизация и отправка должны быть атомарны + появляется куча сайд эффектов в зависимости от места сбоя
Какой консенсус в решении задачи находили?
источник

QH

Quantum Harmonizer in pro.jvm
Alexey
всем привет, подскажите, пожалуйста, возможно ли подружить postgis с hibernate/jdbc на текущий момент? диалект не хочет подгружаться никак чтобы функции их использовать, такие как st_within и др
кто-нибудь работал с этим?
@Query(…, native = true)
источник

Б

Богдан in pro.jvm
Синхронизация и отправка атомарно?
источник

Б

Богдан in pro.jvm
Это как?)
источник
2020 May 04

Ø

Øлег in pro.jvm
Богдан
Синхронизация и отправка атомарно?
Синхронизация по sequence последнего отправления в in-memory db например
И сохранение нового значения
И отправка в брокер
источник

Ø

Øлег in pro.jvm
И все это в какой-то распределенной транзакции
источник

Б

Богдан in pro.jvm
Какой-то ад)
источник

Б

Богдан in pro.jvm
Думаю что это решается встроенными механизмами брокера
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Похоже нужен какой-то сервис, который будет собирать обработанные сообщения и в нужном порядке класть в целевой топик
источник

Ø

Øлег in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Похоже нужен какой-то сервис, который будет собирать обработанные сообщения и в нужном порядке класть в целевой топик
абсолютно верно
источник

Ø

Øлег in pro.jvm
Богдан
Думаю что это решается встроенными механизмами брокера
Вполне себе типовое решение задачи
Без учета ошибок компонент распределенной системы
И вот они создают уйму проблем
источник

DP

Denis Pavlyuchenko in pro.jvm
Øлег
Привет
Вопрос для тех кто сталкивался или имеет представление о том, как в распределенной системе добиться сохранения порядка сообщений(в некотором приближении)
Сообщения имеют инкрементальный sequence
Есть N инстансов, которые обрабатывают сообщения и складывают их в топик условного брокера(в топике должен быть сохранен порядок исходя из sequnce сообщения)
Очевидно что обработчики должны синхронизироваться
Но при этом синхронизация и отправка должны быть атомарны + появляется куча сайд эффектов в зависимости от места сбоя
Какой консенсус в решении задачи находили?
Решение с Debezium не подходит? Типа:
1) В какой-то момент времени сообщение попадает в БД, ему там назначается sequence значение из БД.
2) Мы вычитываем WAL с помощью Debezium и кладем сообщения в кафку. В итоге, у нас сообщения в кафке уже имеют правильный порядок, и мы дальше можем работать только с порядком по offset.
3) Дальше уже всё стандартно, пишем процессоры сообщений, сохраняя нужный порядок
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Denis Pavlyuchenko
Решение с Debezium не подходит? Типа:
1) В какой-то момент времени сообщение попадает в БД, ему там назначается sequence значение из БД.
2) Мы вычитываем WAL с помощью Debezium и кладем сообщения в кафку. В итоге, у нас сообщения в кафке уже имеют правильный порядок, и мы дальше можем работать только с порядком по offset.
3) Дальше уже всё стандартно, пишем процессоры сообщений, сохраняя нужный порядок
2) если они попадают в одну partition.
А если в разные, то порядок обработки не гарантируется
источник

DP

Denis Pavlyuchenko in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
2) если они попадают в одну partition.
А если в разные, то порядок обработки не гарантируется
ага, всё так
источник

A

Alexey in pro.jvm
Quantum Harmonizer
@Query(…, native = true)
спасибо, но пытался, не помогает
синтаксис все равно подсвечивается красным после within  перед скобкой (
источник

Ø

Øлег in pro.jvm
Denis Pavlyuchenko
Решение с Debezium не подходит? Типа:
1) В какой-то момент времени сообщение попадает в БД, ему там назначается sequence значение из БД.
2) Мы вычитываем WAL с помощью Debezium и кладем сообщения в кафку. В итоге, у нас сообщения в кафке уже имеют правильный порядок, и мы дальше можем работать только с порядком по offset.
3) Дальше уже всё стандартно, пишем процессоры сообщений, сохраняя нужный порядок
В идеале, не совсем подходит
В imdb храним только счётчик, получается высокая скорость  обработки + персистить ивент в бд нет нужды
а в кафку нужно весь ивент положить

Я так понимаю у вас в системе порядок определяется исходя из того какой ивент пришёл раньше
У меня уже известен порядковый номер, просто нужно гарантировать порядок в итоговом топике
источник

Ø

Øлег in pro.jvm
Denis Pavlyuchenko
Решение с Debezium не подходит? Типа:
1) В какой-то момент времени сообщение попадает в БД, ему там назначается sequence значение из БД.
2) Мы вычитываем WAL с помощью Debezium и кладем сообщения в кафку. В итоге, у нас сообщения в кафке уже имеют правильный порядок, и мы дальше можем работать только с порядком по offset.
3) Дальше уже всё стандартно, пишем процессоры сообщений, сохраняя нужный порядок
Что произойдёт на этапе 2 если Кафка отвалится?
источник

SS

Shamil Sabirov in pro.jvm
Alexey
спасибо, но пытался, не помогает
синтаксис все равно подсвечивается красным после within  перед скобкой (
советую попробовать в диалект добавить свои кастомные функции. нужно заимплементить org.hibernate.dialect.function.SQLFunction
источник

A

Alexey in pro.jvm
Shamil Sabirov
советую попробовать в диалект добавить свои кастомные функции. нужно заимплементить org.hibernate.dialect.function.SQLFunction
это свой диалект писать получается?
источник