Datamapper с Mysql Master / Slave - PullRequest
       5

Datamapper с Mysql Master / Slave

4 голосов
/ 16 апреля 2011

Кажется, я не могу найти какую-либо информацию о том, как использовать datamapper talk для настройки master / slave mysql. Я использую rails3 с dm-mysql-адаптером

Ответы [ 4 ]

2 голосов
/ 10 июля 2012

Это может быть то, что вы ищете ...

https://github.com/d11wtq/dm-master-slave-adapter

2 голосов
/ 28 августа 2011

Для этого вы можете использовать функцию DataMapper Multiple Data Store :

DataMapper.setup(:default, 'mysql://master-host/mydb')
DataMapper.setup(:slave, 'mysql://slave-host/mydb')

Теперь, когда вы хотите прочитать с ведомого, используйте:

DataMapper.repository(:slave) do
  Person.first
end

К сожалению, похоже, что вы не можете выполнять прозрачную запись с ведомого устройства на запись:

[...] Это будет использовать ваше подключение к: внешнему хранилищу данных и Первый человек, которого он находит. Позже, когда вы позвоните. Сохранить на этом человеке, он будет сохранен обратно в: внешнее хранилище данных; Объект в курсе из какого контекста оно пришло и должно быть сохранено обратно.

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

0 голосов
/ 27 августа 2011

вам не нужно делать это в вашем приложении, но Mysql может справиться с этим сам.Таким образом, вы можете воспользоваться всеми преимуществами балансировки нагрузки и высокой доступности благодаря автоматическому восстановлению при сбое.Я бы настоятельно рекомендовал эту настройку вместо ручной балансировки нагрузки на основе приложений, так как вы должны оставить постоянный уровень вне бизнес-логики, предоставляемой вашим приложением.Это дает уже написанные преимущества и делает ваше приложение более масштабируемым и обслуживаемым благодаря лучшему разделению задач.

Ознакомьтесь с документацией Mysql NDB для концепций и этимучебное пособие для быстрого запуска в кластеризации Mysql.

0 голосов
/ 16 апреля 2011

1) Вы должны установить адаптер.

2) Для добавления требуется require 'rubygems' require 'data_mapper' 3) Config my sql

DataMapper.setup(:default, 'mysql://localhost/the_database_name')

или

DataMapper.mysql(:host xxxx, :user xxxx, :password xxxx, :database xxxx)

4) Создайте модели объектов, например:

class Post
  include DataMapper::Resource

  property :id,         Serial    # An auto-increment integer key
  property :title,      String    # A varchar type string, for short strings
  property :body,       Text      # A text block, for longer string data.
  property :created_at, DateTime  # A DateTime, for any date you might like.
end

Если у вас есть какие-либо сомнения, вы можете проверить эту ссылку: http://datamapper.org/getting-started

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...