묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
docker 네트워크는 물리적으로 다른 ip에서도 연동가능한가요?
안녕하세요 이 강의를 통해 처음으로 docker를 학습하고 있는 중인데, 궁금한게 있습니다.docker 네트워크를 사용해서 여러 컨테이너를 연결 할 수 있다고 하는데, 물리적으로 다른 아이피에 있는 컨테이너도 하나의 도커 네트워크로 연결 할 수 있는건가요?이 예제를 학습해서 aws의 2개의 ec2에서 서비스를 분할하여 배포를 하고 싶은데, 이 네트워크 개념으로 가능한 일인지요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
윈도우 rabbitMQ 설치했는데 15672 접속이 안됩니다..
rabbitmq 정상적으로 실행은 되었는데localhost:15672 접속하면 페이지가 안뜹니다..운영체제 window이고..도와주세요....!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
비대칭키일 때 decrypt 질문입니다.
bootstrap.yml파일에는 암호화할 때 사용하는 개인키 위치만 알려줬는데 어떻게 복호화를 할 수 있는 건가요?디렉토리에 공개키를 생성했다고는 하지만 yml파일에 위치를 설정하진 않았는데 어떻게 복호화를 할 수 있는지 궁금합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
UserDto 의 pwd 값 관련
안녕하세요. 좋은강의 감사합니다.다름이 아니라 강의에서 설명하실때는getUserDetailsByEmail 메소드에서 UserEntity 를 UserDto로 맵핑할때클라이언트가 입력한 password를 Spring Security 가 UserDto의 pwd 파라미터에 암호화하여 넣어준다는 식으로 말씀하신거 같습니다.@Override public UserDto getUserDetailsByEmail(String userName) { UserEntity userEntity = userRepository.findByEmail(userName); if(userEntity == null) throw new UsernameNotFoundException(userName); UserDto userDto = new ModelMapper().map(userEntity,UserDto.class); return userDto; 그게 아니라 단지, ModelMapper 에 STRICT 설정을 해주지 않아서 UserDto의 pwd와 encrytedpwd 값이 모두 UserEntity의 password 값으로 들어간게 아닌가 해서 질문드립니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
HttpTraceRepository를 찾을수가없는데 어떻게해야하나요
메이븐에 dependency추가해도HttpTraceRepository를 찾을수없는데 어떻게 진행해야할까요?ㅜ
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
API Gateway를 통해 라우팅 시 user service로 전달되는 요청 url에 대해 질문 드립니다..!
안녕하세요 선생님 강의 정말 잘 듣고 있습니다..!혹시 더 좋은 방법이 있을까 싶어 질문 드립니다. spring: application: name: api-gateway cloud: gateway: routes: - id: A uri: lb://USER-SERVICE predicates: -Path=/user-service/**위와 같이 gateway 설정을 하게 되면,user service에도 /user-service/ 라는 path가 같이 합해져 요청 url로 전달되어,Controller의 /user, /health-check, /welcome 같은 매핑을 모두 /user-service/user, /user-service/health-check, /user-service/welcome 으로 변경하라고 말씀 주셨습니다혹시 이렇게 컨트롤러의 매핑 정보를 변경하지 않고,api gateway 단에서 필터를 이용해 사용자 요청 url을 조작해서 라우팅 할 수 있는 방법이 있을까요..??
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
jar와 war 패키징 차이 관해서 여쭤보고 싶습니다!
users microservice 프로젝트 생성 시, jar와 war의 차이에 대해서 언급해주신 부분에 대해 궁금한 점이 있어 질문 드립니다! 설명 해주시기로, jar로 패키징 시 임베디드 톰캣을 통해 실행이 된다고 하셨는데, IDE에서 프로젝트 실행 시에도 jar는 jre를 통해서 실행되는 것이 아닌가요?.. war로 패키징하는 프로젝트가 웹 어플리케이션 구조로 임베디드 톰캣에 의해 기동된다고 알고 있어서 혼란스러운 부분이 있어서요! 제가 IDE에서 기동할 때와 그냥 서버 위에서 기동할 때를 혼돈하고 있는 걸까요??..
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
/health_check를 실행했을 때, 값이 바뀌지 않습니다.
안녕하세요.user-service application.ymlspring: application: name: user-service cloud: config: name: ecommerce config: import: optional:configserver:http://localhost:8888포스트맨에서, POST방식으로 actuator/refresh를 실행했을 때,org.springframework.cloud.config.server.environment.NoSuchLabelException: No such label: main위와 같은 에러가 발생해서 main 브랜치를 추가했더니, actuator/refresh를 실행했을 때 에러가 발생하지 않게 되었습니다.예를 들어, token.secret 값을 변경하고 main브랜치에 커밋한 후, actuator/refresh를 실행하면 정상적으로 refresh가 되는 것 같습니다.[ "config.client.version" ]http://localhost:8888/ecommerce/default 에서도 값이 변경되는 것을 확인했습니다. "source": { "token.expiration_time": 86400000, "token.secret": "user_token2", "gateway.ip": "192.168.0.8" }그런데, /health_check를 실행해보면 새로운 값으로 변경되지 않습니다.It's working in user service, port(local.server.port)=61250, port(server.port)=0, token secret=user_token1, token expiration time=86400000어디가 잘못된 건지 혹시 알 수 있을까요?
-
해결됨Microservice 설계(with EventStorming,DDD)
도메인 이벤트 추출관련해서 여쭤보고 싶습니다!
강사님.도메인 이벤트 추출관련해서 여쭤보고 싶은 부분이 있는데 하기와 같이 단순히 "영화가 예매됨"이 아닌 "상영중인 영화가 예매됨"과 같이 구체적으로 추출해도 상관이 없는것인지 궁금합니다!예를들어 "상영중인 영화가 예매됨"같은 경우에는 커맨드를 추출할 때, 조금 표현하는게 애매한거 같아서요... 이렇게 구체적인 표현보다는 좀 더 추상적으로 표현하는게 좋을까요 ?
-
해결됨Microservice 설계(with EventStorming,DDD)
컨트롤러 관련해서 질문이 있습니다!!
강사님.Controller에 사용자의 요청이 캡슐화되어 전달되어지면서 실제 요청하는 URL과 매핑되어있는 처리 메소드가 호출되는 구조로 알고있습니다!따라서, Controller는 핸들러와 비슷한 개념인거 같은데...어째서 표현 계층에 속하는 것인지요 ?컨트롤러가 사용자의 요청을 전달받기 때문일까요 ?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
JdbcSourcdConnector 에서 mariadb 드라이버 복사 질문
제가 ./m2 > repository > org 에 접속을 하면 여러 db가 보이는데 mariadb만 안보입니다. 도대체 이게 어떻게 된 일이죠...? 그래서 이제 MariaDB 사용하기 위해서 해당 jar 파일을 복사 해서 원하는 위치에 넣어야 하는데...그걸 못해서 진도가 안나가고 있습니다...
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
8분 41초부터 Kafka Connect 실행이 안됨
제가 그대로 따라해서 하고 있는데... 왜 안되는지 잘 모르겟네요... 저는 D 드라이브에 별도로 폴더를 생성해서 작업하고 있었는데요, .\bin\windows\connect-distributed.bat .\etc\kafka\connect-distributed.properties 를 실행하면 Error: Could not find or load main class org.apache.kafka.connect.cli.ConnectDistributedCaused by: java.lang.ClassNotFoundException: org.apache.kafka.connect.cli.ConnectDistributed 위와 같은 에러가 나오니... 이유가 뭘까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
게이트웨이 오류
안녕하세요 유레카에 랜덤 포트로 first-service 2개 등록을 했습니다. - Postman 이용해서 api를 날려보면 Connection refused가 발생하는데 어디를 고쳐야할까요?게이트웨이의 application.yml은 위와 같습니다.eureka yml은 위와 같습니다.First-service.yml입니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
filter가 작동되지 않습니다.
- 강의에 있는 거 그대로 사용했는데 log가 뜨지를 않습니다. 디버그를 찍어보니 필터를 거치지 않는데 어떻게 해결을 해야될까요??- 요청은 정상적으로 가고 응답도 first-service / second-serivIce에 맞게 잘 가져옵니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
RoutLocatortBuilder
안녕하세요 RouteLocateBuilder에 빨간 줄이 뜨는데무시하고 해도 되는건가요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
zuul 강의에서 gradle로 하시는 분들을 위해 공유합니다
zuul을 사용하기 위해서는 spring boot 버전이 2.4보다 낮아야 한다고 해서 2.3.9.RELEASE를 사용했습니다. (2.4 미만 버전은 RELEASE가 붙더라고요)또한, spring boot 버전이 2.4 미만일 경우 spring cloud 2020.0.0 (2.4.x, 2.5.x 에서만 사용 가능) 버전을 사용할 수 없고 Hoxton 버전을 사용해야 됨을 적용했습니다.아래와 같이 해서 실행 성공했습니다.plugins { id 'java' id 'org.springframework.boot' version '2.3.9.RELEASE' id 'io.spring.dependency-management' version '1.0.11.RELEASE' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' } dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:Hoxton.RELEASE" } } tasks.named('test') { useJUnitPlatform() }
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 PPT 자료는 어디서 다운받을수 있나요?
안녕하세요.강의 PPT 자료를 찾아봤는데 없어서 문의드립니다. 현재 다운받을수 없는건가요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
비대칭키 jwt 인증 문제
http://localhost:8888/ecommerce/default 에서는 {name: "ecommerce",profiles: ["default"],label: null,version: "f45bf692a6cb54252ea12041f0aa92a71964a5f7",state: null,propertySources: [{name: "file:///C:\\Users\\ydj90\\Downloads\\git/file:C:\Users\ydj90\Downloads\git\ecommerce.yml",source: {token.expiration_time: 864000000,gateway.ip: "172.30.1.33",token.secret: "userToken_token"}}]}http://localhost:8888/user-service/default 에서는{name: "user-service",profiles: ["default"],label: null,version: "f45bf692a6cb54252ea12041f0aa92a71964a5f7",state: null,propertySources: [{name: "file:///C:\\Users\\ydj90\\Downloads\\git/file:C:\Users\ydj90\Downloads\git\user-service.yml",source: {spring.datasource.url: "jdbc:h2:mem:testdb",spring.datasource.driver-class-name: "org.h2.Driver",spring.datasource.generate-unique-name: false,token.expiration_time: 864000000,gateway.ip: "172.30.1.33",order_service.url: "http://ORDER-SERVICE/order-service/%s/orders",spring.datasource.username: "sa",token.secret: "userToken_token"}}]} 이와 같이 token.secret이 같은데 왜 subject가 null값이 되는지 이유를 알 수 가 없습니다. login하고 나온 header값을 가지고 bearer에 넣어 인증하는 방식이 아닙니까?이유를 잘 모르겠습니다. JWT token is not valid이게 왜 뜨는지subject = Jwts.parser().setSigningKey(env.getProperty("token.secret")) .parseClaimsJws(jwt).getBody() .getSubject(); 여기서 왜 null값으로 값을 반환하는지 이해를 할 수가 없습니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
MSA 에서 연관관계
안녕하세요 강의를 보던 도중 질문이 생겼습니다. 보통 JPA 서비스 설계시 모놀로틱한 서비스에서 서로 다른 엔티티를 연관관계를 통해 데이터베이스 JOIN 을 이용하여 서비스 하는것으로 알고 있습니다. 그러나 MSA 환경에서는 데이터베이스 자체가 분리되어 있는 상태여서 해당 방식은 불가능 하다는 것을 이전 여러 질문들을 통해 알게 되었습니다.이러한 점을 해결할 방식을 찾는 도중 DDD를 이용하여 관점을 분리하고 연관된 엔티티들을 묶어 Aggregator 개념으로 묶어서 사용한다는 글들을 알게 되었습니다. 여기서 질문인 점은 Aggregator로 연관된 엔티티를 묶는 다는 의미가하나의 마이크로 서비스에 여러 엔티티를 두어 기존 사용하던 JPA 연관관계처럼 사용한다는 것인지아니면 분리된 두 서비스는 각자 두고 상위 서비스를 다시 선언하여 해당 서비스에서 연관된 두 엔티티를 조회하여 묶어서 사용하는 것인지 궁금합니다. 아니면 제가 아예 Aggregator 라는 개념을 잘못 이해한 것일까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Circuit breaker와 ErrorDecoder 동시 사용
강사님 안녕하세요? 강의 너무 잘 듣고 있습니다. Feign Client 강의에서 ErrorDecoder를 추가하여 try-catch문을 사용하지 않고, HTTP 에러 코드 별 처리 방법을 별도로 분리했었는데요.이번 강의에서처럼 Circuit breaker를 사용하면 API 호출 시 발생하는 모든 오류 상황에 대해 fallback 값이 전달되기 때문에 ErrorDecoder는 별도로 필요하지 않을 것 같습니다. 외부 API 호출하는 모든 케이스에서 circuit breaker를 사용한다면 ErrorDecoder는 불필요한 것이 맞나요?circuit breaker와 error decoder가 둘 다 필요하다고 한다면, error decoder은 어떤 역할을 할 수 있나요? 항상 감사드립니다.