Я работал над аналогичной проблемой, хотя Spring не участвовал. Мы разработали указатель на локальный экземпляр MySQL (у каждого разработчика был один на своем боксе), а производственная система представляла собой кольцо репликации Master / Slave. На самом деле мы пошли еще дальше и совместили сервер приложений с сервером базы данных, поэтому на уровне приложений и базы данных был кластер из четырех узлов.
Наше приложение работает в JBoss. Это было довольно легко, но у него была серьезная кластеризация на уровне сервера приложений. При этом мы смогли получить более 300 запросов в секунду, а иногда и около 1000 запросов в секунду (в зависимости от обработки приложения). База данных никогда не была узким местом - даже при таких скоростях мы редко видели, чтобы пул соединений превышал 5 соединений.
В обоих случаях (мой и ваш), поскольку URL JDBC указывает на локальный сервер, функциональной разницы с точки зрения приложения на самом деле нет. Мне пришлось играть в некоторые интересные игры по настройке с настройкой автоинкремента, чтобы предотвратить появление данных; если у вас есть только одна точка развертывания (и, следовательно, одна точка доступа к экземплярам (ам) MySQL), вам не нужно беспокоиться об этом.
Итак, без изменений кода и без изменений конфигурации. Это просто сработает. При стандартных условиях тот факт, что вы поддерживаете пару экземпляров Master / Slave или кластер, не будет иметь значения, поскольку вы, скорее всего, будете указывать либо на экземпляр Master, либо на экземпляр MySQL, стоящий перед кластером (в MySQL). кластер находится за одним или несколькими серверами базы данных, реплицирующими данные).
С какими нагрузками вы хотите справиться? В прошлом MySQL был протестирован при> 1000 TPS, но результаты, как правило, варьируются в зависимости от характеристик системы (память, ядра ЦП, скорость процессора), отзывчивости вашего приложения и одновременных потоков.