inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

JdbcSourcdConnector 에서 mariadb 드라이버 복사 질문

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

제가 ./m2 > repository > org 에 접속을 하면 여러 db가 보이는데 mariadb만 안보입니다. 도대체 이게 어떻게 된 일이죠...? 그래서 이제 MariaDB 사용하기 위해서 해당 jar 파일을 복사 해서 원하는 위치에 넣어야 하는데... 그걸 못해서 진도가 안나가고 있습니다...

  • architecture
  • spring-cloud
  • spring-boot
  • JPA
  • Kafka
  • msa
seonjun Moon 댓글 2 좋아요 0 조회수 632

8분 41초부터 Kafka Connect 실행이 안됨

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

제가 그대로 따라해서 하고 있는데... 왜 안되는지 잘 모르겟네요... 저는 D 드라이브에 별도로 폴더를 생성해서 작업하고 있었는데요, .\bin\windows\connect-distributed.bat .\etc\kafka\connect-distributed.properties 를 실행하면 Error: Could not find or load main class org.apache.kafka.connect.cli.ConnectDistributed Caused by: java.lang.ClassNotFoundException: org.apache.kafka.connect.cli.ConnectDistributed 위와 같은 에러가 나오니... 이유가 뭘까요?

  • spring-boot
  • spring-cloud
  • architecture
  • JPA
  • msa
  • Kafka
seonjun Moon 댓글 1 좋아요 0 조회수 770

게이트웨이 오류

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요 유레카에 랜덤 포트로 first-service 2개 등록을 했습니다. - Postman 이용해서 api를 날려보면 Connection refused가 발생하는데 어디를 고쳐야할까요? 게이트웨이의 application.yml은 위와 같습니다. eureka yml은 위와 같습니다. First-service.yml입니다.

  • Kafka
  • msa
  • spring-cloud
  • architecture
  • JPA
  • spring-boot
fbfbf1 댓글 1 좋아요 0 조회수 530

filter가 작동되지 않습니다.

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

- 강의에 있는 거 그대로 사용했는데 log가 뜨지를 않습니다. 디버그를 찍어보니 필터를 거치지 않는데 어떻게 해결을 해야될까요?? - 요청은 정상적으로 가고 응답도 first-service / second-serivIce에 맞게 잘 가져옵니다.

  • Kafka
  • msa
  • spring-boot
  • spring-cloud
  • architecture
  • JPA
fbfbf1 댓글 1 좋아요 0 조회수 690

RoutLocatortBuilder

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요 RouteLocateBuilder에 빨간 줄이 뜨는데 무시하고 해도 되는건가요?

  • Kafka
  • msa
  • architecture
  • spring-boot
  • spring-cloud
  • JPA
fbfbf1 댓글 5 좋아요 2 조회수 1017

zuul 강의에서 gradle로 하시는 분들을 위해 공유합니다

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

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() }

  • gradle
  • zuul
  • spring-boot
  • JPA
  • architecture
  • spring-cloud
  • msa
  • Kafka
TaeHyeon Kim 댓글 1 좋아요 8 조회수 1366

강의 PPT 자료는 어디서 다운받을수 있나요?

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요. 강의 PPT 자료를 찾아봤는데 없어서 문의드립니다. 현재 다운받을수 없는건가요?

  • spring-cloud
  • JPA
  • architecture
  • spring-boot
  • Kafka
  • msa
송수경 댓글 2 좋아요 1 조회수 812

비대칭키 jwt 인증 문제

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

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값으로 값을 반환하는지 이해를 할 수가 없습니다.

  • 비대칭키
  • jwt
  • spring-cloud
  • spring-boot
  • JPA
  • architecture
  • msa
  • Kafka
JUNI 댓글 4 좋아요 0 조회수 679

MSA 에서 연관관계

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요 강의를 보던 도중 질문이 생겼습니다. 보통 JPA 서비스 설계시 모놀로틱한 서비스에서 서로 다른 엔티티를 연관관계를 통해 데이터베이스 JOIN 을 이용하여 서비스 하는것으로 알고 있습니다. 그러나 MSA 환경에서는 데이터베이스 자체가 분리되어 있는 상태여서 해당 방식은 불가능 하다는 것을 이전 여러 질문들을 통해 알게 되었습니다. 이러한 점을 해결할 방식을 찾는 도중 DDD를 이용하여 관점을 분리하고 연관된 엔티티들을 묶어 Aggregator 개념으로 묶어서 사용한다는 글들을 알게 되었습니다. 여기서 질문인 점은 Aggregator로 연관된 엔티티를 묶는 다는 의미가 하나의 마이크로 서비스에 여러 엔티티를 두어 기존 사용하던 JPA 연관관계처럼 사용한다는 것인지 아니면 분리된 두 서비스는 각자 두고 상위 서비스를 다시 선언하여 해당 서비스에서 연관된 두 엔티티를 조회하여 묶어서 사용하는 것인지 궁금합니다. 아니면 제가 아예 Aggregator 라는 개념을 잘못 이해한 것일까요?

  • jpa
  • spring-boot
  • JPA
  • ddd
  • aggregator
  • architecture
  • spring-cloud
  • msa
  • Kafka
근3 댓글 1 좋아요 0 조회수 1083

Circuit breaker와 ErrorDecoder 동시 사용

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

강사님 안녕하세요? 강의 너무 잘 듣고 있습니다. Feign Client 강의에서 ErrorDecoder를 추가하여 try-catch문을 사용하지 않고, HTTP 에러 코드 별 처리 방법을 별도로 분리했었는데요. 이번 강의에서처럼 Circuit breaker를 사용하면 API 호출 시 발생하는 모든 오류 상황에 대해 fallback 값이 전달되기 때문에 ErrorDecoder는 별도로 필요하지 않을 것 같습니다. 외부 API 호출하는 모든 케이스에서 circuit breaker를 사용한다면 ErrorDecoder는 불필요한 것이 맞나요? circuit breaker와 error decoder가 둘 다 필요하다고 한다면, error decoder은 어떤 역할을 할 수 있나요? 항상 감사드립니다.

  • spring-boot
  • architecture
  • JPA
  • spring-cloud
  • Kafka
  • msa
박수현 댓글 1 좋아요 0 조회수 470

@LoadBalanced 관련 질문입니다.

해결됨

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

@LoadBalanced 를 사용할시에 apigateway를 거치지 않고 user -> order 로 가는것을 확인했는데 제가 궁금한것은 보통 client 단에서 첫 요청이 들어왔을 시에만 api gateway를 거치고 그 이후 비지니스 로직을 처리하기 위해서 ms간에 소통하는것은 api gateway를 거치지 않는것이 일반적인 건가요?

  • JPA
  • spring-boot
  • architecture
  • spring-cloud
  • Kafka
  • msa
임도현 댓글 1 좋아요 1 조회수 511

각 애플리케이션에 랜덤포트를 부여하는 이유

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요!!! 랜덤포트를 부여하는 이점에 대해서 아직도 이해가 잘 안갑니다.ㅜㅜ 마이크로서비스 애플리케이션의 확장성과 랜덤포트를 부여하는게 얼마나 깊은 관계가있나요?? 저는 정해두고 쓰는게 더 편하다고 생각했거든요. 그리고 실무에서도 정말 이렇게 랜덤포트로 사용하나요?

  • Kafka
  • msa
  • spring-cloud
  • JPA
  • architecture
  • spring-boot
goodlucky1215 댓글 1 좋아요 1 조회수 1038

cannot resolve property

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

application.yml 파일에서 글로벌 필터의 속성 ( baseMessage, preLogger, postLogger) 는 인식하는데 로깅 필터의 속성은 인식하지 못해 cannot resolve property 에러가 납니다. 왜인지 이유를 알 수 없어 질문드립니다. LoggingFilter.java 파일입니다. package com.todaypills.apigatewayservice.Filter; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.gateway.filter.GatewayFilter; import org.springframework.cloud.gateway.filter.OrderedGatewayFilter; import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory; import org.springframework.core.Ordered; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.stereotype.Component; import reactor.core.publisher.Mono; @Slf4j //for print log @Component /**커스텀 필터의 일종임, 단지 로그를 찍기 위한 필터이므로 이름을 Logging 이라고 지은 것*/ public class LoggingFilter extends AbstractGatewayFilterFactory<LoggingFilter.Config> { public LoggingFilter() { super(Config.class); } @Override public GatewayFilter apply(Config config) { /** * 위쪽 주석부분은 람다 표현식으로 바로 리턴한 것이고 이것은 람다를 사용하지 않고 리턴한 것임, * 따라서 인스턴스부터 만들어주어야 하고 GatewayFilter는 인터페이스이기 때문에 직접 인스턴스를 생성할 수는 없고, OrderedGatewayFilter() 를 이용하여 인스턴스를 만들어주어야함 * */ GatewayFilter filter = new OrderedGatewayFilter(((exchange, chain) -> { /** exchange: request와 response 객체를 얻기 위함 */ ServerHttpRequest request = exchange.getRequest(); ServerHttpResponse response = exchange.getResponse(); log.info("logging filter: request id -> {}", config.getBaseMessage()); if(config.isPreLogger()){ log.info("logging pre filter start: request id -> {}", request.getId()); } return chain.filter(exchange).then(Mono.fromRunnable(() -> { if(config.isPostLogger()){ //Mono 객체: 웹플럭스(스프링5)에서 지원하는 기능으로 비동기방식의 서버에서 단일값을 전달할 때 모노타입으로 전달 log.info("logging post filter end: response code -> {}", response.getStatusCode()); } })); }), Ordered.HIGHEST_PRECEDENCE); //HIGHEST_PRECEDENCE 는 적용할 필터가 여러개일 때 어느것이 먼저 실행될지 우선순위를 부여함 return filter; } @Data // setter getter 함수 생성 (isPreLogger(), isPostLogger() 등) public static class Config{ // 여기에 configuration 이 있다면 삽입 private String baseMessage; private boolean preLogger; private boolean postLogger; } } application.yml 파일입니다. server: port: 8000 eureka: client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://localhost:8761/eureka spring: application: name: apigateway-service cloud: gateway: default-filters: - name: GlobalFilter args: # 우리가 정의한 변수 baseMessage: 게이트웨이 글로벌 필터입니다. preLogger: true #prefilter의 유무 postLogger: true routes: #FilterConfig의 라우팅 정보를 yml 파일로도 설정할 수 있음 - id: nutrients-service uri: http://localhost:8081/ predicates: - Path=/nutrients-service/** filters: # - AddRequestHeader=nutrients-request, nutrients-request-heaer-value # - AddResponseHeader=nutrients-response, nutrients-response-header-value - name: CustomFilter - name: LoggingFilter args: baseMessage: 커스텀 로깅 필터입니다. preLogger: true postLogger: true

  • architecture
  • spring-cloud
  • spring-boot
  • JPA
  • msa
  • Kafka
khss4008 댓글 3 좋아요 0 조회수 2716

Kafka sink connector를 통해서 단일 데이터베이스 저장을 했을 때 장점?

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요. Kafka Connect 를 활용한 단일 데이터베이스를 사용 파트를 듣고 있는데요. Multiple Order Service가 같은 DB URL을 가지고, JPA를 통해서 데이터 저장을 하면 될 것 같은데, 굳이 Kafka Sink Connector를 통해서 데이터 저장을 하는 이유가 따로 있을까요? JPA를 쓰면 Persistence Manager가 제공하는 여러 장점을 이용할 수 있을 것 같은데, Kafka sink connector는 그런 장점을 이용할 수 없을 것 같아서요.. 실제 현업에서 많이 사용되는 테크닉인지 궁금하고, 만약 사용한다면 장점은 무엇인지 궁금합니다!

  • JPA
  • spring-boot
  • spring-cloud
  • architecture
  • Kafka
  • msa
채병훈 댓글 3 좋아요 4 조회수 645

Filter 람다식 관련 질문드립니다.

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요! Custim Filter 강의 중 아래 코드 부분에서 GatewayFilter의 생성자가 exchange와 chain이기 때문에 return (exchange, chain) -> { .. 이 되는 것 까지는 이해를 하였습니다. 그런데 이 때 exchange와 chain 변수가 어디에서 정의되어서 여기서 사용되는 건지 잘 모르겠습니다 ㅠㅠ return (exchange, chain) -> { // GatewayFilter의 생성자 Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain);

  • spring-cloud
  • spring-boot
  • architecture
  • JPA
  • msa
  • Kafka
퉁튱 댓글 2 좋아요 0 조회수 724

2개 이상의 마이크로 서비스가 결합됐을 때는 테스트코드는 어떻게 작성하는지 궁금합니다.

해결됨

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

UserService API 를 호출할때 RestTemplate 를 통해 OrderService 의 API 를 추가로 호출하는 방법을 보고 각 마이크로 서비스들이 엔티티 단위로 모듈화 되어 설계되어있다면 이런식으로 하는구나~ 배울 수 있었습니다. 그런데 이렇게 두개 이상의 마이크로서비스가 호출되는 API 는 테스트 코드를 어떻게 작성해야 하는지 감이 잡히지 않습니다. Web Layer(Controller) 를 테스트할때는 Service 객체를 Mocking 해서 해결할 수 있을것 같은데, Service layer(Service 클래스) 를 테스트할때는 어떻게 해야할까요?

  • springcloud
  • JPA
  • testcode
  • architecture
  • spring-boot
  • spring-cloud
  • Kafka
  • msa
정태성 댓글 1 좋아요 0 조회수 688

innodb 관련 에러

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요! 뒤늦게 강의를 수강하고 있습니다. 현재 mariadb docker build 후에 docker run을 하게 되면 아래와 같은 에러가 발생합니다. 구글링을 해도 방법을 찾을 수가 없어요 ㅜㅜ [Dockerfile] [Docker logs mariadb] 어떻게 해결해야 할까요?...

  • msa
  • Kafka
  • architecture
  • spring-boot
  • spring-cloud
  • JPA
sonjs.01 댓글 4 좋아요 1 조회수 930

학습중에 몇가지 질문이 있습니다.

해결됨

Microservice 이해(with MSA패턴)

안녕하세요, MSA패턴1- 인프라 섹션의 컨테이너 오케스트레이션 챕터에서 몇가지 질문이 있습니다. 먼저, node 와 pod 의 관계가 헷갈립니다. 주신 자료의 k8s 아키텍처 이미지를 보면 각 worker node 는 여러개의 pod 를 가질 수 있는 것 같은데 보통 한개의 node 에 여러개의 pod 를 설정하는 경우가 흔한가요? Scale out 을 진행 할 때 실제로 Scale out 되는 주체는 worker node 가 맞는건가요? (worker node 에 하나 이상의 Pod 가 존재 한다는 가정하에) 보통 실무에서는 pod 수를 늘려주세요 라는 요청을 많이 들어봤는데요, 결국 node 를 늘리므로써 pod 가 늘려지는게 맞는건지 아니면 특정 node 안에서 pod 수 만 늘리는 건지 궁금합니다. 보통 이런 요청은 Scale out 의 목적으로 pod 수를 늘려달라는 요청인데, 특정 node 안에서 pod 수만 늘어난다면 이게 Scale out 맞는건가 라는 생각이 들어서요. 그 다음은 worker node 에 관한 질문입니다. master node 는 연결된 worker node 들을 API 를 통해 관리하는 목적으로만 쓰이는것이 맞을까요? 인그레스는 master node 에서 관리하는 설정이 맞는지 궁금합니다.

  • architecture
  • msa
ysandye 댓글 1 좋아요 0 조회수 351

1강 강의내용에 대한 2가지 질문이 있습니다.

해결됨

Microservice 이해(with MSA패턴)

SOA 와 MSA 를 명확하게 구분지을 수 있는 요소가 각각의 서비스에 대한 오토스케일링 (수평확장) 가능 여부 라고 이해해도 될까요? 클라우드 환경에서 수평 확장을 위한 가장 효율적인 시스템유형이 Cloud Native Application 이다 라고 설명 해주셨는데요, 클라우드 환경에서 수직 확장은 효율적이지 못한건가요? (잘 쓰이질 않는건가요?) 강의 내용중에 수평 확장을 해놓고 그 상태에서 수직 확장을 하는 방식으로 적용을 한다. 라는 설명을 해주셨는데, 이 맥락과 연관이 있는지 궁금합니다! 아직 실습을 해보지 않은 상황에서 단순하게 생각해보면, 수직확장은 반영에 시간이 걸린다 라고 설명해주셨는데 그렇다면 수직확장 부터 미리 반영 시켜 놓고 서비스 운영 중에 자동으로 수평 확장이 될 수 있도록 오토스케일링 설정을 해놓아야 하는게 아닌가 라는 생각이 듭니다.

  • msa
  • architecture
ysandye 댓글 1 좋아요 0 조회수 362

다수의 개발자가 같이 협업할 때에 궁금한 점이 있습니다.

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요! 먼저 강의 너무너무 잘 보고 있습니다! 공부를 하다가 갑자기 궁금한게 생겼는데, 여러 개발자와 협업해야하는 환경이 될 때 같은 서비스를 개발 할 시 개발 환경이 어찌 되는지 알고 싶습니다. Q1. 같은 서비스 개발 할 때에 디스커버리 서버와 APIGateway를 각자 개발자가 켜놓고 연관 된 서비스들도 다 실행 한 뒤에 개발을 하는지.. Q2. 아니라면 APIGateway를 공용으로 사용시 따로 환경세팅이 있을까요? APIGateway를 공유하고 같은 서비스를 켜놓고 개발을 진행시 프론트에서 서비스 API등 호출 할 때에 제가 아닌 다른분의 서비스에 들어가면 어쩌지? 하는의문에서 시작되었습니다. 너무너무 궁금합니다.. 강의는 너무 잘 보고 있고 다음강의도 기대하겠습니다! 감사합니다.

  • Kafka
  • msa
  • spring-cloud
  • spring-boot
  • JPA
  • architecture
김보근 (보하우스) 댓글 2 좋아요 1 조회수 593

인기 태그

인프런 TOP Writers

주간 인기글