월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의자료 문의드립니다.
안녕하세요, 강의를 듣고 있는 학새입니다. 다름이 아니라, 강의자료를 인쇄해서 공부하는 것을 선호하여 찾아보려 하였는데 작년 질문글들에 곧 올려주신다는 글들을 보았는데 강의자료가 어디에 올라가 있는지 찾기 어려워 문의드립니다. 어디에서 강의자료들을 다운받을 수 있을까요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
ec2에서 docker pull 해서 백그라운드로 개인 프로젝트 진행중에 문제발생하여 질문드립니다.
안보일 까봐 복사했습니다. 2022-05-02 07:18:24.438 INFO 1 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://localhost:8888 2022-05-02 07:18:24.772 INFO 1 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Connect Timeout Exception on Url - http://localhost:8888. Will be trying the next url if available 2022-05-02 07:18:24.773 WARN 1 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Could not locate PropertySource: I/O error on GET request for "http://localhost:8888/capstone-cell-service/default": Connection refused; nested exception is java.net.ConnectException: Connection refused 2022-05-02 07:18:24.781 INFO 1 --- [ main] c.e.c.CapstoneCellServiceApplication : No active profile set, falling back to 1 default profile: "default" * 그래서 라고생각하는데 회원가입은 제대로 진행되는 반면, 로그인 시도 시 , 2022-05-02 10:10:21.244 ERROR 1 --- [o-auto-1-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception java.lang.NumberFormatException: Cannot parse null string at java.base/java.lang.Long.parseLong(Long.java:685) ~[na:na] at java.base/java.lang.Long.parseLong(Long.java:847) ~[na:na] at com.example.capstoneuserservice.security.AuthenticationFilter.successfulAuthentication(AuthenticationFilter.java:71) ~[classes!/:1.0] at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:232) ~[spring-security-web-5.5.5.jar!/:5.5.5] at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212) ~[spring-security-web-5.5.5.jar!/:5.5.5] 오류가 발생하면서 못읽어오는 듯한 모습을 보여주는것 같습니다.. 안녕하세요 강사님. 강사님 강의듣고 프로젝트 진행중에 있는 학생입니다. 수업을 듣고 로컬에서 진행하는 것이 아닌 ec2에서 진행하고있습니다. docker hub에 push한 image를 ec2 서버로 접속 후 pull 하여 백그라운드로 run하여 구성하였습니다. 그런데 회원가입은 진행이 잘 됩니다만 로그인 실행시 long에 들어가는 token.expiration.time 이었나 null로 들어와서, 왠지 봤더니 아예 github에 public으로 존재하는 application.yml 파일을 읽어 오지 못하고있는것 같습니다. 저의 application.yml이 존재하는 깃허브 주소는 https://github.com/KimTaeKang57/capstone-cloud-config.git 입니다만. WARN 오류를 잘 보면 연결을 하지못하는 것같은데요, user-service의 bootstratp.yml 파일 내용은 spring: cloud: config: uri: http://127.0.0.1:8888 name: application 다음과같고, config-server의 application.yml은 spring: application: name: capstone-configure-service cloud: config: server: git: uri: https://github.com/KimTaeKang57/capstone-cloud-config.git default-label: master enabled: true 다음과 같이 되어있습니다. 그런데 ec2 서버에서 해서 그런가요. http://localhost:8888/../default에 접근을 하지못하는 오류가 발생하여 탐색과 고민끝에 질문드립니다. - configure-server run: docker run -d -p 8888:8888 —network ecommerce-network -e "spring.profiles.active-default" —name config-service zizoen123/capstone-configure-server:1.0 - user-service run : docker run -d --network ecommerce-network --name user-service -e "eureka.client.serviceUrl.defaultZone=http://discovery-service:8761/eureka/" -e "spring.datasource.url=jdbc:mariadb://mariadb:3306/capstone" zizoen123/capstone-user-service:1.0 run 명령어들은 다음과같습니다.. 뭔가 빠뜨린게 있을까요? 따로 kafka나 zipkin 등등은 모두 사용하지 않고 mariadb만 사용했습니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
마이크로 서비스 DB 설계에 관련에서 질문드리려고 합니다ㅠㅠ
안녕하세요! 강사님의 강의를 듣고 채용의 자격요건의 msa와 도커를 왜 써야 되는지 알게 되었습니다. 감사드립니다 토이 프로젝트를 만들려고 하는데 한가지 궁금증이 생겨 여쭙고자 질문 드리게 되었습니다. 유저 회원 가입 서비스(user-service) 와 유저가 주문하는 상품 서비스(order-service)를 분리한다고 했을 때 order-service에서 user-service에서 생성한 유저 정보 테이블을 order-service에서도 생성해야 되는 것 인지 여쭙고자 질문드리게 되었습니다. 간단한 예시로 유저의 pk 값 과 주문한 상품 리스트에 관한 정보를 order-service에 전달 해서 주문을 생성하는 하는 것만 있으면 order-service에서 이 테이블만 만들어도 되는지 아니면 user-pk에 맞는 유저 정보가 있는 테이블도 order-service에 생성해 놓아야 되는 지 궁금해서 여쭙게 되었습니다....
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
rabbitmq 서버 실행시 권한 오류
안녕하세요! config-service에 rabbitmq 설정 정보를 추가하고 실행시켜 보니 다음과 같은 에러가 뜨며 Rabbit health check failed라고 나오는데 몇시간 동안 찾아봐도 해결이 안되서 질문 드립니다ㅠㅠ Caused by: java.io.IOException: null at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:129) ~[amqp-client-5.13.1.jar:5.13.1] at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:125) ~[amqp-client-5.13.1.jar:5.13.1] at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:147) ~[amqp-client-5.13.1.jar:5.13.1] at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:439) ~[amqp-client-5.13.1.jar:5.13.1] at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1225) ~[amqp-client-5.13.1.jar:5.13.1] at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1173) ~[amqp-client-5.13.1.jar:5.13.1] at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.connectAddresses(AbstractConnectionFactory.java:640) ~[spring-rabbit-2.4.2.jar:2.4.2] at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.connect(AbstractConnectionFactory.java:615) ~[spring-rabbit-2.4.2.jar:2.4.2] at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:565) ~[spring-rabbit-2.4.2.jar:2.4.2] ... 49 common frames omitted Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method<connection.close>(reply-code=541, reply-text=INTERNAL_ERROR - access to vhost '/' refused for user 'jjh': vhost '/' is down, class-id=10, method-id=40) at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66) ~[amqp-client-5.13.1.jar:5.13.1] at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36) ~[amqp-client-5.13.1.jar:5.13.1] at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:502) ~[amqp-client-5.13.1.jar:5.13.1] at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:293) ~[amqp-client-5.13.1.jar:5.13.1] at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:141) ~[amqp-client-5.13.1.jar:5.13.1] ... 55 common frames omitted 계정 문제인것 같아서, 새로 유저 추가 및 권한 설정 하고 vhost도 추가해줬는데도 같은 에러가 나옵니다. 웹페이지에서 보면 stopped 되었다고 나오는데 이부분이 문제인 걸까요?? 또한, sudo rabbitmqctl reset, stop_app 등 명령어를 실행하면 다음과 같은 에러가 나오는데 이유를 모르겠습니다 Error: unable to perform an operation on node 'rabbit@localhost'. Please see diagnostics information and suggestions below. Most common reasons for this are: * Target node is unreachable (e.g. due to hostname resolution, TCP connection or firewall issues) * CLI tool fails to authenticate with the server (e.g. due to CLI tool's Erlang cookie not matching that of the server) * Target node is not running In addition to the diagnostics info below: * See the CLI, clustering and networking guides on https://rabbitmq.com/documentation.html to learn more * Consult server logs on node rabbit@localhost * If target node is configured to use long node names, don't forget to use --longnames with CLI tools DIAGNOSTICS =========== attempted to contact: [rabbit@localhost] rabbit@localhost: * connected to epmd (port 4369) on localhost * epmd reports: node 'rabbit' not running at all no other nodes on localhost * suggestion: start the node Current node details:
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
busrefresh 호출시 하나만 적용됩니다.
안녕하세요. Spring Cloud Bus 테스트 강의를 따라해보고 있습니다. rabbitmq는 도커에 설치해서 busrefresh를 호출해 보고 있는데 호출하는 한곳에만 적용되고 나머지 서비스에는 적용이 되지 않습니다. user-service/actuator/busrefresh하면 여기에만 적용되고 api gateway에는 반응이 없습니다. 어느 부분을 수정해야할까요? 로컬에 직접 rabbitmq를 설치해야 할까요??
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
4:24초부터 화면이 이상하게 나오네요;;
저만 그런가요? 녹색 화면이 나오네요;;
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Event Sourcing 관련
안녕하세요. 강의 내용중에 Event Driven Architecture 파트 설명중에 Commit Trancation에서는 상태값을 두어 하나의 트랜잭션에 여러 Row가 기록되지 않는데, 다음에 설명하는 Event Sourcing 파트에서는 데이터의 마지막 상태만 저장하는 것이 아닌, 해당 데이터에 수행된 전체 이력을 기록한다고 설명하고 있습니다. 이 부분이 헷갈리는데, 데이터를 관리하는 방식이 서로 다른데 (그 외 Saga pattern 등) 상황에 맞게 쓰면 된다는것인가요? Event Driven Architecture라는 큰 개념이 있고 그 하위?에는 Event Sourcing, Saga pattern 등 다양항 방법이 있다고 생각하고 있는데 잘못 이해한것일까요? 감사합니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
테이블 스크립트
테이블 스크립트 강의자료에 넣어주신다고 했는데 없네요. 화면 보고 치면 되긴 하지만 ... 그래도 넣어주심 좋겠네요
- 해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
RewritePath가 제대로 작동하지 않아서 404에러가 계속 뜹니다...
이렇게 설정 하였지만, UserController requestMapping부분에서 user-service 부분을 빼고 요청 보내면 자꾸 404 에러가 뜹니다.. 그래서 다시 userController requestMapping에 user-service를 추가하니깐 404 에러 없이 데이터를 가져 오더라구요.. 그래서 지금 login 부분을 계속 실패하고 있는데, 뭐가 잘못되었는지 알 수 있을까요?? 아 참고로 - RewritePath=/user-service/(?<segment>.*),/$\{segment} 이 모양과 - RewritePath=/user-service/(?<segment>.*), /$\{segment} 이 모양 둘다 해봤지만 결과는 계속 404 에러를 리턴합니다..
- 해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Gateway 관련 질문이ㅛ
실습 따라서 하다가 문득 궁금해서 질문남깁니다. 이전 강의에서 말씀하셨는지 찾기어려워서 .. Cloud Gateway 애플리케이션을 Eureka Server에 등록하는 이유가 뭔가요? 인스턴스로 등록할 각 서비스들만 구독 시켜둬도 운영은 가능한게 아닌가요..? 직접 해보니fetch-registry, register-with-eureka 를 false 로 해도 되기는 하더라구요. 따로 적어둔거를 봤는데 fetch-registry, register-with-eureka 를 true로 하는 것이 유레카 서버로 부터 갱신된 인스턴스 정보들을 받기 위함이라고 적어두긴했는데 맞는건가요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Greeting 클래스를 만들지 않고 필드로 넣어도 되나요?
Greeting 클래스를 만들지 않고 UserController에서 직접적으로 private String message 필드를 선언하여 @Value()로 값을 넣어줘도 문제 없나요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
arm64 기반 docker-compose kafka
docker-compose-single-broker.yml 파일 각 service에 platform: linux/arm64 추가로 설정했는데도 format 에러가 발생합니다. (amd / arm) 일단 아래의 arm64용 kafka 깃헙을 참조했는데 elyalvarado/kafka-docker-arm64: Dockerfile for Apache Kafka (github.com) docker-compose 실행 시 'docker build --platform linux/arm64'와 같이 platform 설정하는 방법은 없나요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Docker network 생성 중
안녕하세요. 강의 내용중에 network 구성하면서요. docker network create --gateway 172.18.0.1 --subnet 172.18.0.0/16 ecommerce-network gateway하고 subnet 지정하지 않고 만들 경우 직접 IP 지정해서 container 띄울 경우 오류가 발생할 수 있다는게 이해가 잘 안됩니다...
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
후속강의
후속강의가 언제쯤 나오나요? 나온다고 들었습니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
안녕하세요. user-service/users/{userId}를 postman으로 호출할때 질문드립니다.
postman에서 get방식으로 전송하실 때 처음에 /user-service/users로 회원가입을 실행한 후 /user-service/login로 로그인을 하면 생성되는 token을 복사해서 /user-service/users/{userId} 에 Authorization의 Bearer Token에 token을 복사해 넣은 후에 postman을 실행하여야 하는 건지 여쭤보고싶습니다. 이전강의나 이번강의에도 가려진 상태로 진행되어 정확하게 모르겠네요. 일단 login 시 생성되는 token을 집어넣고 postman 실행 시 401 오류가 발생하며, JWT token is not valid라는 log와 Global Filter end : response id -> 401 UNAUTHORIZED라는 log가 찍혀 인증의 문제가 맞는것 같아 질문드립니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
yml 에서 설정정보를 읽을 때 키 값 문의드립니다.
안녕하세요. 강의 잘 보고 있습니다 yml 파일의 속성 값을 읽을 때 server.port --> env.getProperty("local.server.port"); greeting.message --> env.getProperty("greeting.message"); 이렇게 server.port 를 읽을 때 local 이라고 붙여주는 이유가 궁금합니다..
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
k8s 환경에 spring cloud gateway 접목이 어떻게 하면 가능할까요??
안녕하세요 ! 궁금한게 있습니다~ k8s 환경으로 구축한다고 했을때, spring cloud gateway 를 접목시키고 싶을 경우 (인증에 관련해서 filter 와 같은 기능을 이용한다면 더 편이할 것으로 보이므로) 어떻게 적용하면 될지 감이 오지 않습니다... 어떻게 보면 ingress 의 역할과 spring cloud gateway의 역할이 약간 겹치는 부분도 있고요.. ingress 에 spring cloud gateway를 붙일 수 있나요? 아니면 별도의 pod로 띄워놓고, ingress -> (무조건) gateway 로 가도록 하고, gateway에서 default filter를 적용한 후, predicates 조건에 맞춰서 uri: lb:// 이용하게 하나요? (ingress -> gateway -> 다른 svc/pod 로 이동? )
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
KafkaProducer와 OrderProducer 차이
안녕하세요. Producer 구조 관련해서 문의드립니다. 어디선가 이해를 못하고 있는건지... order-service에서 catalogs-service 호출할때 KafkaProducer를 만들어서 send할때 그냥 topic, orderDto만 jsonString 형식으로 보냈는데 왜 OrderProducer에서는 스키마, 필드 등 형식을 만들어서 send하는지요? 둘다 Topic에 전달하는건 같고... 차이점은 다른 서비스에 전송(catalogs-service)하냐 자신(order-service)에게 전송하냐 차이가 보이는데 결국 Topic에 전송하는거라.. 같은게 아닌가 합니다.
- 해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Spring Cloud Gateway & Spring Cloud Load Balancer 질문
안녕하세요 강사님 강의를 보면서 많은 도움이 되었습니다. Spring Cloud Gateway - Load Balancer 1,2 강의를 보고나서 궁금한 점이 있어서 글을 남깁니다. 강의에서 보면 Spring Cloud Gateway에서 load balance를 처리하셨는데, 따로 Spring Cloud Load Balancer 의존성 추가없이, 단지 lb://MY-FIRST-SERVICE로만 처리하여 Load balance 기능이 작동되는 것을 확인했습니다. 그렇다면 Spring Cloud Load Balancer가 Spring cloud Gateway 안에 내장되어 있는건가요? 아니면 Spring Cloud Load Balancer는 완전히 다른 모듈이고, Spring Cloud Gateway안에 있는 독자적인 loadbalance기능이 있다고 생각해야되는 걸까요? 만약 내장되어 있다면, 강의에 있는 프로젝트와 같은 상황에서 Spring Cloud Load Balancer를 따로 처리할 필요가 없는건가요? Spring Cloud Load Balancer의 용도에 대해서 고민이 되어 글을 남깁니다. 감사합니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
RewritePath 질문 있습니다
(?<segment>.*) /$\{segment}와 같은 문법은 어디에서 찾을수 있을까요? 특수문자는 정규식으로 보이는데 이해가 잘 가지않고 segment도 어디에서 참조되는지 잘 모르겠습니다.. routes의 uri에 작성된 lb 키워드도어떻게 참조가능한지도 알려주시면 감사하겠습니다..