Который является лучшим способом двунаправлено синхронизировать динамические данные в режиме реального времени с помощью mysql

Вы ищете функцию match, а не matches. Также вы можете написать свое регулярное выражение в компактной форме, как это,

/(\d+\s*(?:mL|g|gallon|kg|L|mg|patches))/g

Попробуйте этот код JS,

const string = '10mL 5mL 25 mL';
const regex = /(\d+\s*(?:mL|g|gallon|kg|L|mg|patches))/g;
console.log(string.match(regex));
[118 ]
11
задан Steve Obbayi 28 November 2008 в 13:37
поделиться

4 ответа

Нет большой производительности, которая будет получена от тиражирования Вашей базы данных по двум ведущим устройствам. Однако существует изящный бит обработки отказа при кодировании корректного приложения.

Основная основная установка является по существу тем же как установкой Рабовладельца, но имеет оба запущенные Ведомых устройства и важное изменение в Ваших файлах конфигурации на каждом поле.

Основной MySQL 1:

auto_increment_increment = 2
auto_increment_offset = 1 

Основной MySQL 2:

auto_increment_increment = 2
auto_increment_offset = 2

Эти два параметра гарантируют, чтобы, когда два сервера бьются за первичный ключ по некоторым причинам, они не копировали и уничтожили репликацию. Вместо того, чтобы увеличить 1, любое автоинкрементное поле будет инкрементом по умолчанию 2. На одном поле это запустит смещение от 1 и выполнит последовательность 1 3 5 7 9 11 13 и т.д. На втором поле это будет запускать смещение в 2 и работать вперед 2 4 6 8 10 12 и т.д. От текущего тестирования автоинкремент, кажется, берет следующий бесплатный номер, не тот, который уехал прежде.
Например, Если сервер 1 вставит первые 3 записи (1 3 и 5), когда Сервер 2 вставит 4-е, то ему дадут ключ 6 (не 2, который оставляют неиспользованным).

После того как Вы настроили это, запустите их обоих как Ведомые устройства.
Затем для проверки оба работают хорошо, соединяются с обеими машинами и выполняют команду SHOW SLAVE STATUS и необходимо отметить это оба Slave_IO_Running и Slave_SQL_Running должен оба сказать “ДА” относительно каждого поля.

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

Затем сделайте все тесты, чтобы гарантировать, что можно выполнить все стандартные приложения на каждом поле с ним копирующий в другой.

Это относительно просто, после того как это идет.
Но как был упомянут, MySQL действительно препятствует ему и советует удостовериться, что Вы помните эту функциональность при записи кода приложения.

Править: Я предполагаю, что теоретически возможно добавить больше ведущих устройств, если Вы удостоверяетесь, что смещения корректны и так далее. Вы могли бы более реалистично, хотя, добавьте некоторые дополнительные ведомые устройства.

11
ответ дан 3 December 2019 в 08:31
поделиться

MySQL не поддерживает синхронную репликацию, однако, даже если бы это сделало, то Вы, вероятно, не хотели бы использовать его (не может получить удар производительности ожидания другого сервера для синхронизации на каждой фиксации транзакции).

Необходимо будет рассмотреть более соответствующие архитектурные решения его - существуют сторонние продукты, которые сделают слияние и разрешат конфликты предопределенным способом - это - единственный путь действительно.

Ожидание, что Ваша архитектура функционирует таким образом, наивно - существует не "легкая фиксация" для любой базы данных, не просто MySQL.

2
ответ дан 3 December 2019 в 08:31
поделиться

Действительно ли важно, чтобы UIDs были тем же? Или Вы развлекли бы мысль о наличии таблицы или столбца, отображающего удаленный UID на локальный UID и пишущего пользовательский код синхронизации для объектов, которые Вы хотите копировать через это, делает какое-либо необходимое отображение UIDs для столбцов внешнего ключа, и т.д.?

1
ответ дан 3 December 2019 в 08:31
поделиться

Единственный способ гарантировать Ваши таблицы синхронизируется, должен установить репликацию с 2 путями между базами данных.

Но, MySQL только разрешает одностороннюю репликацию, таким образом, Вы не можете просто разрешить свою проблему в этой конфигурации.

Чтобы быть ясными, можно "установить" репликацию с 2 путями, но MySQL AB препятствует этому.

0
ответ дан 3 December 2019 в 08:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: