|
|
|
разделить select и insert на разные DataSource
|
|||
|---|---|---|---|
|
#18+
Ребят подскажите как разделить select и insert какой либо сущности в БД. Суть в том что есть два инстантса приложения по разным адресам. одно из них на хосте, где расположена мастер-Бд, другое - на хосте где реплика. Оба работают получается что с БД localhost:port. Нужно чтоб второе приложение (то что на хосте с репликой) один из классов инсертила в мастер-бд, а читала все ж таки с локальной. Реально ли так? в какую сторону лучше покопать. сейчас используются spring + jpa + repository ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 17:19 |
|
||
|
разделить select и insert на разные DataSource
|
|||
|---|---|---|---|
|
#18+
yams, Может проблему опишешь, а не решение. Странная постановка. Реплика в какую сторону? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 17:34 |
|
||
|
разделить select и insert на разные DataSource
|
|||
|---|---|---|---|
|
#18+
Создать два DataSource в контексте очень просто. Выбирать один из двух тоже не сложно. Единственное, что я не вижу способа это автоматизировать. Вам нужно самостоятельно отпределиться и пометить read only транзакции, чтобы их все запускать на read-only DataSource. При этом, желательно, наверное, иметь один SessionFactory (JPA PU), чтобы небыло двух кэшей. Соответственно лучше такое делать через прокси DataSource, который будет смотреть атрибуты текущей Spring транзакции и выдавать соединение из двух других DataSource. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 17:35 |
|
||
|
разделить select и insert на разные DataSource
|
|||
|---|---|---|---|
|
#18+
yamsкак разделить select и insert какой либо сущности в БД update состоит из select+update ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 17:39 |
|
||
|
разделить select и insert на разные DataSource
|
|||
|---|---|---|---|
|
#18+
Petro123, проблема в том что при запуске приложения создаются недостающие записи аудита. И, если на хосте с репликой, запуск осуществляется раньше, чем на хосте с мастер базой, затем при репликации этих двух получаем ошибку. Надо чтоб независимо от того кто запускается первый, записи аудита попадали только в масттер-БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 17:40 |
|
||
|
разделить select и insert на разные DataSource
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, спасибо, посмотрю с сторону прокси-датасоурс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 17:41 |
|
||
|
разделить select и insert на разные DataSource
|
|||
|---|---|---|---|
|
#18+
Petro123, Вполне стандартная постановка. Есть Master/Slave база. Slave read-only. Выборки на много больше чем записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 17:45 |
|
||
|
разделить select и insert на разные DataSource
|
|||
|---|---|---|---|
|
#18+
yams, аудит входа в реплику не нужен что-ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 17:45 |
|
||
|
разделить select и insert на разные DataSource
|
|||
|---|---|---|---|
|
#18+
BlazkowiczSlave read-only. у приложения роль только чтение сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 17:46 |
|
||
|
разделить select и insert на разные DataSource
|
|||
|---|---|---|---|
|
#18+
Petro123, аудит из мастрера реплицируется в реплику получается, что он таам почти всегда свежий. но вопрос касается только класса-аудита, остальное читается и пишется стандартно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 17:51 |
|
||
|
разделить select и insert на разные DataSource
|
|||
|---|---|---|---|
|
#18+
Petro123, Вообще как таковой проблемы бы не было если бы была гарантия что мастре-хост всегда будет первый в очереди на обновление+включение. Происходит обновление - добавляется запись в табличку аудита. Но такой гарантии нет, потому возникла необходимость предусмотреть этот случай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 17:54 |
|
||
|
разделить select и insert на разные DataSource
|
|||
|---|---|---|---|
|
#18+
yams, Не понял. У меня аудит без pk но с меткой времени. Зашел Иванов после мастера в реплику. Ну и пусть. Сломаться та ничего не должно. Будеть 2 записи входа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 18:14 |
|
||
|
разделить select и insert на разные DataSource
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Я тоже не вижу способ автоматом. Если один класс, то пусть делает хоть руками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 18:18 |
|
||
|
разделить select и insert на разные DataSource
|
|||
|---|---|---|---|
|
#18+
Petro123, , будем обсуждать у кого как организовано ? ;)) у меня аудит классов. ставим новую версию, в ней добавился класс. при установке новой версии приложения смотрим в табличку, там такого класса нет, делаем запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2015, 18:18 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=112&tid=2124697]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
56ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 350ms |

| 0 / 0 |
