Я изучаю архитектуру микросервисов, и для меня немного неясно, когда мне следует поместить часть функциональности в микросервис и когда лучше хранить ее в отдельном компоненте, устанавливая компонент в зависимых микросервисах.
Примеры:
Компонент Symfony Security ACL (symfony/security-acl
). Я мог бы обернуть его в микросервис, который добавил бы только уровень абстракции в виде REST API поверх API ACL Symfony Security. Кроме того, мне понадобится компонент сервисного агента, который устанавливается на зависимые микросервисы и обеспечивает доступ к микросервису ACL. В чем смысл? Не проще ли установить symfony/security-acl
где это нужно и дать ему отдельное соединение с базой данных?
Система оплаты. В этом случае более понятно, что его нужно обернуть в микросервис. Он содержит огромный объем бизнес-логики, которая просто требует разделения.
В основном вопросы:
Какой критерий я должен учитывать при принятии решения о размещении части программного обеспечения в микросервисе, а не в модуле?
Это хорошая идея, чтобы обернуть symfony/security-acl
в очень тонкий микросервис (разве это не хорошо для микросервиса быть тонким)?
Неофициальные, ненаучные причины возникновения микросервисов, основанные на моем опыте:
В вашем конкретном случае сложно сказать, что использовать, потому что вы не даете достаточно контекста. Некоторые из соответствующих вопросов:
Других решений пока нет …