Spring Cloud로 개발하는 MSA/애플리케이션 배포 - DockerContainer

Order Microservice

webmaster 2022. 2. 13. 20:03
728x90
  • docker file
    • docker file 생성
    • dockerfile
  • OrderController, application.yml, kafkaConfig 수정
    • OrderController 
    • @PostMapping("/{userId}/orders")
      public ResponseEntity<ResponseOrder> createOrder(
          @RequestBody RequestOrder orderDetails,
          @PathVariable("userId") String userId) {
          log.info("Before add order data");
      
          ModelMapper mapper = new ModelMapper();
          mapper.getConfiguration().setMatchingStrategy(STRICT);
          OrderDto orderDto = mapper.map(orderDetails, OrderDto.class);
          orderDto.setUserId(userId);
      
          /* JPA */
          OrderDto createdOrder = orderService.createOrder(orderDto);
          ResponseOrder responseOrder = new ModelMapper().map(createdOrder, ResponseOrder.class);
      
          /* kafka */
          //orderDto.setOrderId(UUID.randomUUID().toString());
          //orderDto.setTotalPrice(orderDetails.getQty() * orderDetails.getUnitPrice());
      
          /* send this order to the kafka */
          kafkaProducer.send("example-catalog-topic", orderDto);
          //orderProducer.send("orders", orderDto);
      
          //ResponseOrder responseOrder = new ModelMapper().map(orderDto, ResponseOrder.class);
          log.info("After add order data");
      
          return ResponseEntity.status(HttpStatus.CREATED).body(responseOrder); //201 성공 코드를 반환
      }
    • application.yml
      • myriadb를 사용하도록 변경
    • kafkaProducerConfig 파일 수정
      • docker을 kafka 서버의 url로 변경
  • docker build
    • docker build
  • docker push
    •  
  • docker run
    • docker run -d --network ecommerce-network \
          --name [컨테이너 이름] \
          -e "spring.cloud.config.uri=[config서버]" \
          -e "spring.rabbitmq.host=[rabbitmq서버]" \
          -e "spring.zipkin.base-url=[zipkin서버]" \
          -e "spring.datasource.url=[연결될 db URL]" \
          -e "eureka.client.serviceUrl.defaultZone=[유레카서버]" \
          -e "logging.file=[로그파일]" \
          widn45/[실행될 이미지]:[tag]​
728x90

'Spring Cloud로 개발하는 MSA > 애플리케이션 배포 - DockerContainer' 카테고리의 다른 글

Catalog Microservice  (0) 2022.02.13
User Microservice  (0) 2022.02.13
Monitoring  (0) 2022.02.13
Zipkin  (0) 2022.02.13
Kafka  (0) 2022.02.13