Mysql-Proxy

Thank you for reading this post, don't forget to subscribe!

Балан­си­ров­ка mysql запро­сов - важ­ная вещь, если мы исполь­зу­е­те несколь­ко mysql сер­ве­ров. Если у Вас настро­е­на master-slave репли­ка­ция баз даных, то есть смысл рас­пре­де­лить нагруз­ку на несколь­ко сер­ве­ров. Отправ­лять update, insert запро­сы на master сер­вер, а select запро­сы рас­пре­де­лять меж­ду дву­мя, тре­мя и более серверами.

для это­го мож­но вос­поль­зо­вать­ся ути­ли­той mysql-proxy.

Ска­чи­ва­ем исход­ник и рас­па­ко­вы­ва­ем его:

В слу­чае про­блем с рас­па­ков­кой - уса­но­ви­те xz-utils или про­сто пакет xz и посто­ри­те операцию.

Сле­ду­ю­щие паке­ты нуж­ны будут для выпол­не­ния пра­виль­ной сборки:

Теперь пере­хо­дим в пап­ку glib и уста­нав­ли­ва­ем его:

В ходе выпол­не­ния появит­ся вот такое сообщение:

[codesyntax lang="php"]

[/codesyntax]

 

Соот­ветс­вен­но биб­лио­те­ки ока­за­лись в /usr/local/lib/

 

Для того что бы систе­ма их уви­де­ла, я сде­лал сим­лин­ки, создав резерв­ные копии ори­ги­аль­ных файлов:

Теперь мож­но пере­хо­дить к уста­нов­ке mysql-proxy

ска­чи­ва­ем гото­вый пакет и уста­нав­ли­ва­ем его:

Так­же пона­до­бит­ся ори­ги­наль­ный пакет с исход­ни­ка­ми из-за допол­ни­тель­но­го скрип­та. Ска­чи­ва­ем его и распаковываем:

Чудо скрипт, кото­рый будет раз­де­лять read и write запро­сы, нуж­но ско­пи­ро­вать в пап­ку к mysql-proxy:

Узна­ем рас­по­ло­же­ние кон­фиг фай­ла вот ткой командой:

В моем слу­чае это /etc/sysconfig/mysql-proxy. В люби­мом редак­то­ре откры­ва­ем этот файл для редак­ти­ро­ва­ния и уста­нав­ли­ва­ем пароль для адми­на (ADMIN_PASSWORD) - он не дол­жен быть пустым.

PROXY_OPTIONS при­во­дим к сле­ду­ю­ще­му виду:

[codesyntax lang="php"]

[/codesyntax]

  • proxy-backend-addresses - адрес master сер­ве­ра, на кото­рый будут отправ­лять­ся insert и update запросы.
  • proxy-read-only-backend-addresses - адрес сер­ве­ра, на кото­рый будут ухо­дить толь­ко select запросы.
  • proxy-address - опре­де­ля­ет ip адрес и порт, на кото­ром будут обра­ба­ты­вать­ся вхо­дя­щие соеди­не­ния. По умол­ча­нию 4040

Созда­ем симлинки:

Теперь мож­но запускать:

Для того что бы про­верть состо­я­ние кла­сте­ра под­клю­чи­тесь к админке:

Для отоб­ра­же­ния всех бэк­эн­дов выпол­ни­те сле­ду­ю­щий запрос:

 

В резуль­та­те полу­ча­ем табличку:

[codesyntax lang="php"]

[/codesyntax]