У вас есть более серьезная проблема: один микросервис должен принимать решение на основе части данных, которой он не владеет.
Эти данные в конечном итоге непротиворечивы.Например, микросервис A получит разрешение от микросервиса B на удаление чего-либо, но в то же время ситуация на микросервисе B изменится: вы удалите что-либо на основе информации с истекшим сроком действия.
Я предлагаю взглянуть на вашдизайн в целом, может быть, вы пропустили какую-то важную концепцию или разбили монолит на неправильные микросервисы.
Если вы все еще хотите сохранить текущую архитектуру, тогда я предлагаю сохранить локальный кеш удаленного ресурса.использование.Вы должны запросить этот локальный кеш перед удалением ресурса без необходимости синхронной связи с другим микросервисом.Это упростит вашу систему и сделает ее более устойчивой.
Локальный кеш можно обновлять с помощью событий.Всякий раз, когда микросервис B начинает использовать ресурс, он информирует об этом микросервис A;то же самое, когда он больше не использует ресурс.Использование событий является предпочтительным способом.Здесь вы можете использовать свою шину событий.
Или вы можете использовать фоновую задачу, которая запускается периодически;Преимущество этого заключается в том, что микросервис B остается нетронутым, но имеет тот недостаток, что между синхронизациями может быть большой промежуток времени.