Этап 2: Декомпозиция монолита на микросервисы#3
Conversation
…inor improvements
| public List<Compilation> findAll(Optional<Boolean> pinned, int from, int size) { | ||
| Pageable pageable = PageRequest.of(from / size, size); | ||
|
|
||
| if (pinned.isPresent()) { |
There was a problem hiding this comment.
Можно переписать через map
return pinned.map(aBoolean -> jpaCompilationRepository.findByPinned(aBoolean, pageable).getContent())
.orElseGet(() -> jpaCompilationRepository.findAll(pageable).getContent());
| import jakarta.persistence.GenerationType; | ||
| import jakarta.persistence.Id; | ||
| import jakarta.persistence.JoinColumn; | ||
| import jakarta.persistence.ManyToOne; |
|
|
||
| import feign.codec.ErrorDecoder; | ||
| import org.springframework.context.annotation.Bean; | ||
| import ru.practicum.explorewithme.api.client.event.EventClientErrorDecoder; |
|
|
||
| ParticipationRequest save(ParticipationRequest request); | ||
|
|
||
| List<ParticipationRequest> saveAll(Iterable<ParticipationRequest> requests); |
There was a problem hiding this comment.
В методах save и saveAll можно не возвращать значение, они не используются
| * Efficiently rejects all PENDING requests for a given event. | ||
| * This is useful when an event's participant limit is reached. | ||
| */ | ||
| void rejectAllPendingRequestsForEvent(Long eventId); |
There was a problem hiding this comment.
Не нашел, чтобы этот метод использовался
There was a problem hiding this comment.
Да, я добавил его, чтобы оптимизировать взаимодействие с БД, но забыл переписать под него логику в самом сервисе...
|
|
||
| public interface SearchParamsWithDateRange { | ||
| public LocalDateTime getRangeStart(); | ||
| public LocalDateTime getRangeEnd(); |
postgres.yml
Outdated
| @@ -0,0 +1,18 @@ | |||
| services: | |||
| postgres: | |||
| image: postgres:16.1 | |||
There was a problem hiding this comment.
А нужен отдельный yml для postgres, возможно в проекте этот файл лишний
There was a problem hiding this comment.
Да, логичнее использовать для БД сервис из основного compose.yaml. Удалил postgres.yml
There was a problem hiding this comment.
Наверно не запушили правки, т.к. postgres.yml всё ещё есть
…or local deployment
postgres.yml
Outdated
| @@ -0,0 +1,18 @@ | |||
| services: | |||
| postgres: | |||
| image: postgres:16.1 | |||
There was a problem hiding this comment.
Наверно не запушили правки, т.к. postgres.yml всё ещё есть
Данный PR реализует второй этап дипломного проекта — полную декомпозицию монолитного сервиса
main-serviceна независимые микросервисы.Основные изменения:
Выделены новые микросервисы, каждый со своей базой данных и зоной ответственности:
event-service(бывшийmain-service, отвечает за события, категории и подборки)user-service(управление пользователями)request-service(управление заявками на участие)comment-service(управление комментариями)Реализовано межсервисное взаимодействие:
interaction-api, содержащий DTO и интерфейсы клиентов, который выступает в роли единого контракта для сервисов.Обновлена инфраструктура:
gateway-serverполностью перенастроена для работы с новыми сервисами.docker-compose.ymlобновлен для запуска всего стека микросервисов.Внешний API-контракт приложения остался без изменений.