묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강사님 안녕하세요. 강의 항상 잘 듣고 있습니다.
질문은.. 강의랑 똑같이 했는데 이상하게 whitelabel error page만 보이네요.. 혹시 datasource 설정해줘야하나 해서 추가해봤는데도 안 되고.. 1편 강의처럼 Spring Security 때문도 아니고.. 원인을 못 찾겠어서 문의드립니다..
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
카프카 에러메시지 삭제에 관해 질문이 있습니다.
안녕하세요, 처음 질문을 남겨보는것 같은데, 우선 강사님 강의에서 정말 많이 배우고 있습니다. 제가 강의를 듣고 따라하던중 Schema의 Field datatype을 string으로 적어야 하는데 String으로 잘못 적은 문제가 있었습니다. 이때 발생한 에러 메시지들이 topic에 쌓여서 지속적으로 문제가 발생했어서 topic의 메시지는 kafka-topic.sh에 retention.ms를 짧게 바꿨다가 늘리는 방법으로 해결을 했습니다. 질문드리는 내용은 1. 혹시 이와같이 kafka 작업중 에러로인해 잘못된 메시지가 쌓일경우, 이것을 처리하는 방법이 위의 방법이 가장 나은지(해결하지 않으니 잘못된 메시지들을 불러오면서 계속 에러를 발생시키더라구요) 2. 두번째로는 이러한 에러메시지들이 kafka connect에도 쌓여서 서버 기동시마다 에러메시지를 쭈욱 불러옵니다. 가동에는 문제가 없으나, 혹시 깔끔하게 정리할 수 있는 방법이 있으면 알려주시면 감사하겠습니다. 좋은 강의 해주셔서 감사드립니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
선생님. Postman에서 Socket hang up 에러가 납니다.
안녕하세요. 선생님! 회원가입, 로그인은 잘 되는데, AuthenticationHeaderFilter를 적용하고 127.0.0.1:8000/user-service/welcome 으로 get 호출하면 NoClassDefFoundError가 발생합니다. filter 코드도 github에 있는 거 그대로이고, application.yml에도 filter로 등록했는데 postman에서 응답을 받을 수 없다면서 Socket hang up 에러가 납니다. 그런데 get으로 저의ip:port/welcome 으로는 조회가 잘 되요..! 제가 h2를 선생님이 설정한 방식이 아닌 tcp 통신으로 진행하고 있었습니다. 이게 문제인 걸까요..? h2를 tcp로 연결 : (jdbc:h2:tcp://localhost/~/user-service)
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
로그인을 다시 하지 않고 이전에 사용했던 JWT 토큰 사용
안녕하세요 ~ 26분에 user-service를 재실행하고 회원가입을 새로 한 다음에, 로그인을해서 JWT를 새로 발급받지 않고 기존 JWT를 사용하셨는데, JWT토큰은 만료기간만 지나지 않으면 계속 사용할 수 있는건가요??!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
h2 데이터베이스
안녕하세요 강사님! h2 console에서 test connection을 했는데 whitelabel error page가 뜹니다.. datasource를 추가해서 시도해보고 여러 가지를 시도해봤는 데도 해결이 안 되네요ㅜ
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Error: Unable to access jarfile .port=9004
Error: Unable to access jarfile .port=9004 해당 오류에 대해 원인을 모르겠습니다
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
mvn이 안돼요ㅠㅠㅠ
몇 시간째 삽질했는데 원인을 못찾겠습니다. ㅠㅠㅠ머리가 아프네요,,,ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
같은 네트워크에 묶인다는건 물리적으로 같은 Host PC 에 컨테이너가 추가된다는 건가요?
docker network create 명령을 통해 만든 ecommerce-network 상에 컨테이너를 추가하기 위해서는 물리적으로 같은 Host PC에 컨테이너가 존재해야 하나요? 아니면 원격에 물리적으로 다른 위치의 컨테이너도 ip를 추가하여 같은 네트워크로 묶을수도 있는건가요? 강의 마지막 15:17쯤에서 나오는 강의 화면을 보면서 이런 의문이 들었습니다.
-
미해결15일간의 빅데이터 파일럿 프로젝트
yum install 에러 질문입니다.
yum install -y gcc* 공지에 있는대로 한 후에는 다음과 같은 에러가 납니다.. 답변 부탁드립니다. [root@server02 ~]# yum install -y gcc* Loaded plugins: fastestmirror, refresh-packagekit, security Setting up Install Process Loading mirror speeds from cached hostfile http://vault.centos.org/6.10/os/x86_64/repodata/repomd.xml: [Errno 14] Peer cert cannot be verified or peer cert invalid Trying other mirror. It was impossible to connect to the Red Hat servers. This could mean a connectivity issue in your environment, such as the requirement to configure a proxy, or a transparent proxy that tampers with TLS security, or an incorrect system clock. Please collect information about the specific failure that occurs in your environment, using the instructions in: https://access.redhat.com/solutions/1527033 and open a ticket with Red Hat Support. http://vault.centos.org/6.10/extras/x86_64/repodata/repomd.xml: [Errno 14] Peer cert cannot be verified or peer cert invalid Trying other mirror. http://vault.centos.org/6.10/updates/x86_64/repodata/repomd.xml: [Errno 14] Peer cert cannot be verified or peer cert invalid Trying other mirror. Resolving Dependencies --> Running transaction check ---> Package gcc.x86_64 0:4.4.7-23.el6 will be installed --> Processing Dependency: cpp = 4.4.7-23.el6 for package: gcc-4.4.7-23.el6.x86_64 --> Processing Dependency: cloog-ppl >= 0.15 for package: gcc-4.4.7-23.el6.x86_64 ---> Package gcc-c++.x86_64 0:4.4.7-23.el6 will be installed --> Processing Dependency: libstdc++-devel = 4.4.7-23.el6 for package: gcc-c++-4.4.7-23.el6.x86_64 --> Processing Dependency: libmpfr.so.1()(64bit) for package: gcc-c++-4.4.7-23.el6.x86_64 ---> Package gcc-gfortran.x86_64 0:4.4.7-23.el6 will be installed ---> Package gcc-gnat.x86_64 0:4.4.7-23.el6 will be installed --> Processing Dependency: libgnat-devel = 4.4.7-23.el6 for package: gcc-gnat-4.4.7-23.el6.x86_64 --> Processing Dependency: libgnat = 4.4.7-23.el6 for package: gcc-gnat-4.4.7-23.el6.x86_64 ---> Package gcc-java.x86_64 0:4.4.7-23.el6 will be installed http://vault.centos.org/6.10/os/x86_64/repodata/5f7694d9c6c4a41dee56f51a965c3426ae2f685d6a9fb99d2e5a255c7bec0864-filelists.sqlite.bz2: [Errno 14] Peer cert cannot be verified or peer cert invalid Trying other mirror. Error: failure: repodata/5f7694d9c6c4a41dee56f51a965c3426ae2f685d6a9fb99d2e5a255c7bec0864-filelists.sqlite.bz2 from base: [Errno 256] No more mirrors to try.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 포스팅
혹시 강의 정리해서 개인블로그에 포스팅 해도 될까요?? 출처는 남기겠습니다.!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
MS간 호출에 있어 질문이 있습니다.
feign client를 이용해 order-service의 컨트롤러를 호출하는 방식으로 이해했습니다. 그런데, 실제 order-service의 getOrder라는 컨트롤러 메서드는 반환타입이 ResponseEntity로 한번 감싸져 있습니다. 이를 user-service에서 이용할때는 ResponseEntity가 벗겨진 List<ResponseOrders>를 바로 사용했구요. 아마, @FeignClient 어노테이션을 사용함으로써 이렇게 바로 파싱받아 사용할 수 있는 것 같은데.. ResponseEntity로 감싸져 있는 것만 파싱할 수 있는건가요?
-
미해결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을 삭제 안한 것 같습니다
헷갈렸어여
-
미해결15일간의 빅데이터 파일럿 프로젝트
zookeeper오류...
2021-07-11 17:25:26,567 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1118] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) 2021-07-11 17:25:26,568 [myid:] - WARN [main-SendThread(localhost:2181):ClientCnxn$SendThread@1245] - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect java.net.ConnectException: Connection refused at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350) at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1224) putty에서 zookeeper-client를 실행시키면 자꾸 반복되서 나오는데 무슨 오류일까요... 구글링을 통해 해결하려는데 쉽지 않아서 여쭤봅니다 ㅠㅠ...
-
미해결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)
비즈니스 로직을 카프카로 동기화하는 장/단점이 궁금합니다.
안녕하세요, 수업 잘 듣고 있습니다! 질문 : 주문을 함으로써 제품 수량이 감소한다는 것은 비즈니스 로직(요구사항)으로 볼 수 있을 것 같습니다. 도메인 주도 패턴에서는 주문 정보를 생성함과 동시에 제품 재고 정보가 같이 업데이트 되는 것이 하나의 트랜잭션에 묶일 것 같습니다. 이번 카프카 데이터 동기화에서는 이러한 부분을 트랜잭션에 묶지 않고 별도로 후속 동기화 처리를 하는 부분을 설명해주셨습니다. MSA에서는 제품(카탈로그) 서비스 조직과 주문 서비스 조직이 분리되어 있다는 전제 하에 주문을 했다는 것을 알려주고 재고 관리는 제품 서비스 조직에게 일임하는 것인가요? 주문 서비스 팀은 주문을 했다는 사실을 메시지 큐 토픽에 전달함으로써 로직을 마치고, 이후 제품 서비스나 그 외 다른 서비스 팀이 해당 정보를 가지고 재고 관리 등 후처리를 하는 형태인 것인가요? 모노리틱 환경에서만 작업을 해봐서, 데이터를 처리하는 트랜잭션 부분에 대해서 ACID나 BASE라는 용어를 이해는 해도 이를 실무에 적용하는 부분에 대해 애매한 경계선이 있는 것 같습니다. 다시 질문: 1. 트랜잭션으로 묶는 기준이 있을까요? 2. REST로 제품 서비스를 업데이트 하는 로직을 직접 수행하는 것은 바람직하지 않을까요? 3. 데이터 동기화는 향후 제품 서비스 외 확장을 고려하는 것이 목적인가요? 질문이 길어졌는데 읽어주셔서 감사합니다!