inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

Eureka와 API gateway 관계에 관련해서 궁금한 것이 있습니다.

해결됨

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

안녕하세요. 수업 잘 듣고 있습니다. 굉장히 흥미롭게 수업을 듣던 도중 궁금한 것이 이것저것 생겨서 질문드립니다. 수업에서 좀 벗어난 이야기일 수도 있는데 찾아보니 잘 찾을 수가 없어서 질문 드립니다.(혹시 답변하기 힘드시면 안하셔도 괜찮습니다.) 구조를 보니 API gateway는 서비스 ID만 알고있고, 해당 서비스의 실제 ip 주소와 포트 번호를 알기위해서는 Eureka에게 request를 요청해야하는 것 같습니다. 그렇다면 API gateway는 사용자 요청이 들어 올 때마다 매번 Eureka에게 물어보는 방식인가요? 이렇게 되면 통신 오버헤드가 상당이 클 것 같다는 생각이 들어서 질문드립니다. Eureka와 서비스들 간에는 지속적으로 heartbeat message나 서비스 정보 등을 교환하기위해 통신하는 것 같습니다. 혹시 이런 통신은 전부 HTTP 프로토콜을 통해서 이루어지는 것인가요? 혹은 다른 프로토콜을 사용하여 정보를 주고 받나요?

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
박정선 댓글 2 좋아요 0 조회수 382

단일 모듈 다중 프로젝트 질문

해결됨

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

아직 완강은 하지 않았지만 궁금한 점이 생겨 질문드립니다 강의에서 단일모듈 다중 프로젝트로 진행을 하시는데, 이렇게 되면 CI/CD 관리는 어떻게 하는 지 궁금합니다 서비스 마다 Github Repository를 하나씩 만드는 건가요? 단일 프로젝트 멀티모듈은 권장하지 않으시나요? 현업에서는 주로 어떤 방법을 사용하는지 궁금합니다

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
Sanghoon Lee 댓글 2 좋아요 0 조회수 272

Eureka 서버 도커 환경 연결.

해결됨

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

안녕하세요, 현재 Spring Cloud와 Docker 강의를 보며 개인적으로 Docker 환경에 Eureka 서버를 배포하고 공부 중입니다. 현재 Eureka 서버 및 데이터베이스, 스프링 환경을 Docker 환경에 배포하는 것까지는 완료한 상태입니다. 하지만 문제는 Eureka 서버에서 스프링 서버로의 링크를 클릭하면 " http://2a2bf313bd4f:60000/actuator/info " 이 사이트에서 HTTPS를 지원하지 않기 때문에 경고가 표시됩니다. 이 문제를 어떻게 해결할 수 있는지 궁금합니다. Eureka 서버에 등록된 정보 링크 정보 현제 docker-compose file 정보 입니다. services: spring-cloud-config-service: build: ./spring-cloud-config-service container_name: spring-cloud-config-service ports: - "8888:8888" networks: - my-network spring-cloud-discovery: build: ./spring-cloud-discovery container_name: eureka-server ports: - "8761:8761" networks: - my-network environment: eureka.client.serviceUrl.defaultZone: http://spring-cloud-discovery:8761/eureka/ mysql: image: mysql:8.0 container_name: mysql environment: MYSQL_ROOT_PASSWORD: MYSQL_DATABASE: employees ports: - "3306:3306" networks: - my-network spring-cloud-study-user-service: build: ./spring-cloud-study-user-service container_name: spring-cloud-study-user-service ports: - "60000:60000" environment: SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/employees SPRING_DATASOURCE_USERNAME: SPRING_DATASOURCE_PASSWORD: SPRING_CLOUD_CONFIG_URI: http://spring-cloud-config-service:8888 eureka.client.serviceUrl.defaultZone: http://spring-cloud-discovery:8761/eureka/ depends_on: - mysql - spring-cloud-discovery - spring-cloud-config-service networks: - my-network networks: my-network: driver: bridge Spring-cloud-study-user-service.yml 파일입니다. server: port: 60000 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://mysql:3306/employees # url: jdbc:mysql://localhost:3306/employees username: password: jpa: hibernate: ddl-auto: update show-sql: true cloud: config: uri: http://config-service:8888 name: spring-cloud-study-user-service application: name: spring-cloud-study-user-service eureka: instance: preferIpAddress: true instance-id: ${spring.application.name}:${spring.application.instance_id:${random.value}} client: service-url: defaultZone: http://127.0.0.1:8761/eureka fetch-registry: true register-with-eureka: true Spring-cloud-discovery yml 파일 정보입니다. server: port: 8761 spring: application: name: spring-cloud-discovery eureka: instance: hostname: eureka-server client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://127.0.0.1:8761/eureka server: enableSelfPreservation: false

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
Jun 댓글 2 좋아요 0 조회수 480

신규 강의 질문

미해결

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

안녕하세요. 기존 강의 듣는 와중에 신규 강의가 추가되었는데 기존 강의 스킵하고 신규로 들어도 될까요?? 환경은 Spring Boot 3 이후 버전으로 설정하였습니다.

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
노성웅 댓글 2 좋아요 0 조회수 260

yml파일 설정, 그리고 tomcat 서버로 작동

미해결

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

gateway.routes 형식이 아니라 위 사진 처럼 중간에 mvc가 들어가는 데 버전 업 되면서 문법이 바뀐걸 까요? apigateway-service 동작할 때 netty 서버로 동작하지 않고 tomcat 으로 작동하는데 이것도 버전으로 인해 바뀐 걸 까요?

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
댓글 2 좋아요 0 조회수 506

Eureka 오류

해결됨

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

강의의 기본 설정 그대로 아무 메이븐 추가 없이 강의에서 추가하는 메이븐 그대로 추가를 했는데도 계속된 오류가 발생하는데, 혹시 현제 버전에서 어떻게 하면 이 문제를 해결할 수 있는지 가르쳐 줄 수 있을까요? eureka: instance: instance-id: ${spring.application.name}:${spring.application.instance_id:${random.value}} client: service-url: defaultZone: http://127.0.0.1:8761/eureka/ fetch-registry: true register-with-eureka: true <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.3.1</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>cloud</groupId> <artifactId>user-service-test</artifactId> <version>0.0.1-SNAPSHOT</version> <name>user-service-test</name> <description>user-service-test</description> ,, <properties> <java.version>17</java.version> <spring-cloud.version>2023.0.2</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-netflix-eureka-server</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> </project> @SpringBootApplication @EnableEurekaServer public class UserServiceTestApplication { public static void main(String[] args) { SpringApplication.run(UserServiceTestApplication.class, args); } } 기본 설정 그대로 실행하면 밑에 와 같은 오류가 지속적으로 발생 합니다.

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
Jun 댓글 2 좋아요 1 조회수 539

bastion서버가 있을경우 cli로의 접근은 권장되지 않나요??

해결됨

AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법

강사님은 ssh나 sftp툴을 사용하시나요? connect 서비스를 사용하지 않는경우에 bastion서버는 처음사용하는데 cli를 사용하는 저같은경우 두번 접속하는게 조금은 번거롭게 느껴져서 궁금합니다

  • aws
  • docker
  • msa
  • container
  • ecs
  • fargate
Seunghyeon Lee 댓글 1 좋아요 1 조회수 265

java.net.UnknownHostException 에러 관련 질문입니다

해결됨

AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법

현재 환경 VPC public subnet 2개 ALB, Nat gateway private subnet 2개 fagate Security group public group (80포트 모든 ip허용) private group(80포트 public group아이피만 허용) 여기서 이미지 컨테이너 실행도중 한 컨테이너에서 Caused by: ! java.net.UnknownHostException: 690bd678bcf4: Name or service not known 와같은 에러와함께 컨테이너 실행이 실패했고 스택오버플로우 검색에서 얻은 정보를 통해 localhost 를 수정하는 sh파일을 도커컨테이너 실행하도록 변경하여 에러를 해결했습니다. (해당 스크립트) #!/bin/bash set -e shift cmd="$@" echo "127.0.0.1 $HOSTNAME" >> /etc/hosts exec $cmd 현재 실행된 컨테이너는 아무문제없이 잘 작동하지만 제가 이부분에대해 이해가 잘 안되기도하고 올바른방법으로 해결한것인지 불안한감이 있어서 혹시나 좋은 피드백을 받을 수 있을까해서 질문올립니다! 위에러는 강의랑 다른구성의 서버실행도중 발생한 에러이고 저또한 정확한 질문을 드린것은 아니라 답변이 안될거라 생각되지만 혹시나하는 마음에 올려봅니다!!

  • aws
  • docker
  • msa
  • container
  • ecs
  • fargate
Seunghyeon Lee 댓글 2 좋아요 1 조회수 607

config-service를 profiles 별로 나눌수 있을까요?

미해결

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

config-service 서버 profile 설정 질문드립니다. 예를들어 profile3가지로 나눌 경우 application.yml application-dev.yml application-prod.yml "prod" 에서만 git 경로를 참고하고 나머지 두개는 물리 경로를 지정하려 합니다. bootstrap에 설정한 encrypt.key 도 profile별로 변경하여 사용하고 싶은데 profile 설정이 안되내요... 수업내용 참고하여 설정시 yml 파일에 spring.profiles.active=native 이게 없을경우 에러가 납니다. 해결 방법이 있을지 문의드립니다. 에러로그는 아래와 같습니다. Description: Invalid config server configuration. Action: If you are using the git profile, you need to set a Git URI in your configuration. If you have set spring.cloud .config.server.bootstrap=true, you need to use a composite configuration.

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
노정호 댓글 1 좋아요 0 조회수 323

path기반의 라우팅 테스트 실패이유가 궁금합니다

해결됨

AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법

라우팅 부분이 제대로안되는 것 같아 경로기반 라우팅 테스트후에 타겟그룹을 연결하려고 하는데요 라우팅 테스트를 실패하지만 원인을 모르겠어서 질문드립니다. public subnet에 로드밸런스를 생성한뒤 80번 포트로 2가지 룰을 만들었습니다. 첫번째는 기본값으로 default response를 반환 2번째는 /mp4* 경로로 들어오는 모든 값에대해 mp4 reponse라는 텍스트를 반환하도록 설정했는데 alb도메인/mp4 입력시, alb도메인 입력시 모두 "default response"가 반환되는데 어떤부분을 제가 이해못해서 안되는지 잘 모르겠는데 혹시 짐작가는 부분이 있다면 알려주시면 감사하겠습니다

  • aws
  • docker
  • msa
  • container
  • ecs
  • fargate
Seunghyeon Lee 댓글 2 좋아요 1 조회수 208

ECS에서 노드서버 배포중 오류가 있어서 질문드립니다

해결됨

AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법

ECS에서 테스크를 실행중에 난 오류인데, 외부의 레디스클라이언트로의 접속에 문제가 있는 것 같습니다.. Error: getaddrinfo ENOTFOUND " special-hagfish-50800.upstash.io " VPC 세팅은 섹션2에서 알려주신대로 NAT게이트웨이까지도 설정을 한 상태이고, 보안그룹은 default로 인바운드, 아웃바운드 모두 모든트래픽에 대해 열려있습니다.. 어떤 부분을 의심해볼 수 있을까요?

  • aws
  • docker
  • msa
  • container
  • ecs
우이잉 댓글 1 좋아요 1 조회수 315

window docker rabbitmq 실행시 port access permission 문제로 실패 경우

미해결

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

해당 포트 제한되었는지 확인하여 풀어줘야함 (ex 4369 port) -확인: netsh interface ipv4 show excludedportrange protocol=tcp -해제: net stop winnat netsh int ipv4 add excludedportrange protocol=tcp startport=4369 numberofports=1 net start winnat

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
노정호 댓글 2 좋아요 0 조회수 310

강의 내용으로 (window)grafana 실행 안될 경우

미해결

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

bin 폴더에서 grafana-server start

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
노정호 댓글 1 좋아요 0 조회수 264

kafka 데이터 동기화시 멀티db는 어떻게 처리하는지 궁금합니다.

미해결

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

kafka가 뭔지 잘 몰랐는데 덕분에 잘 수강하고 있습니다. order-service로 하나의 db에 데이터동기화는 이해했습니다. 제목의 질문인 멀티db의 경우는 어떻게 처리하는지 궁금해서 질문드립니다. order-service1 --- order-db1 order-service2 --- order-db2 이렇게 연결된 서비스의 경우 kafka로 db1에 입력된 정보가 db2로 db2는 db1으로 서로 동기화도 가능한가요? 서비스가 더 증가할 경우도 가능한가요? (db1 -> db2,3,4...) db를 master/slave 구성은 해봤는데 msa로 동일db 여러개가 동기화 설정 가능한지 궁금해서 문의드립니다.

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
노정호 댓글 1 좋아요 0 조회수 437

너무 화가 나서 올립니다

미해결

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

신규 강의 업데이트 기다리다 너무 화가 나서 글을 올립니다. 강사님께 질문드리고 싶습니다 확실히 답변 주세요 도대체 강의 업데이트는 언제 됩니까? 올해 초부터 강의가 업데이트 된다고 답변하신지 벌써 반년이 다 지나갑니다 강사님은 강의를 업데이트 하실 생각이 진정으로 있으십니까? 저야 할인받고 구매하긴 했지만 강의가 한두푼 하는것도 아니고 8만8천원짜리 강의면 취준생들은 정말 고민의 고민 끝에 구매한 금액인데 이렇게 하시면 안되죠 물론 강의를 구입하기 전에 이전버전인걸 알고 구매했으니 제 잘못도 있는게 맞습니다. 하지만 강의 이미 녹화 다 끝났다고, 6월 되기 전에 올려주신다고 하셨잖아요 저는 강사님의 답변을 믿고 일단 기존 강의 다 들은 뒤에 업데이트 된 강의 들어야지 하는 생각으로 취준생의 입장에서 정말 거금을 들여 구매한건데 정말 화가 나네요. 이렇게 약속을 지키지 않으실걸 알았으면 굳이 이 강의 구매 안하고 타 사이트에 올라온 훨씬 더 저렴한 강의 구매했겠죠 저야 한달정도밖에 기다리지 않았지만 1월부터 기다린 수강생들은 뭐가 됩니까? 강의를 계속할 여력이 되지 않으시면 공지나 질문에 답변하실때 당분간은 좀 어려울 것 같다고 말씀하시거나 현재 진행사항을 솔직히 말씀하셔야하는것 아닌가요?

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
로봇병정 댓글 1 좋아요 4 조회수 624

RouteLocator class not found 해결법

미해결

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

dependencies에서 implementation 'org.springframework.cloud:spring-cloud-starter-gateway-mvc' 부분을 implementation 'org.springframework.cloud:spring-cloud-starter-gateway' 으로 바꾸시면 해결됩니다.

  • jpa
  • kafka
  • msa
  • rabbitmq
sprint 댓글 2 좋아요 1 조회수 608

비대칭 암호화를 사용하는 이유

미해결

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

강의 내용에서는 통합된 키로 암호화와 복호화를 하고 있어, 사실상 대칭 키와 같은 방법이라고 느껴집니다. 강의 내용에서는 비대칭 암호화의 필요성을 못느끼는데 스프링 클라우드 컨피그서버에서 비대칭 암호화에 대한 필요성과 사용하는 이유는 무엇인가요?

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
shmin11 댓글 2 좋아요 0 조회수 492

로그인 후에도 403 에러가 뜹니다.

미해결

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

안녕하세요 강의를 진행하던 도중 로그인 후에 jwt는 제대로 발급이 되는데 그 후 발급된 토큰을 사용하여 user-service에 접근을 시도하면 403오류가 뜹니다. 강의대로 제대로 잘 했는데 무엇이 문제인지 모르겠습니다.

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
로봇병정 댓글 2 좋아요 0 조회수 468

인기 태그

인프런 TOP Writers

주간 인기글