25%
66,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
유레카에 한 서비스가 두 개로 등록되는 오류
안녕하세요 선생님. 강의를 따라가던 중 user-serivce를 인텔리제이를 통해 한 번 구동할 때 유레카에 서비스가 등록되는데 이때 유레카콘솔에 user-service 인스턴스가 두개가 등록되는 것을 확인 할 수 있었습니다. 유레카 대시보드화면에서도 두개가 조회되고 있습니다. 분명 인텔리제이를 통해 한 번만 Run버튼을 눌렀는데 말이죠... 혹시 이런 경우를 보신적이 있을까요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
UnknownHostException
자문자답합니다. 랜덤으로 생성된 user-service의 포트 번호로는 정상적으로 통신이 되는데 gateway 포트 번호인 8000번을 통해 통신할 때는 "java.net.UnknownHostException: failed to resolve 'DESKTOP-XXXXXXX' after 4 queries"라는 에러가 뜨면 아래와 같이 user-service 프로젝트의 application.yml에 hostname을 추가해주면 해결됩니다. eureka: instance: hostname: localhost <참고> https://stackoverflow.com/questions/66133925/spring-boot-api-gateway-unable-to-resolve-name
- 해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
로그인을 다시 하지 않고 이전에 사용했던 JWT 토큰 사용
안녕하세요 ~ 26분에 user-service를 재실행하고 회원가입을 새로 한 다음에, 로그인을해서 JWT를 새로 발급받지 않고 기존 JWT를 사용하셨는데, JWT토큰은 만료기간만 지나지 않으면 계속 사용할 수 있는건가요??!
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Spring Cloud Configuration 서버 장애시 작동원리
여러 마이크로 서비스의 환경 프로퍼티를 한곳에서 관리하고 동적으로 변경할수 있는 방법은 참 좋은것 같은데, 이 GIT으로 관리되는 저장소 혹은 Spring Cloud Configration 서버가 내려갔다거나 하면 어떻게 되는 건가요? 모든 마이크로서비스가 장애후 재시작이 안된경우는 이미 가져온 프로퍼티 정보가 메모리 같은곳에 있어서 문제 없을것 같은데 재시작이 필요한 경우는 GIT이나 Spring Cloud Configration 서버등에 중앙 관리 서버 장애시, 구동도 못하게 되는 상황이 연출되는지요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
동작 방식
안녕하세요 선생님! 훌륭한 강의 잘보고 있습니다. 해당 파트를 공부하는데 있어 스프링 시큐리티의 동작 방식이 궁금합니다. 1. 필터 http.authorizeRequests().antMatchers("/**") .hasIpAddress("127.0.0.1") //<--ip .and() .addFilter(getAuthenticationFilter()); 여기서 addFilter 메서드는 단순 welcome api를 요청하여도 필터가 동작하나요 아니면 로그인 할때만 필터가 동작하나요? 2. attemptAuthentication 메서드 //로그인 시도하면 가장 먼저 실행됨@Overridepublic Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException { try { //전달되어진 inputStream 을 자바 클래스 파일로 변환 RequestLogin creds = new ObjectMapper().readValue(request.getInputStream(), RequestLogin.class); //사용자가 입력한 값을 토큰으로 바꾸고 인증 처리를 하는 매니저에게 넘기면 아이디와 패스워드를 비교 //토큰 만듬 return getAuthenticationManager().authenticate( //토큰으로 변환 new UsernamePasswordAuthenticationToken( creds.getEmail(), creds.getPassword(), new ArrayList<>() ) ); } catch (IOException e) { throw new RuntimeException(e); }} 로그인 시 가장 먼저 실행되는 메서드의 반환 값이 Authentication 객체인데, 그 객체가 아래 메서드에 사용되나요? 그 이유가 loadUseByUsername 메서드의 파라미터에 값을 넣어 준적이 없는 내부적으로 파라미터를 Authentication 객체의 값을 활용하나요? @Overridepublic UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { //순서 2 UserEntity findUser = userRepository.findByEmail(username); if (findUser == null) { throw new UsernameNotFoundException(username); } //User라는 객체로 success 메서드에서 사용 --> (User)authResult.getPrincipal() return new User(findUser.getEmail(), findUser.getEncryptedPwd(), true, true, true, true, new ArrayList<>());} 로그인 시 순서: 1. attemptAuthentication 메서드 실행하여 Authentication(토큰) 객체 반환 2. loadUserByUsername 실행하여 Authentication 객체를 활용 하여 UserDetails 객체 반환 3. successfulAuthentication 실행하는데 UserDetails 객체 활용 가 맞나요..? 제가 나름 이해한대로 써봤습니다.. 로그인 시 메서드의 호출 순서를 알고싶습니다. 또한 각 메서드의 반환 값이 서로 어떻게 연관이 있는지 궁금합니다. spring security가 굉장히 어렵다고는 알고있는데.. 정리가 잘안되네요ㅜㅜ 두서 없이 쓴거같아 죄송합니다. 선생님의 강의를 보며 어제보다 나은 실력을 겸비하는거 같아 항상 감사합니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
로드 "발랜서"가 아니라 "밸런서" 입니다.
교육 자료니 만큼 업계에서 주로 사용하는 발음으로 설명 부탁드립니다. 로드 "발랜서"가 아니라 "밸런서" 입니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
kafka 에서의 ObjectMapper 사용 질문드립니다.
안녕하세요. kafka 에서 Json을 ObjectMapper를 통해서 변경하셨는데 이러한 방법이 일반적인 방법인가요? 아니면 강의의 접근성을 낮추기 위해서 택하신 방법이신가요? 제가 지식이 없어서 제대로 된 질문을 한지 모르겠습니다. ㅠㅠ ObjectMapper를 쓰면 병목이 발생하거나, 성능 문제가 발생할 수 있다는데 kafka에서는 괜찮은지 질문드리고 싶습니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
h2 데이터베이스
안녕하세요 강사님! h2 console에서 test connection을 했는데 whitelabel error page가 뜹니다.. datasource를 추가해서 시도해보고 여러 가지를 시도해봤는 데도 해결이 안 되네요ㅜ
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
후속강의에 대한 질문입니다
8월중으로 후속강의가 나온다고 공지하셨는데 아직 안나온건지 아니면 곧나올예정인지 궁금합니다 강의가 알차고 재미있어서 기대를 많이하고 있습니다
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
spring cloud sleuth 에서 distributed tracing 에 대해서 궁금한게 있습니다.
spring cloud sleuth 의 경우 로그에 각 id 를 내려서 로그를 트레이싱하는걸로 학습했는데요. 그럼 마이크로서비스 아키텍처의 통신이 api call 이 아닌 message queue (kafka, rabbitmq) 인 경우에도 distributed tracing 이 가능한건가요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
application.properties로는 어떻게 해야 할까요??
검색을 해봐도 yml파일의 예시만 나오고 properties로는 나오질 않는데, yml경로에 맞춰서 properties를 작성하면 오류가 발생하네요 혹시 설정파일 properties로는 어떻게 해야 하는지 알수 있나요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
유레카와 spring cloud gateway ?
둘다 로드밸런서가 될 수 있는데, 각각 어떤 차이점이 존재할까요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Error: Unable to access jarfile .port=9004
Error: Unable to access jarfile .port=9004 해당 오류에 대해 원인을 모르겠습니다
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
운영 환경 actuator 노출 여부
운영환경에서 actuator endpoint를 노출 시킬 수 있을지 문의 드립니다. 개발 환경에서는 상관 없겠지만, 실제 서비스 운영 환경에서 actuator 관련 end point url을 노출시키면 보안 관련 이슈 및 문제로 인해 노출시키지 못하는걸로 알고 있는데 해당 운영 환경에서 가능한 것인지 문의 드립니다. 추가로 운영 환경에서는 actuator end point 노출에 대한 안전 장치가 별도 구성되어야 되는지 문의 드립니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
토큰정보 변경
로그에는 리로드 했다는 정보가 보는데 토큰 값이 변경이 안되는데요 bushrefresh userservice에서 다르게 설정 된건 enviroment 설정이 아니라 @Value("${token.secret}") 설정하고 private AuthenticationFilter getAuthenticationFilter() throws Exception { // AuthenticationFilter af=new AuthenticationFilter(uService, authenticationManager()); //af.setAuthenticationManager(authenticationManager()); return new AuthenticationFilter( authenticationManager(),uService,expireDate,secret);} 이렇게 설정했습니다. busrefres 후 Saw local status change event StatusChangeEvent [timestamp=1630340225266, current=UP, previous=DOWN] Keys refreshed [token.secret] DiscoveryClient_USER-SERVICE/user-service:20fe38fa074d7748fb00bd3965a76338 - registration status: 204 DiscoveryClient_USER-SERVICE/user-service:20fe38fa074d7748fb00bd3965a76338: registering service... DiscoveryClient_USER-SERVICE/user-service:20fe38fa074d7748fb00bd3965a76338 - registration status: 204 이렇게 로그가 나왔습니다. maven이 아닌 그레들이며implementation 'org.springframework.cloud:spring-cloud-starter-bus-amqp' 2.5.4 스프링 버전 사용중입니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
gateway 질문이 있습니다.
강의에서 보여주신 코드 그대로 작성했는데 first-service, second-service 둘다 http://localhost:8081/first-service/message http://localhost:8082/second-service/message 로 접속하면 아래 같은 에러가 뜹니다 2021-08-30 23:49:28.958 WARN 13100 --- [nio-8081-exec-4] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingRequestHeaderException: Required request header 'first-request' for method parameter type String is not present] yml 방식과 자바 클래스 방식 둘다 해봤는데 둘다 request header 를 못찾고 400 에러가 납니다. @Sl4fj 로 로그 기록 남겨볼려고 해도 로그도 안남네요 어떻게 해야될까요? 감사합니다
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
서비스? 인스턴스?
안녕하세요 선생님! 언제나 친절한 답변과 훌륭한 강의 감사드립니다. 유레카 서비스에 등록한 서비스는 지금 까지 first-service, second-service 두개인데, 두개의 인스턴스가 실행중이다 라고 말할 수 있나요? 또한, 하나의 서비스에 두개의 포트가 실행될때, 하나의 서비스에 접근할 수 있는 포트가 두개이다 라고 말하면 되나요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
406 - Not Acceptable 에러 해결방법 문의
안녕하세요 MSA - User서비스 마지막 부분을 테스트 하던중 아래 오류가 발생하는데 해결을 못하고 있습니다. H2 DB에서 제대로 인서트는 되는데 결과값만 오류가 발생을 하네요. 스프링부트 - 2.5.4. 최신버전 사용중입니다. JDK 1.8이며, 나머지 라이브러리도 최신버전입니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
yml파일 질문이요!
default-filters: - name: GlobalFilter args: baseMessage: Spring Cloud Gateway Global preLogger: true postLogger: true 질문이요! 여기서 args값들 이름이 Global 안에 클래스 config와 같은건 알겠는데, @Data되어있어서 저렇게 사용이 가능한 건가요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
MSA의 단점과 구축 사례
MSA의 단점과 구축 사례에 대해 알 수 있을까요??