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

Вид: 13217|Ответ: 1

Вопросы идемпотентности интерфейсов

[Скопировать ссылку]
Опубликовано 04.12.2018 13:29:37 | | |
【Описание задачи】
Когда пользователи используют приложение, страница сильно застревает, и они кликают случайным образом, потому что интерфейс не выполняет повторные отправки, на уровне сервиса один поток не вставляется как завершённый, а другой проверяет — пустой. Поэтому я тоже вставил одного. Изначально у всех была одна, но у продавца было три, что приводило к ошибкам в бизнес-логике. Обработка вредоносных заявок может осуществляться на фронтенде, а также существуют зрелые решения в бэкенде.

【Solution】1. Использовать ограничения уникальности для решения задачи идемпотентности транзакций, устанавливать ограничения уникальности, и если существует сценарий повторных коммитов, исключения из ограничений уникальности будут использоваться на уровне базы данных, и бизнес-логика не будет уничтожена. Ограничения на уникальность композиции нескольких полей также допустимы.
Вход по гиперссылке виден.

Вышеописанное предназначено для создания настроек против дублирования на уровне базы данных.

2. Реализовать настройки против дублирования на уровне кода. Часто говорят, что ограничение уникальности базы данных влияет на эффективность вставки данных, поскольку каждая вставка требует оценки на уровне базы данных. Поэтому, судя по уровню кода, распространённая практика на уровне кода — сначала выбирать, а затем вставлять, но при высокой параллелности повторяются повторные коммиты. Можно добавить синхронизированное в логический код, чтобы в условиях высокой параллелности сначала выбрать, а затем вступить в силу вставку. Но эффективность невысока, и параллель становится последовательной. Может использоваться механизм замка DCL. (Вы заметили, что способ создания одного объекта в режиме копирования очень похож — сначала судите, существует ли объект, если нет — создайте, иначе не создавайте), естественный механизм блокировки DCL более эффективен.

#分布式锁
Распределённые замки также могут решать проблему, что часто применяется в Redis и Zookeeper. В этом разделе объясняется, как реализовать распределённые блокировки с помощью Redis.
В Redis есть операция команды setNx: если её нет, это значение множества, и возвращается 1. Если он существует, он не устанавливается и возвращает 0.
Используя функцию однопоточности Redis, сцена высокой параллелности превращается в последовательный через очередь сообщений.
Однако в распределенных замках есть свои подводные камни, поэтому нужно внимательно следить.
Вход по гиперссылке виден.
3. Механизм MVCC?

3.1 Что такое механизм MVCC?
MVCC — это многовариантный механизм управления параллелизмом.

3.2 Какие проблемы можно решить?
Механизм блокировки может управлять параллельными операциями, но накладные расходы системы значительны, и MVCC в большинстве случаев может заменить блокировки на уровне рядов, что снижает накладные расходы системы и повышает производительность.

Вход по гиперссылке виден.

4. Существует также проблема идемпотентности в сообщениях

Например, как предотвратить повторное потребление сообщений?

В промежуточном программном обеспечении сообщений в MQ это необходимо понимать и понимать.




Предыдущий:Парикмахерство. Учитесь парикмахерству, заходите и посмотрите
Следующий:Видео истории о воспитании Аудио истории о воспитании История о родителях Книга с картинками Коллекция знаний о воспитании
 Хозяин| Опубликовано 17.03.2021 10:27:09 |
ПолномочияВ программировании идемпотентная операция характеризуется тем, что её произвольные многократные исполнения оказывают тот же эффект, что и одно выполнение.
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com