ФорумПрограммированиеPHP для идиотов → Репликация

Репликация

  • Flare

    Сообщения: 284 Репутация: N Группа: Кто попало

    Spritz 16 марта 2011 г. 17:34

    Как кто реализует программного мастер-слейв репликацию у себя? Я делаю через статическую фабрику, в которой рандомным образом выбирается из конфигурационного файла сервер из списка заранее заданных серверов.
    Например, пользователь хочет посмотреть список статей, тогда в контроллере устанавливаем соединение со слейвом вот так:
    $connection = Db_Connection::factory()->getSlave();
    и потом через это соединение работаем на чтение с БД.
    Если пользователь добавляет комментарий, тогда в контроллере выбирается мастер сервер $connection = Db_Connection::factory()->getMaster(); и делается вставка.

    ;пример конф. файла
    master.srv1.host = "localhost"
    master.srv1.port = "3306"
    master.srv1.dbname = "cms"
    master.srv1.username = "root"
    master.srv1.password = ""
    master.srv1.charset = "utf8"

    slave.srv2.host = "192.168.0.2"
    slave.srv2.port = "3306"
    slave.srv2.dbname = "cms"
    slave.srv2.username = "root"
    slave.srv2.password = ""
    slave.srv2.charset = "utf8"

    slave.srv3.host = "192.168.0.1"
    slave.srv3.port = "3306"
    slave.srv3.dbname = "cms"
    slave.srv3.username = "root"
    slave.srv3.password = ""
    slave.srv3.charset = "utf8"

    Может кто делает эту процедуру более изящно без такого хардкода или есть идеи?
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 16 марта 2011 г. 17:50, спустя 16 минут 27 секунд

    Дык а что именно-то не устраивает, я не понял?

    У меня список слейвов в массиве хранится.
    Скрипт делает shuffle, а дальше идет по массиву до тех пор, пока не приконектился успешно.
  • Flare

    Сообщения: 284 Репутация: N Группа: Кто попало

    Spritz 16 марта 2011 г. 17:53, спустя 3 минуты 9 секунд

    я просто хочу узнать как это делают другие, может я как то это неправильно делаю:) + проблема когда мастер упадет
    Спустя 19 сек.
    как эту проблему решить я пока незнаю
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 16 марта 2011 г. 17:56, спустя 2 минуты 21 секунду


    проблема когда мастер упадет
    ну есть еще репликация master-master, т.е. их может быть два, правда мы ее пока не используем.
    просто есть резервный master - полная копия, если что не него переключат в ручном режиме ….
  • Flare

    Сообщения: 284 Репутация: N Группа: Кто попало

    Spritz 16 марта 2011 г. 18:12, спустя 16 минут 23 секунды

    ясно, спс. я вот подумал сделать это программно когда падает мастер сервер тогда какой-то из слейвов становится мастером на время пока старый мастер не появится.
    Спустя 45 сек.
    не появится всмысле не станет работать в штатном режиме

Пожалуйста, авторизуйтесь, чтобы написать комментарий!