강의와 같은 버전으로 모두 같게 진행하지 않아서 그런지.. windows 타겟을 찾을 수가 없습니다. 전에 AI가 알려준 건 도움이 되질 않았어요 분명 prometheus 타겟은 잡힌 것으로 봐서는 app 폴더 내부로 들어가서 prometheus.yml 파일도 잘 읽은 것 같은데요.. 왜 그대ㅑ로 아래에 job_name이 windows인 것은 왜 설정이 안 되는지 모르겠습니다..
안녕하세요, kafka source connect 등록할 때 mariadb가 연결이 잘 안되서 h2 db로 진행을 했습니다. 등록 후 kafka connect status를 보면 tasks가 빈 배열로 나오네요,, CLI에서는 마지막에 tables were not found라고 나오는데 테이블이 있는데도 없다고 하는데 혹시 이런 증상 해결하신 분 계실까요?
안녕하세요 ! 강사님 좋은 강의 잘 보고 있습니다. Feign의 예외처리에서 강의와 다른부분이 발생하여 질문 남깁니다. FeignErrorDecoder를 통해 예외 처리시 . [user-service] [-auto-1-exec-10] .w.s.m.a.ResponseStatusExceptionResolver : Resolved [org.springframework.web.server.ResponseStatusException: 404 NOT_FOUND "사용자의 주문이 비었습니다"] 위 로그가 user-service에서 error catch를 통해 잘 나오는 것을 확인했습니다. (09:36)강의영상에서는 404 Error를 전달하여 포스트맨 응답에서 Error msg까지 출력이 되었지만, 저의 경우에선 APIGatgeway에서의 로그및 포스트맨응답에 Global Filter End : response id -> 403 FORBIDDEN 으로 응답이 보내집니다. 이전 강의 부분(정상 응답)에서 해당 문제가 없었지만, 에러 응답시 403응답으로 처리되어지는 부분에 대해서 추가적으로 ApiGateWay에 대해서 github에서는 따로 handling이 없어서 추가적으로 handler를 등록하여 적용되어야하는 부분인지 여쭤봅니다 . ++ 해당부분 user-service의 WebSecurity 특정 ip 통과부분에 실제 ip(자신의 ip)를 누락하였네요. Error에 대한 부분도 응답이 됩니다. 추가적으로 error에 대해서 403으로 응답이 되는부분은 https://colabear754.tistory.com/182 해당글을 참고하시면 될것같습니다.
해당 예제를 통해 주키퍼를 먼저 실행을 해볼려하지만 계속해서 해당 classpath를 찾지 못하고 있습니다. 비슷한 상황을 겪은 사람들의 경우 바이너리 파일이 아닌 소스 파일을 다운 받아 해당 문제를 겪었다고 했지만 저의 경우 알맞은 파일을 설치하여 압축을 해제하였는데 어떤게 원인일까요
좋은강의 잘듣고있습니다! 다름아니라 현재 싱크 커넥터등록후 DB에 데이터가 등록되지 않고 있습니다. 먼저 아래사진처럼 post요청을 통해 커넥터 등록을 하였습니다. 토픽은 예제를 똑같이 따라하였을 때도 안되었어서 my-topic-orders로 새로 바꿔서 등록하였습니다. 이에 맞게 테이블도 아래 사진처럼 생성하였습니다. post요청을 한 후 주문이 해당 토픽으로 전달했음에도 아래 사진처럼 DB에 적용이 되지않아 어디가 문제일지 커뮤니티를 뒤져도 잘모르겠어서 질문드립니다 ㅠㅠ (토픽도 "my_topic_orders"로 지정하였습니다.) 현재 커넥터 등록상태입니다. 추가로 kafka confluent에서 발생한 로그입니다
가상의 상황 외부 연동의 책임을 가진 external-interface 서버 기상청에서 제공하는 api 로부터 오늘의 날씨 를 가져올 수 있습니다. n 대로 스케일 아웃 될 수 있습니다. 현재 구성은 각 서버별로 독립적으로 서킷 브레이커를 관리하고 있습니다. ex) 기상청 api 장애 상황에서 1번 서버로 요청이 집중되어 1번 서버는 open 되었지만 2번 서버는 요청이 별로 들어오지 않아 아직 close 상태일 수 있습니다. 이 때 n 대의 서버간 서킷 브레이커의 상황을 필수적으로 공유해야 된다면 어떻게 할 것 인가? 생각하는 안 redis pub/sub 기능을 통해 구현한다. 1번 서버는 외부 연동 실패로 서킷브레이커가 open 되었다. 1번 서버는 onStateTransition 의 로직으로 open 상태를 redis 에 pub 한다. 2번 서버는 sub 하여 자신의 상태를 open 으로 동기화 한다. 하지만 우려되는 맹점이 있습니다. pub, sub 방식은 서버간 동기화의 간극이 있습니다. 결과적 일관성은 보장될지 언정 이 간극은 또 다른 이슈를 유발할 수 있습니다. ex) 1번 서버는 open 상태를 pub 했습니다. 2번 서버는 open 상태를 pub 했습니다. (1번 서버의 open 을 sub 하기 전에) 1번 서버는 close 상태가 되었지만 (외부 연동이 정상적으로 복구되었음에도 불구하고) 2번 서버에서 pub 한 open 정보에 의해 자신을 open 상태로 변경하였습니다. 동기화의 간극으로 인해 서로의 open 상태를 공유하는 것이 무한히 반복 됩니다. 물론 실제 실패로의 event 만 pub/sub 하고, redis 의 상태 공유는 pub/sub 하지 않으면 될 것 같기도 합니다. 하지만 가능/불가능 여부를 떠나 여전히 위험할 것 같다는 직감이 듭니다. redisson 과 같은 공유락까지도 생각을 해보았는데, 배보다 배꼽이 큰 것 같다는 생각이 듭니다. 그외 만약 actuator api 호출을 통해 명시적인 변경을 하고 싶다면 실무라면 대표 도메인에 elb 나 ingress 등을 설정할 것 입니다. 그러면 n 대의 서버에 상태 변경 명령을 어떻게하면 api 로 보낼 수 있나요? 혹시 이건 아예 불가능한 생각일까요? 사실 실무라면 굳이 서버간 서킷 브레이커의 상태를 공유하지 않을 것 같습니다. 장애 상황이 자주 발생하지도 않을 것이거니와 서킷 브레이커 발동을 위한 window 크기를 충분히 작게 설정한다면 회복을 방해할 정도의 트래픽이 더 들어가지는 않을 것이라고 생각하기 때문 입니다. 오히려 이런 공유 로직으로 인해 복잡도만 높아질 것이라고 생각해서 입니다. 하지만 실무를 떠나 기술적인 방법은 무엇이 있을까 인사이트가 궁금합니다.
안녕하세요 강의를 듣던중 profile이 어떻게 적용되는지 궁금하여 질문드리게 되었습니다. 현재 dev관련 설정파일이 왼쪽 공통 항목 테스트를 위한 application.yml 파일이 오른쪽 입니다. 모두 같은 common이라는 환경변수로 어떤 .yml파일의 값을 사용하는지 확인하였는데요 user-service의 profile설정은 아래 사진처럼 하였습니다. health-check를 보내서 common값을 확인했을 때, 아래사진 처럼 application.yml파일의 common값을 사용하는 것을 확인하였습니다. 공통으로 가져오는 application.yml파일의 common값과 ecommerce-dev.yml의 common값이 겹칠 때 profile을 dev라 설정했기 때문에 health-check로 요청시 common값에 common-dev 로 찍힐것이라 생각했었습니다. 혹시 common-dev로 안찍히는 이유가 공통으로 가져오는 application.yml값과 환경변수가 겹친다면 공통으로 가져오는 yml파일의 환경변수로 찍히는 것인지 제가 profile설정을 잘못한 것인지 궁금해 질문드렸습니다 ㅠㅠ
MSA강의 재밌게 잘 보고 있습니다 👏 강의를 보던 중 카프카 연동을 위해 kafkaadapter와 event 패키지를 정의하고 객체들을 넣고있는데, 저희 회사에서도 겪고 있는 문제가 떠올라서 궁금한게 생겼는데, 프로듀싱하는 서비스와, 컨슘하는 서비스의 프로토콜을 ItemReturned, ItemRented등으로 정의하고 내부 값에서IDName등을 사용한다고 할 때 이 프로토콜 스펙이 변경될 때마다 각 팀별로 객체 정보를 수정한다고 하면, 마치 서비스내에 코드 중복들이 된 상태에서 기능이 변경될때마다 중복된 코드들을 같이 관리하며 싱크를 맞춰줘야하는 작업들과 유사해보이는데, 이에 대해서는 어떻게 풀어나가야 하나요? 즉, 서비스간에 데이터 송수신을 위한 객체들이 중복코드처럼 보이는데 스펙변경이 있을때마다 각 서비스마다 직접 코드 수정을 하는건 한 팀에서 수정을 누락하거나 관리를 놓친 프로젝트에서 수정이 누락되면 문제가 될 수 있을 것 같은데 어떤식으로 풀어나가는지 궁금합니다.
안녕하세요 선생님! 강의를 잘 듣던 와중에 궁금증이 생겨 질문 드립니다. 게이트 웨이에 설정한 필터 중, 요청 uri를 재정의 하기 위해서 RewritePath 라는 필터를 사용하잖아요. 이때 /user-service/(?<segment>.*), /$\{segment} 는 정규식인가요??... 정규식표현에 segment라는 것이 찾아봐도 나오지 않아서요!!
안녕하세요! 강의 잘 보고있습니다.이번 강의에서 블루그린배포 개념을 설명해주시며 스케일 업에 대해 알려주셨는데요! 제가 공부했던 얕은 지식을 떠올려보면, 스케일 업 은 기존 서버의 사양 등을 업그레이드해 시스템을 확장 (수직적) 스케일 아웃 은 서버를 여러대 추가하여 시스템을 확장 - 로드밸런싱 동반 (수평적) 라고 배웠던 것 같은데.. 아무튼, 질문의 요점은 블루 그린 배포는 여러 대의 서버가 있는 스케일 아웃 방식 에서 무중단 배포가 가능한 배포 모델이 아니라, 스케일 업 방식 인가요?? 감사합니다!
강의 소개에 부트3버전으로 2024.01 업데이트라고 되어 있던데, 이전 질문 내용을 보니 작년 초부터 업데이트하신다고 하셨는데, 업데이트가 지속적으로 안되는 것 같더라구요. 이번 1월에는 업데이트 진행하시나요? 질의응답에서 매번 한다고 말씀하시고, 지속적으로 업데이트 안되는 것 같아 문의드립니다. 강사님 강의의 한 팬으로써 꼭 업데이트 되길 바랍니다. 1회독 끝낸상태라 한번 더 강의를 수강하려는데, 선문의 드립니다. Spring Boot 3.2 + Spring Cloud 2023.0.0 업데이트 예정 (2024-01)
강의 소개에 Spring Boot 3.2 + Spring Cloud 2023.0.0 업데이트 예정 (2024-01) 쓰여 있는데 해당 계획 실습 예제 파일만 업데이트 하시는 건지 혹은 강의 녹화본까지 업데이트를 하시는 것이 유효한지 질문드립니다. 또한 커뮤니티의 질문 글을 보면 강사님께서 8월 이후로 답변이 드문드문 한 상태인데 인프런 AI의 답변이 해당 질문 글에 대한 적절한 답변을 하여 답변을 하시지 않는 건지, 현재 바쁘셔서 답변을 하시지 않는 건지 질문드립니다. 감사합니다.
실수로 gateway-mvc라이브러리를 설치 후 실행 했을 때 톰캣으로 실행이 되었는데 이때는 게이트웨이url에 /first-service/welcome를 붙였을 때 실행이 되지 않았는데, gateway 라이브러리 다시 설치후 netty 에서는 정상적으로 동작 하는데 톰캣에서는 안되고, netty에서만 되는 이유가 뭔가요???