묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Config Server 설정파일 관리방법 질문
안녕하세요. 선생님 Spring Cloud Config Server 의 설정파일 관리에 대해 문의드립니다. Config Server 의 설정값도 변경이 필요한 항목들이 있어보입니다. RabbitMQ 브로커의 주소라던가, Https 사용시 KeyStore 의 위치 라던가, 몇가지 항목이 수정될때, Config Server 도 그 값을 적용할 수 있을까 고민이 됩니다. 제가 확인한 항목은 Remote Repository 에 application.yaml 항목을 만들면 Config Server 도 actuator/metrix 확인 시 propertySources 로 읽어 오는 것을 확인했습니다. 다만 해당값들이 적용은 되지 않았습니다. 오케스트레이션에서 ENV 값을 바꾸어서 롤링업데이트를 수행해도 되겠지만, Config Server 자체에서 Uptime 으로 자체 설정값 변경내용을 적용하고 싶습니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
대쉬보드에 데이터를 못가져오는것 같습니다.
안녕하세요 이제 거의 강의가 끝나가네요 ㅠ 그라파나관련 질문이 있습니다. 대쉬보드 설정을 맞게 한거같은데 데이터를 불러오지 못하는것 같습니다. Data sources: 프로메테우스 설정정보 apigateway-service 에 대한 cpu, memory used 이런 차트는 잘 나오는데 requests served 의 데이터 표시, success api gateway의 차트는 N/A 또는 No data라고 뜨는데 원래 값이 안나오는 것이 맞는지 아니면 뭔가 잘못된 것인지 잘모르겠습니다. (프로메테우스에서 spring_cloud_gateway_requests_seconds_count값을 넣었을때 값이 있으면 나와야 하는것 아닌가요?)
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
db 하나 사용할때
Kafka Connector + DB 에서 메세지 큐잉 서비스를 사용하고 DB는 하나만 사용한다고 하셨는데 DB를 하나만 사용할 거면 메세지 큐잉 서비스가 필요한지에 대해서 궁금합니다.!
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
gradle 프로젝트 zipkin 의존성 등록시 참고하세요
먼저 저의 경우 아래와 같이 의존성을 추가했었습니다. implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'implementation 'org.springframework.cloud:spring-cloud-starter-zipkin' 이후 실습을 진행하면서 로그에는 정상적으로 Trace, Span ID가 출력되는 것도 확인했는데 이상하게 zipkin 페이지에서는 해당 Trace ID로 검색해도 아무런 결과가 나오지 않더군요.. Sleuth를 통해서 Trace, Span ID 생성은 정상적으로 되었지만 zipkin에 문제가 있다고 판단하여 여러 자료를 찾아봤는데 삽질을 30분정도 한 결과 의존성 등록에 문제가 있던거였네요.(2.2.3.RELEASE 완벽히 적어야함..) 강의 영상에서 2.2.3.RELEASE 버전을 명시해 주셔서 아무생각없이 implementation 'org.springframework.cloud:spring-cloud-starter-zipkin:2.2.3' 으로 기입하여 의존성을 추가했고 오류가 뜨지 않아서 정상적으로 라이브러리를 다운 받은줄 알a았는데 `spring-cloud-starter-zipkin` 로 시작하는 라이브러리가 존재하지 않더군요 implementation 'org.springframework.cloud:spring-cloud-starter-zipkin:2.2.3.RELEASE' 위처럼 RELEASE 포함하여 의존성 등록하니 해결되었네요ㅜ zipkin server CLI, 스프링 부트 console에서도 별다른 로그가 뜨지 않다보니 시간만 버렸네요ㅜ 같은 문제 있으신분들 참고하시길..
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
gateway 서비스에서 application.yml 파일의 secret을 삭제 안한 것 같습니다
헷갈렸어여
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
커넥터 관련 질문입니다.
커넥터는 도커로 사용하지 않나요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
localhost:8083/connectors 호출시 에러가 발생합니다.
wsl2 리눅스에서 서버를 startup 하였고 정상적으로 실행은 되었습니다. startup 후에 localhost:8083/connectors호출 하면 아래와 같은 에러가 발생합니다. org.apache.kafka.connect.errors.ConnectException: Failed to find any class that implements Connector and which name matches io.confluent.connect.jdbc.JdbcSourceConnector, available connectors are: PluginDesc{klass=class org.apache.kafka.connect.file.FileStreamSinkConnector, name='org.apache.kafka.connect.file.FileStreamSinkConnector', version='6.1.0-ccs', encodedVersion=6.1.0-ccs, type=sink, typeName='sink', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.file.FileStreamSourceConnector, name='org.apache.kafka.connect.file.FileStreamSourceConnector', version='6.1.0-ccs', encodedVersion=6.1.0-ccs, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.mirror.MirrorCheckpointConnector, name='org.apache.kafka.connect.mirror.MirrorCheckpointConnector', version='1', encodedVersion=1, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.mirror.MirrorHeartbeatConnector, name='org.apache.kafka.connect.mirror.MirrorHeartbeatConnector', version='1', encodedVersion=1, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.mirror.MirrorSourceConnector, name='org.apache.kafka.connect.mirror.MirrorSourceConnector', version='1', encodedVersion=1, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockConnector, name='org.apache.kafka.connect.tools.MockConnector', version='6.1.0-ccs', encodedVersion=6.1.0-ccs, type=connector, typeName='connector', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockSinkConnector, name='org.apache.kafka.connect.tools.MockSinkConnector', version='6.1.0-ccs', encodedVersion=6.1.0-ccs, type=sink, typeName='sink', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockSourceConnector, name='org.apache.kafka.connect.tools.MockSourceConnector', version='6.1.0-ccs', encodedVersion=6.1.0-ccs, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.SchemaSourceConnector, name='org.apache.kafka.connect.tools.SchemaSourceConnector', version='6.1.0-ccs', encodedVersion=6.1.0-ccs, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSinkConnector, name='org.apache.kafka.connect.tools.VerifiableSinkConnector', version='6.1.0-ccs', encodedVersion=6.1.0-ccs, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSourceConnector, name='org.apache.kafka.connect.tools.VerifiableSourceConnector', version='6.1.0-ccs', encodedVersion=6.1.0-ccs, type=source, typeName='source', location='classpath'} at org.apache.kafka.connect.runtime.isolation.Plugins.connectorClass(Plugins.java:208) at org.apache.kafka.connect.runtime.isolation.Plugins.newConnector(Plugins.java:180) at org.apache.kafka.connect.runtime.AbstractHerder.getConnector(AbstractHerder.java:572) at org.apache.kafka.connect.runtime.AbstractHerder.validateConnectorConfig(AbstractHerder.java:342) at org.apache.kafka.connect.runtime.AbstractHerder.lambda$validateConnectorConfig$1(AbstractHerder.java:326) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
windows는 설정을 어떻게 하나요?
과제 진행하면서 windows에서는 file 경로를 못 찾아서 config 설정이 안되는데 어떻게 해야 하나요?
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Starter-Zipkin 의존성 추가 문제 `Cannot resolve starter-zipkin:unkown`
강사님 안녕하세요.이번 질문은 다름이 아니라, Zipkin 의존성 추가할 때, Spring-boot 나 Cloud 가 강의 시점에 비해 상위 버전이라는 이유여서 그런지 추가가 되질 않아 이렇게 남기게 되었습니다 그래서 아래와 같이 Maven Repo 에서 starter zipkin 의 최신 버전으로 명시하여 애러는 모면했습니다만... <!-- Zipkin --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId></dependency><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> <version>2.2.8.RELEASE</version></dependency> 그러나, 이것이 올바른 설정인지 의문이 듭니다자칫, 충돌이 날것 같은 불안감 있습니다.혹시 다른 방식으로 starter 를 추가해야 되는지 궁금합니다. 제가 실습을 시작할 당시의 Spring-boot, cloud 버전입니다 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.6</version> </parent> <properties> <java.version>11</java.version> <spring-cloud.version>2020.0.2</spring-cloud.version> </properties> 읽어주셔서 감사드립니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
401 Unauthorized
postman으롷 127.0.0.1:port로 /login 호출 시에 401에러가 나는데 왜그런걸까요..? login api 호출 시 loadUserByUserName 메서드 타서 user정보 가져오는거까진 디버그로 확인했는데, 해당 값 user로 감싸서 리턴 후에 응답이 저렇게 나오는데 이유를 모르겠네요.. 참고로 permitAll로 진행중입니다
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
localhost가 다르게 출력될 경우?
이런식으로 host.internal.docker가 출력되는 경우는 무엇일까요..?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
JWT 다중 로그인 처리 질문
user-service에서 AuthenticationFilter를 거치기전 기존에 메모리나, DB에 해당 ID에대한 JWT토큰값이 존재할 경우 기존 토큰은 폐기하고 새로운 토큰값을 발급시켜 새로 로그인한 유저에게 할당해주는 방법으로 하면 괜찮을까요 ??
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
token_secret 변경후 인증부분에 대하여
안녕하세요. 좋은 강의 정말 감사드립니다. 12:12무렵에 token_secret 변경-> busrefresh 후인증할때 Bearer Token의 token값을 변경하지 않아도... debug시 token_secret이 busrefresh로 변경된 값으로 확인 되지만정상적으로 인증 되는것을 확인했습니다. 로그인시 적용된 token_secret 아래의 값입니다. user_token_native_application_#2 이상해서 아래와 같이 다른 값으로 변경후 user_token_native_application_#4 user_token_native_application_#5 user_token_native_application_#9 busrefresh하고 health_check URL을 확인했지만 마찬가지로 인증이 잘되었습니다. 이상한건 아래와 같이 코드를 바꾸면 user_token_native_application_#10 user_token_native_application_#14 user_token_native_application_#17 401Unauthorized 로 정상적인 결과가 나왔습니다. 제 생각으론 # 뒤의 숫자값보다는 자릿수만 인지한거같습니다. 이런생각으로 아래와 같이 숫자를 영문으로 변경해 시도해봤더니 인증이 되었습니다. user_token_native_application_#z 그리고 또 아래와 같이 영문을 두자리수로 늘려봤더니 user_token_native_application_#za 제 생각처럼 숫자든 영문이든 관계없이 자릿수2개로 인지해 인증이 되지 않았습니다. 이런 제 생각이 맞을까요?엉뚱하지만.. 맞아도 이상하고 안맞아도 이상해서 질문드립니다.
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
PC-IP 적용 후, Gateway 경유 GET/POST `/users` - 접근 시 모두 Access Denied 가 뜨는 원인을 알 수 있을까요?
몇번씩 강의를 돌려봐도 틀린곳이 보이질 않아서 여러 테스트를 해보았습니다. PC할당IP >>> MSA 직접 접근 시에는, 잘 작동하였는데 반해,Gateway 경유(localhost) 시, `/welcome` `health_check` `users` GET/POST 모두 차단 되더라구요.학습진행이 어렵게 되어 버렸어요..ㅠㅠㅠ. 강사님.고민끝에 유추되는 원인인데요,Gateway 서버의 IP 주소가 문제가 되어 이런현상이 생긴걸까요? MSA(user-service) 는 PC-IP 를 통한 접근만 허용할 것이고, Gateway 를 통한 접근 IP 는 localhost( 127.0.0.1) 로 되어있으니, MSA 는 Gateway 로 부터 오는 요청은 WebSecurity 설정으로 인해 차단된다 혹시 이런 논리일까요? 또는 이런 방식도 유추됩니다. .hasIpAddress("IP") 에 허용 IP 를 늘린다 혹시 몰라 프로젝트 압축파일 링크를 달았습니다 Link: `Users MicroService - Routes 테스트 까지 실습진행예제` 읽어주셔서 감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
"mvn spring-boot:run"은 구동에 문제없는데, 옵션을 주면 Build Fail 나는 원인을 알 수 있을까요?
알찬 강의 감사드립니다.초장에 막히는 부분이 있어 질문드려보아요. "mvn spring-boot:run"은 구동에 문제없는데, 옵션을 주면 Build Fail 나는 원인을 알 수 있을까요? > mvn spring-boot:run -Dspring-boot.run.jvmArguments='-Dserver.port=9003'[INFO] Scanning for projects...[INFO][INFO] ----------------------< com.example:user-service >----------------------[INFO] Building user-service 0.0.1-SNAPSHOT[INFO] --------------------------------[ jar ]---------------------------------[INFO] ------------------------------------------------------------------------[INFO] BUILD FAILURE[INFO] ------------------------------------------------------------------------[INFO] Total time: 0.296 s[INFO] Finished at: 2021-05-22T20:43:08+09:00[INFO] ------------------------------------------------------------------------[ERROR] Unknown lifecycle phase ".run.jvmArguments=-Dserver.port=9003". You must specify a valid lifecycle phase or a goal in the fo rmat <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: val idate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test -sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-p ackage, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clea n, pre-site, site, post-site, site-deploy. -> [Help 1][ERROR][ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.[ERROR][ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/LifecyclePhaseNotFoundException 혹시몰라서인텔리제이 Maven 설정 캡쳐 받아보았습니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
RemoveRequestHeader 이유
안녕하세요 1. RemoveRequestHeader 를 쓰는 이유가 매번 새롭게 요청받기 위함이라고 하셨는데, 매번 새롭게 요청받아야하는 이유가 무엇일까요? 2. 또한 만약 RemoveRequestHeader 가 존재하지 않는다면 어떻게 될까요? 3. Front 에서 Refresh_token을 httpOnly cookie에 담아서 보내는데 이 경우에는 RemoveRequestHeader 를 사용하지 않고싶다면 쓰지 않아도 될까요? 그로 인해서 발생하는 문제는 무엇일까요?
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
jwt 토큰은 보통 어디에서 보관을 하나요?
안녕하세요 강의 재밌게 보고 있습니다. 제가 프론트엔드에는 무지하여 잘 모르겠는데 jwt 를 서버에서 반환해주면 프론트에서는 일반적으로 어디에 저장을 하다가 요청 보낼때 마다 재사용하나요? 로컬 스토리지나 쿠키 정도 밖에 떠오르는게 없는데 프론트엔드 현업에서 자주 사용하는 방식이 있나요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Eureka 실행하게 되면 상태값이 왜 저는 데스크탑이라고 나오나요?
첫번째가 정상인데 두번째 사진이 제가 한겁니다.. 왜 이렇게 나오는건가요? 그리고 게이트 웨이 서버에서 설정파일에 가시면 routes: - id: first-service# uri: http://localhost:8081/ uri: lb://MY-FIRST-SERVICE 이렇게 설정시 에러가 발생되면서 첫번째 서버쪽으로 안가지네요... java.net.UnknownHostException: failed to resolve 'DESKTOP-KD56ARJ' after 4 queries at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1013) ~[netty-resolver-dns-4.1.63.Final.jar:4.1.63.Final] Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: Error has been observed at the following site(s): |_ checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ HTTP GET "/first-service/welcome" [ExceptionHandlingWebHandler] Stack trace: ㅇ무엇이 문제일까요? ㅠ,ㅠ
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
질문
안녕하세요! 간단한 질문이 있습니다. 7:48 초에 defaultZone에서 서비스를 등록할 서버의 주소로 8761 포트에 등록한다는 것까지는 이해가 되었는데 뒤에 /eureka를 붙여주는 이유는 뭔가요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
디버깅 시에 token.secret 값이 보이지가 않습니다.
계속 찾아보다가 이유를 모르겠어서 선생님한테 물어봐야될 것 같아서 이렇게 글남깁니다.