Size: a a a

Архитектура ИТ-решений

2017 May 29

KB

Kirill Bayborodov in Архитектура ИТ-решений
Спасибо, было интересно!
источник

KB

Kirill Bayborodov in Архитектура ИТ-решений
источник

NT

Nick Trokhan in Архитектура ИТ-решений
Kirill Bayborodov
А как относиться, когда два экземпляра одного микросервиса обращаются к одной БД?
Кирилл, по этому вопросу надо смотреть на принципы RESTful и идемпотентность операций. Ресурс должен быть изменен 1 раз, а второй запрос должен получить код 409, если операция идемпотентна. Для этого, при работе с ресурсами должна быть метка версии ресурса, которую необходимо проверять при работе с ресурсом
источник

DM

Denis Migulin in Архитектура ИТ-решений
Gleb Popov
Омниканальность, если каждый канал - микросервис, как раз приведет к доступу нескольких мс к одной бд.
В том то и дело, что каждый канал - микросервис, это не правильно, т.к. в каналах одинаковые bounded context
источник

KB

Kirill Bayborodov in Архитектура ИТ-решений
Nick Trokhan
Кирилл, по этому вопросу надо смотреть на принципы RESTful и идемпотентность операций. Ресурс должен быть изменен 1 раз, а второй запрос должен получить код 409, если операция идемпотентна. Для этого, при работе с ресурсами должна быть метка версии ресурса, которую необходимо проверять при работе с ресурсом
Спасибо!
источник

KB

Kirill Bayborodov in Архитектура ИТ-решений
источник

NT

Nick Trokhan in Архитектура ИТ-решений
Хороший ресурс по паттернам микросервисов microservices.io/patterns/index.html
БД и работа с данными в микросервисной архитектуре - это самый болезненный вопрос, который приходится решать. Чаще всего решение - это Event Sourcing
источник

KB

Kirill Bayborodov in Архитектура ИТ-решений
Да, изучаю два из них
источник

KB

Kirill Bayborodov in Архитектура ИТ-решений
источник

KB

Kirill Bayborodov in Архитектура ИТ-решений
источник

AV

Anton Voloshin in Архитектура ИТ-решений
т.е. каждый микросервис должен в собственных транзакциях обеспечивать отсутствие конфликтов
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Попробую ответить: сервисы должны быть автотомны, для этого их данные должны быть инкапсулированы. В одной базе  будут данные разных серисов или нет - зависит уже от ситуации. Важно - данные разных сервисов должны быть доступны строго посредством того сервиса, которому они принадлежат
источник

KB

Kirill Bayborodov in Архитектура ИТ-решений
Да, это первый паттерн и он самый рекомендуемый
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
То есть, данные должны монопольно принадлежать единственному сервису.
источник

KB

Kirill Bayborodov in Архитектура ИТ-решений
Но как же уговорить людей, не далать второй паттерн (как они привыкли)?
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
А дальше, если какой-нибудь сервис аффектит производительность базы, то есть всех других сервисов, то его данные нужно выносить
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Тут нет противоречий: Use a (single) database that is shared by multiple services. Each service freely accesses data owned by other services using local ACID transactions.
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
вообще-то есть ))
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
shared database - абсолютное зло
источник

NT

Nick Trokhan in Архитектура ИТ-решений
Kirill Bayborodov
Но как же уговорить людей, не далать второй паттерн (как они привыкли)?
Когда найдете простой способ работы с людьми в этом ключе, немедленно расскажите :) Мы больше года пытаемся внедрить разделение данных, разработчики данных упорно нормализуют и связывают их.
источник