


주문을 담당하는 order-service의 createOrder 메서드를 재고 품목정보를 가진 Catalog-service의 api를 불러오고
재고와 주문량의 비교를 통해 재고가 부족하면 에러를 띄우게 만들었다.
Catalog-service에서 상품의 Id를 통해 상품정보 객체를 불러와주는 api를 생성하였다. (해당 api 메서드만 첨부)
타 서비스의 api를 가져오기위해 OpenFeign의 의존성을 추가하였고 catalog-service의 FeignClient를 선언하는 클래스를 만들어줬다.
해당 feign 클라이언트를 order-service의 ServiceImpl 클래스에서 사용해주었다.
(관련된 인터페이스와 repository 로직은 생략)
기존 카프카를 통해 작동하던 order api 컨트롤러에 createOrder 메서드를 사용해주면 다음과 같은 포스트맨 요청 결과를 볼 수 있다.
(테스트 - 주문 수량 : 100 / 남은 재고: 90 - 500 에러 발생)

(테스트 - 주문 수량: 10 / 남은 재고: 90 - 201 created)

Order Entity에 String orderIp 속성을 생성해주었다.
카프카를 사용하는 OrderProducer 클래스에서 orderIp라는 필드를 생성했고 send하기위한 Payload에 담아주는 방식으로 구현하였다.
이 파트가 끝나면 mariaDB에 order_ip 속성이 생긴걸 볼 수 있다.

이제 OrderServiceImpl에서 주문이 생성될 때 IP주소와 Port를 불러오게 createOrder 메서드에 다음 내용을 추가하였다.
추후 주문 요청을 더 시도해보았다.