![]() |
#1 |
Участник
|
alexef: Azure грядет …
Источник: https://blogs.technet.microsoft.com/.../azure-coming/
============== В продолжении поста NAVObjectPermissionsReportWebApp. О чудный, дивный мир… На волне оптимизма после отпуска задался я целью переписать приложение с использованием Spring Boot и… Azure SQL Database . Не без проблем, но все же удалось это сделать. Первое, что понравилось при создании сервиса Azure — это то, что все как-то активно развивается. В апреле 2016 года и в октябре 2016 года (прошло всего полгода), если сравнивать по ощущениям, — наполняемость этого виртуального магазина выросла. В моде сейчас уже новый Azure портал и все вскоре, как я понял, будет только через него. Почему собственно я пришел к мысли воспользоваться Azure SQL Database. Первоначально я создал Spring Boot приложение с использованием локального MySQL и все работало. Проект представлен здесь. Но вот при использовании удаленного сервиса ClearDB MySQL Database из Azure получаю ‘max_user_connections’ ошибку. Долго не мог понять. Оказалось, я использовал бесплатный сервис ClearDB MySQL Database, а там только 4 коннекта. А этот умный Spring при запущенном web приложении сразу снимает 10 коннектов. Выбрать платный сервисный план (с большим числом коннектов) для сервиса ClearDB MySQL Database мне не удалось. Дебетовая карта к моему профилю в Azure не привязана. Я трачу только то, что дает MSDN подписка. По идее, отсутствие карты не должно быть препятствием (деньги с MSDN подписки присутствуют на профиле), но вот c ClearDB MySQL Database такой фокус не прошел. Все-таки, провайдер этой услуги не сам MS. А вот с Azure SQL Database все прокатило. Спокойно списывает c MSDN лимита, даже без привязанной карты. ![]() Выбрал минимальную конфигурацию на 5 DTU. Тут стоит упомянуть что Azure SQL Database все-таки пока не совсем полностью все имеет что и обычный SQL Database. Про лимиты можно почитать тут. Моему простому приложению это все не помеха. Единственное, что пришлось столкнутся с тем, что данные можно закачать, похоже, только через bcp утилиту. Но зато качает быстро, не сравнить с тем, что мне пришлось ожидать при закачке в MySQL. Подключаться к базе Azure SQL Database можно через обычный Microsoft SQL Server Management Studio ![]() Редактировать структуру таблицы удобно через Microsoft SQL Server Data Tools ![]() Главное тут не забыть про настройку Firewall в Azure. Почитать про это можно тут и тут . В итоге запускаем bcp: ![]() // Обратите внимание, что имя поля сделал pinsert вместо просто insert.. иначе ругалась система при построении запроса через Spring Data JPA (зарезервированное слово что ли.. так и не понял) и ругалась именно что при использовании Azure SQL Database, на MySQL не было проблемы. По bcp приведу ключевой текст: === create template for .fmt file: bcp data format nul -f C:\Users\alexef\IdeaProjects\data_format_csv.fmt -c -t ; -S alexef0test0navsqlserverazure.database.windows.net,1433 -d navobjectpermissionsreportsqldatabase -U -P modify .fmt for skip first column: — 11.0 14 1 SQLCHAR 0 80 «;» 2 modulename SQL_Latin1_General_CP1_CI_AS 2 SQLCHAR 0 80 «;» 3 objecttype SQL_Latin1_General_CP1_CI_AS 3 SQLCHAR 0 80 «;» 4 description SQL_Latin1_General_CP1_CI_AS 4 SQLCHAR 0 21 «;» 5 rangefrom «» 5 SQLCHAR 0 21 «;» 6 rangeto «» 6 SQLCHAR 0 10 «;» 7 pread SQL_Latin1_General_CP1_CI_AS 7 SQLCHAR 0 10 «;» 8 pinsert SQL_Latin1_General_CP1_CI_AS 8 SQLCHAR 0 10 «;» 9 pmodify SQL_Latin1_General_CP1_CI_AS 9 SQLCHAR 0 10 «;» 10 pdelete SQL_Latin1_General_CP1_CI_AS 10 SQLCHAR 0 10 «;» 11 pexecute SQL_Latin1_General_CP1_CI_AS 11 SQLCHAR 0 80 «;» 12 productline SQL_Latin1_General_CP1_CI_AS 12 SQLCHAR 0 21 «;» 13 moduleid «» 13 SQLCHAR 0 20 «;» 14 versionname SQL_Latin1_General_CP1_CI_AS 14 SQLCHAR 0 21 «\r\n» 15 moduleid2 «» — load data: bcp data in C:\Users\alexef\IdeaProjects\ObjectPermissionsexternal_CSV.csv -f C:\Users\alexef\IdeaProjects\data_format_csv.fmt -S alexef0test0navsqlserverazure.database.windows.net,1433 -d navobjectpermissionsreportsqldatabase -U -P -F2 === Про создание собственно Spring Boot приложения много писать не буду (off—topic). Единственное что прочитайте тут И приведу строку для регистрации SQL драйвера в Maven: === mvn install:install-file -Dfile=C:\Distr\_Java\sqljdbcdownloadmicrosoft\sqljdbc_6.0.7728.100_enu\sqljdbc_6.0\enu\sqljdbc42.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.2 -Dpackaging=jar === Собственно, весь проект лежит: https://github.com/finn777/navobject...uresqldatabase И само приложение: http://alexef0test0nav.azurewebsites...sqldatabase-1/ ![]() И вот что еще я обнаружил. Я пересоздал Tomcat сервис, что уже использовал ранее. Удалил и создал с тем же именем. Потом сделал Deploy, в том числе, и старому приложению. Все отработало. Только теперь уже более новая версия Tomcat крутится. // Все выставил в Newest что бы была свежая версия JVM. А то долго не мог понять почему свежее приложение ошибку ‘The requested resource is not available’ на локальном Tomcat не выдает, а на удаленном Tomcat выдает. Приведу настройки: ![]() ![]() Кстати добраться до настроечного tomcat-users.xml можно так: ![]() ![]() И далее уже через обычный интерфейс, если задали Администратора. ![]() Описанная конфигурация, по идее, должна списывать только за Azure SQL Database (3 фунта в месяц). Tomcat сейчас в бесплатной конфигурации. Если что можно увеличить пропускную способность на платную, если не будет хватать (Для теста я делал Scale up до Basic и обратно во Free – все отрабатывает). Пока посмотрю пользуются ли вообще чем-то. Тулов для мониторинга в Azure много: ![]() ![]() ![]() Источник: https://blogs.technet.microsoft.com/.../azure-coming/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
![]() |
#2 |
Участник
|
В тему:
Azure SQL Database is increasing read and write performance https://azure.microsoft.com/en-us/bl...e-performance/ |
|
|
|