У меня есть приложение, написанное в Dropwizard и использующее спящий режим для подключения к DB (mysql). Из-за появления новых функций я ожидаю высокую нагрузку на чтение apis и задумываясь о предоставлении считываний из ведомого БД. Каковы разные способы настройки master-slave и компромиссов.master-slave в dropwizard и hibernate
ответ
Я так решил:
У меня 2 сеанса фабрики в моем случае: один по умолчанию, который разговаривает с мастером и другой с именем говорят «slaveDb», который говорить с рабом базы данных.
Я создал различные dao для одного и того же сущности, один для подчиненных взаимодействий и один для мастера. в slave dao я привязываю его к slaveSessionFactory
Теперь аннотация единицы измерения имеет один атрибут «значение», если вы его не используете, чего мы не во многих случаях, то обработчик аннотации будет говорить поверх фабрика сеансов по умолчанию. Если вы определяете имя здесь, то обработчик аннотации будет использовать фабрику сеансов с этим конкретным именем.
P.S. В моем случае у меня есть одно подчиненное устройство, так как приложение не является такой высокой нагрузкой, и я хотел подчиняться только для целей генерации отчетов. В случае многих рабов это решение плохо масштабируется. Кроме того, поскольку я предоставлял детали подчиненной машины в файле config.yaml, мне не нужно устанавливать базовое соединение как только для чтения.
Если вы используете аннотацию @UnitOfWork, то нет и да. Нет, они не позволяют напрямую связываться с db, используя только чтение. Да, вы можете создать два ресурса, используя разные db (master slave). Один ресурс для записи и критического чтения (мастер) другого для чтения (ведомого).
https://groups.google.com/forum/#!topic/dropwizard-user/nxURxVWDtEY
Кроме того, как ссылка предложить MySQL водитель может сделать это автоматически, но для этой сессии должно быть доступно только для чтения, который верно UnitOfWorkApplicationListener оленьей кожа установлено правильно, даже если вы установили верно доступны только для чтения @UnitOfWork.
Почему был проголосован вопрос? –