Что означает «один параллельный потребитель на поле» в архитектуре LMAX? - PullRequest
0 голосов
/ 29 октября 2018

В объяснении Мартина Фаулера архитектуры LMAX он пишет:

Unmarshaler превращает данные события из проводника в объект Java, который можно использовать для вызова поведения в процессоре бизнес-логики. Следовательно, в отличие от других потребителей, ему необходимо изменить данные в кольцевом буфере, чтобы он мог хранить этот неупорядоченный объект. Правило здесь состоит в том, что потребителям разрешено выполнять запись в кольцевой буфер, но у каждого доступного для записи поля может быть только один параллельный потребитель, которому разрешено писать в него. Это сохраняет принцип единственного автора.

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

  • Изменяет ли потребитель значение разрушителя (т. Е. Заставляет прерыватель ссылаться на новый объект)? Или потребитель изменяет существующий объект на месте?
  • К какому «полю» он относится? Это поле класса или он имеет в виду что-то еще?
  • Когда он пишет «Каждое доступное для записи поле может иметь только одного параллельного потребителя»: если поле ссылается на поле класса, то подразумевает ли он, что несколько потребителей могут писать в один и тот же объект, если они пишут в разные поля?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...