Spec-Zone .ru
спецификации, руководства, описания, API
|
Вопросы
16.7.6.1: В выравнивании нагрузки, как я могу разделить чтения от записей?
16.7.6.2: Как я использую сокет с MySQL Proxy? Журналы изменений прокси упоминают, что поддержка сокетов UNIX была добавлена.
16.7.6.3: Я могу использовать MySQL Proxy со всеми версиями MySQL?
16.7.6.4: Я могу выполнить MySQL Proxy как демона?
16.7.6.5: Приложения прокси работают на отдельном сервере? В противном случае, что издержки поносятся по доверенности на стороне сервера DB?
16.7.6.6: С выравниванием нагрузки, что происходит с транзакциями? Все запросы отправляются тому же самому серверу?
16.7.6.7: Действительно ли возможно использовать MySQL Proxy с обновлением Lucene, индексируют (или Solr), делая TCP призывает к тому серверу, чтобы обновить?
16.7.6.8: Действительно ли системное контекстное переключение дорого, сколько издержек сценарий Lua добавляет?
16.7.6.9: Сколько задержки прокси добавляет к соединению?
16.7.6.10: Необходимо сделать один большой сценарий и вызвать его при запуске прокси, могу я сценарии изменения, не останавливаясь и перезапуская (прерывание) прокси?
16.7.6.11: Если MySQL Proxy должен жить на ту же самую машину как MySQL, есть ли какие-либо настраивающие соображения, чтобы гарантировать, что оба выполняют оптимально?
16.7.6.12: Я в настоящий момент использую Реле SQL для эффективного объединения в пул соединения со многими процессами Apache, соединяющимися с сервером MySQL. MySQL Proxy может в настоящий момент выполнить это? Моя цель состоит в том, чтобы минимизировать задержку соединения, сохраняя доступные временные таблицы.
16.7.6.13: Эти
зарезервированные имена функций (например, error_result()
) это
автоматически вызывают?
16.7.6.14: Поскольку сценарий перечитывается MySQL Proxy, действительно ли он кэширует это, или он смотрит на файловую систему с каждым запросом?
16.7.6.15:
Учитывая, что есть a connect_server()
функционируйте, сценарий Lua может
соединиться с многократными серверами?
16.7.6.16: Действительно ли MySQL Proxy является API?
16.7.6.17: Пример переменной глобального пространства имен с квотами не сохраняется после перезагрузки, которая корректна?
16.7.6.18: MySQL Proxy может обработать соединения SSL?
16.7.6.19: MySQL Proxy мог использоваться, чтобы получить пароли?
16.7.6.20: Есть ли инструменты для того, чтобы изолировать проблемы? Как кто-то может выяснить, является ли проблема в клиенте, базе данных, или прокси?
16.7.6.21: Действительно ли MySQL Proxy подобен тому, что обеспечивается пулами соединения Java?
16.7.6.22: Таким образом, аутентификация с объединением в пул соединения должна быть сделана в каждом соединении? Какова задержка аутентификации?
16.7.6.23: Если у Вас есть многократные базы данных на том же самом поле, можно использовать прокси, чтобы соединиться с базами данных на порту значения по умолчанию 3306?
16.7.6.24: Что относительно того, чтобы кэшировать информацию об авторизации, таким образом, клиентам, соединяющимся, дают соединения бэкэнда, которые были установлены с идентичной информацией об авторизации, таким образом сохраняя несколько более циклов обработки?
16.7.6.25: Там какой-либо большой веб-сайт использует MySQL Proxy? Для какой цели, и что уровень транзакции они достигли?
16.7.6.26: Как MySQL Proxy сравнивается с DBSlayer?
16.7.6.27: Я попытался использовать MySQL Proxy без любого сценария Lua, чтобы попробовать круговое выравнивание нагрузки типа. В этом случае, если бы первая база данных в списке снижается, MySQL Proxy не соединил бы клиент со второй базой данных в списке.
16.7.6.28: Это
"безопасный" использовать LuaSocket
со сценариями прокси?
16.7.6.29: Насколько отличающийся MySQL Proxy from DBCP (Объединение в пул соединения с базой данных) для Apache с точки зрения объединения в пул соединения?
16.7.6.30: MySQL Proxy может обработать приблизительно 5000 соединений, каков предел на сервере MySQL?
16.7.6.31: Был бы соединение только для Java, объединяющее работу решения в пул для многократных веб-серверов? С этим я предположил бы, что можно объединить в пул через многие веб-серверы сразу?
Вопросы и Ответы
16.7.6.1: В выравнивании нагрузки, как я могу разделить чтения от записей?
Нет никакого автоматического разделения запросов, которые выполняют чтения или записи к различным серверам бэкэнда. Однако, можно определить, чтобы mysql-проксировать тот, или больше серверов MySQL "бэкэнда" только для чтения.
shell> mysql-proxy \--proxy-backend-addresses=10.0.1.2:3306 \--proxy-read-only-backend-addresses=10.0.1.3:3306 &
16.7.6.2: Как я использую сокет с MySQL Proxy? Журналы изменений прокси упоминают, что поддержка сокетов UNIX была добавлена.
Определите путь к сокету:
--proxy-backend-addresses=/path/to/socket
16.7.6.3: Я могу использовать MySQL Proxy со всеми версиями MySQL?
MySQL Proxy разрабатывается, чтобы работать с MySQL 5.0 или выше, и поддерживает протокол сети MySQL для 5.0 и выше.
16.7.6.4: Я могу выполнить MySQL Proxy как демона?
Используйте --daemon
опция. Чтобы отследить ID процесса, демон может быть запущен с --pid-file=file
опция, чтобы сохранить PID к известному имени файла. На версии 0.5.x Прокси не может быть запущен исходно как
демон.
16.7.6.5: Приложения прокси работают на отдельном сервере? В противном случае, что издержки поносятся по доверенности на стороне сервера DB?
Можно выполнить прокси на сервере приложений на его собственном поле, или на сервере DB в зависимости от варианта использования.
16.7.6.6: С выравниванием нагрузки, что происходит с транзакциями? Все запросы отправляются тому же самому серверу?
Без любой специальной настройки целое соединение отправляется тому же самому серверу. Это сохраняет целое состояние соединения в целости.
16.7.6.7: Действительно ли возможно использовать MySQL Proxy с обновлением Lucene, индексируют (или Solr), делая TCP призывает к тому серверу, чтобы обновить?
Да, но пока это не советуется.
16.7.6.8: Действительно ли системное контекстное переключение дорого, сколько издержек сценарий Lua добавляет?
Lua быстр, и издержки должны быть достаточно маленькими для большинства приложений. Необработанные пакетные издержки составляют приблизительно 400 микросекунд.
16.7.6.9: Сколько задержки прокси добавляет к соединению?
В диапазоне 400 микросекунд на запрос.
16.7.6.10: Необходимо сделать один большой сценарий и вызвать его при запуске прокси, могу я сценарии изменения, не останавливаясь и перезапуская (прерывание) прокси?
Можно только изменить сценарий, и прокси перезагрузит его, когда клиент соединится.
16.7.6.11: Если MySQL Proxy должен жить на ту же самую машину как MySQL, есть ли какие-либо настраивающие соображения, чтобы гарантировать, что оба выполняют оптимально?
MySQL Proxy может жить на любое поле: приложение, база данных, или ее собственное поле. MySQL Proxy использует сравнительно маленький ЦП или RAM с незначительными дополнительными требованиями или издержками.
16.7.6.12: Я в настоящий момент использую Реле SQL для эффективного объединения в пул соединения со многими процессами Apache, соединяющимися с сервером MySQL. MySQL Proxy может в настоящий момент выполнить это? Моя цель состоит в том, чтобы минимизировать задержку соединения, сохраняя доступные временные таблицы.
Да.
16.7.6.13: Эти зарезервированные имена функций (например, error_result()
) это автоматически вызывают?
Только функции и значения, запускающиеся с proxy.*
обеспечиваются прокси. Все
другие являются предоставленным пользователем.
16.7.6.14: Поскольку сценарий перечитывается MySQL Proxy, действительно ли он кэширует это, или он смотрит на файловую систему с каждым запросом?
Это ищет сценарий в клиенте - соединяются, и читает это, если это изменилось, иначе это использует кэшируемую версию.
16.7.6.15: Учитывая, что есть a connect_server()
функционируйте,
сценарий Lua может соединиться с многократными серверами?
MySQL Proxy обеспечивает некоторые учебные руководства в исходном пакете; каждый examples/tutorial-keepalive.lua
.
16.7.6.16: Действительно ли MySQL Proxy является API?
Нет, MySQL Proxy является приложением, которое передает пакеты от клиента к серверу, используя протокол сети MySQL. MySQL Proxy обеспечивает API, разрешающий Вам изменить его поведение.
16.7.6.17: Пример переменной глобального пространства имен с квотами не сохраняется после перезагрузки, которая корректна?
Да. Если Вы перезапускаете прокси, Вы теряете результаты, если Вы не сохраняете их в файле.
16.7.6.18: MySQL Proxy может обработать соединения SSL?
Нет, будучи "человеком в середине", Прокси не может обработать зашифрованные сеансы, потому что это не может поделиться информацией SSL.
16.7.6.19: MySQL Proxy мог использоваться, чтобы получить пароли?
Протокол сети MySQL не позволяет паролям быть отправленными в открытом тексте, все, что Вы могли получить, зашифрованная версия.
16.7.6.20: Есть ли инструменты для того, чтобы изолировать проблемы? Как кто-то может выяснить, является ли проблема в клиенте, базе данных, или прокси?
Можно установить сценарий отладки в прокси, который является исключительно хорошим инструментом с этой целью. Можно видеть очень ясно, какой компонент вызывает проблему, если Вы устанавливаете правильные контрольные точки.
16.7.6.21: Действительно ли MySQL Proxy подобен тому, что обеспечивается пулами соединения Java?
Да и нет. Пулы соединения Java являются определенными для приложений Java, работ MySQL Proxy с любым клиентским API, который говорит протокол сети MySQL. Кроме того, пулы соединения не обеспечивают функциональности для того, чтобы она разумно исследовала сетевые пакеты и изменила содержание.
16.7.6.22: Таким образом, аутентификация с объединением в пул соединения должна быть сделана в каждом соединении? Какова задержка аутентификации?
Можно пропустить поездку туда и обратно и использовать соединение, как это было добавлено к пулу. Пока приложение очищает временные таблицы, которые оно использовало. Издержки являются (как всегда) приблизительно 400 микросекундами.
16.7.6.23: Если у Вас есть многократные базы данных на том же самом поле, можно использовать прокси, чтобы соединиться с базами данных на порту значения по умолчанию 3306?
Да, MySQL Proxy может слушать на любом порту, при условии, что ни один из серверов MySQL не слушает на том же самом порту.
16.7.6.24: Что относительно того, чтобы кэшировать информацию об авторизации, таким образом, клиентам, соединяющимся, дают соединения бэкэнда, которые были установлены с идентичной информацией об авторизации, таким образом сохраняя несколько более циклов обработки?
Есть --proxy-pool-no-change-user
опция, которая обеспечивает эту функциональность.
16.7.6.25: Там какой-либо большой веб-сайт использует MySQL Proxy? Для какой цели, и что уровень транзакции они достигли?
Да,
16.7.6.26: Как MySQL Proxy сравнивается с DBSlayer?
DBSlayer является REST-> инструмент MySQL, MySQL Proxy прозрачен к Вашему приложению. Никакое изменение к приложению не необходимо.
16.7.6.27: Я попытался использовать MySQL Proxy без любого сценария Lua, чтобы попробовать круговое выравнивание нагрузки типа. В этом случае, если бы первая база данных в списке снижается, MySQL Proxy не соединил бы клиент со второй базой данных в списке.
Эта проблема устраняется в версии 0.7.0.
16.7.6.28: Это "безопасный"
использовать LuaSocket
со сценариями прокси?
Вы можете, но это не советуется, потому что это может блокировать.
16.7.6.29: Насколько отличающийся MySQL Proxy from DBCP (Объединение в пул соединения с базой данных) для Apache с точки зрения объединения в пул соединения?
Объединение в пул соединения является только одним вариантом использования MySQL Proxy. Можно использовать это для намного больше, и это работает в случаях, где невозможно использовать DBCP (например, если у Вас нет Java).
16.7.6.30: MySQL Proxy может обработать приблизительно 5000 соединений, каков предел на сервере MySQL?
Предел сервера дается значением max_connections
системная переменная. Значение по умолчанию является зависимой
версией.
16.7.6.31: Был бы соединение только для Java, объединяющее работу решения в пул для многократных веб-серверов? С этим я предположил бы, что можно объединить в пул через многие веб-серверы сразу?
Да. Но можно также запустить один прокси на каждом сервере приложений, чтобы получить подобное поведение, поскольку у Вас уже есть это.