2013-08-23 2 views
0

Мне нужно развернуть приложение в Grails с MySQL.Grails + MySQL - BasicDataSource или JNDI

В чем разница между использованием базового источника данных или JNDI в производительности?

ответ

3

Не должно быть различий в производительности, если они настроены аналогичным образом. Они свяжут соединения и вернут предварительно подключенный экземпляр по требованию.

Где вы увидите различия в конфигурации. Часто источники данных JNDI лучше тестируют мертвые соединения и закрывают и воссоздают их. Это легко сделать с DataSource в Grails, потому что вы можете настроить блок properties, который указывает, периодически ли тестировать соединения или извлекать их из пула и т. Д. В более новых версиях Grails имеется примерный блок, поэтому легко изменить настройки.

Единственное осложнение состоит в том, что поставщики пулов имеют небольшую согласованность в именах свойств. Иногда пароль задается с помощью свойства password, а иногда это pass. То же самое касается настроек, таких как testOnBorrow, testWhileIdle и т. Д. Но это проблема как для пула JNDI, так и для DataSource Grails. В обоих случаях вам нужно знать, как настроить пул, который вы используете.

Мое предпочтение заключается в том, чтобы сделать конфигурацию в приложении, потому что я предпочитаю автономную WAR. Вы всегда можете изменить поставщика пула, чтобы использовать более надежную реализацию. Обратите внимание, что более новые версии Grails используют Tomcat JDBC Pool (который не зависит от того, используете ли вы Tomcat в качестве своего сервера), и у них есть тесты, которые показывают, что он работает лучше, чем большинство других реализаций. И вы всегда можете установить это самостоятельно, установив плагин jdbc-pool.

Смежные вопросы