묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결AWS로 구축하는 MSA와 컨테이너 오케스트레이션
질문있습니다!
안녕하세요뭔가 커뮤니티 리스트에 제 글이 계속 올라와서 민망한데.. 질문이 있어서 문의드립니다프라이빗 서브넷에 위치한 구팡 ec2의 보안그룹 인바운드 설정이고,그외에 강의에 나온대로 전부 설정이 제대로 되어있는데 unhealthy 상태가 그대로 유지되고있는데 혹시 어느 부분을 확인해야 할까요?
-
미해결AWS로 구축하는 MSA와 컨테이너 오케스트레이션
궁금한게 있어서 질문드립니다!
안녕하세요ELB 첫번째 강의에서'현재 우리가 구현한 구조에서의 문제점은 쿠팡 서버가 프라이빗 서브넷으로 이전되면서 API 요청을 받을 수 없게 되었다는 것입니다.'라고 하셨는데, 잘 이해가 되지 않아서 질문드립니다NAT 게이트웨이(혹은 인스턴스)를 설정하고 인터넷 게이트웨이로 연결되어서 외부 통신이 가능한 구조인것 같은데 왜 API 요청을 받을 수 없게 되었다는 것인가요??
-
미해결AWS로 구축하는 MSA와 컨테이너 오케스트레이션
Private EC2 인스턴스 접속에는 성공하였는데
advanced setting에 작성한 스크립트가 동작하지 않은 것으로 보입니다.bastion host로 프라이빗 서브넷에 위치한 EC2에서 로그를 확인했을 때Amazon Linux 2023 repository 0.0 B/s | 0 B 05:59Errors during downloading metadata for repository 'amazonlinux'- Curl error (28): Timeout was reached for https://al2023-repos-ap-northeast-2-de612dc2.s3.dualstack.ap-northeast-2.amazonaws.com/core/mirrors/2023.5.20240722/aarch64/mirror.list [Connection timeout after 30001 ms]과 같은 로그가 발견되는데..레포지토리에 접근하지 못하는거보면 80번 포트 관련한 내용인거같은데 혹시 문제가 무엇일까요?직접 sudo yum install -y git 등의 명령어를 수행해도 Waiting for process with pid 2984 to finish.Waiting for process with pid 3564 to finish이란 내용과 함께 다운되지 않습니다혹시 Bastion host의 보안그룹에 80번 포트를 추가하면 될까 해서 시도해봤는데요렇게 뜨면서 안되네요 ㅠㅠ
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
카프카 설치 오류
카프카 설치 시 오류가 납니다.어떻게 해결 하나요? C:\SpringBoot\springcloud\kafka-demo\kafka_2.12-2.7.0\kafka_2.12-2.7.0>.\bin\windows\zookeeper-server-start.bat .\config/zookeeper.properties\MySQL\Connector은(는) 예상되지 않았습니다.
-
미해결DevOps를 위한 Docker 가상화 기술 (Private Harbor Registry)
오타+강의 자료 질문
6:05초에이미지가ubuntu가 아니라mariadb입니다...강의 명령어를 모아둔 자료는 없을까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의자료 제공 문의
결재후 강의를 수강중입니다.보니, 강의자료 제공이라고 써 있는데, 어떻게 받을 수 있나요.Gracias!!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
MSA - 각 마이크로 서비스마다 별도의 DB사용 질문
#질문 배경#user-service , catalog-service , order-service 까지 실습을 하고 확인해보니 아래 사진들과 같이 각 서비스마다 다른 DB를 사용하는 것을 알게되었습니다. 마이크로 서비스들을 공통적으로 yml 파일에다 DB명을msauser 라고 명명해 헷갈렸지만 말이죠.#질문#: 강의내용을 들어보고 생각해봤는데 실제로 마이크로 서비스를 배포할때 mysql같은 RDB를 각 마이크로 서비스들(3개라고 가정)이 사용한다고 가정하면 각 마이크로 서비스들이 사용할 DB 3개를 만들어줘야 한다고 이해하고 있습니다. 맞나요? (+ 다른 DB지만 메시징큐로 각 서비스들끼리 통신) 그런데 시스템에 DB의 양이 적다면 DB 1개만 만들고 각 마이크로 서비스들이 하나의 DB를 접근하게 구현하기도 하나요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
여기서부터 제 한계인 것 같습니다 제발 도와주세요
윈도우 사용자입니다. kafka-connect 설치 부분이 너무너무 어려워요 ㅠㅠ목표는 kafka,zookeeper -> Docker 컨테이너로 관리 Kafka-Connect, JDBC connector 어떻게든 되기만 해보기,MySQL-jdbc connector 사용하기 입니다. 실제 사용할 때는 docker 를 이용하여 zookeeper 와 kafka 를 사용할 계획이라서 docker 를 사용 , zookeeper 와 kafka를 컨테이너로 관리할 계획입니다. 하지만 kafka-connect 부분 부터 JDBC 관련 부분까지 4~5일 동안 고생하고 있습니다. 시도했던 방법 1. -> 강의 내용 대로 해보기 저는 curl 명령어가 안되어서 curl.exe 로 진행해봤습니다. 강의에서 처럼 tar 명령어로 압축해제 할 떄 해제 중 아래와 같은 에러가 항상 발생하였습니다. 그래서 그냥 윈도우 마우스 우클릭으로 해제하면 가 발생하고 이 에러는 찾아도 안 나오더라고요그냥 무시하고 진행하면 (건너 뛰기 ) 누르면 이런 에러가 발생하고 https://www.inflearn.com/questions/229060/%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94-connector-%EC%8B%A4%ED%96%89%EC%8B%9C-%EC%98%A4%EB%A5%98%EA%B0%80-%EC%83%9D%EA%B2%A8-%EC%A7%88%EB%AC%B8-%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4이 게시글의 답변을 참고하여도 여전히 변함없는 것을 확인한 이후에 도저히 설치는 못하겠다. 라고 생각해서 컨테이너로 올릴 수 있는 방법을 찾아보았습니다. 시도했던 방법 2->https://velog.io/@ililil9482/kafka-db-%EC%97%B0%EB%8F%99-feat.-mysql이 방식이 제가 생각한 워너비라서 그대로 따라 해도 오류가 발생합니다.Volume 설정이 제대로 안되는지 블로그 그대로 관리하고 해도 실제 jar 파일이 들어가지 않더라고요!이외에도 정말 많은 방법을 시도했는데 번번히 실패하거나저랑 실행 환경이 달라서 포기하였습니다.검색도 많이하고 많이 읽어봤습니다. 이제는 진짜 죄송한데 혼자 해낼 자신이 없어요ㅠㅠ윈도우 환경에서 kafka , zookeeper 컨테이너 관리 My-Sql jdbc connector 사용하기 Kafka-Connect, JDBC connector 어떻게든 되기만 해보기이게 진짜 너무너무 하고 싶은데 방법이 없을까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
java17 gradle에서 Jwts.builder().signWith()에서 ClassNotFoundError: javax/xml/bind/DatatypeConverter가 발생한다면
javax를 사용하지 못하여 발생하는 문제입니다.implementation 'javax.xml.bind:jaxb-api:2.3.0 <- 이 디펜던시를 추가해주시면 에러는 사라집니다.수업 내용대로 진행했어야 하는데 그렇게 안하니까 여러 에러들이 막 발생하네요ㅠㅠ
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
User Service - 프로젝트 생성 강의 듣고 있는데요.
User Service - 프로젝트 생성 강의 듣고 있는데요.저는 yml에서 아래처럼 주었는데요.server: prot: 8761http://localhost:8761/eureka/ 뜨다가 포트는 8080으로 시작한다는 메세지가 조회되는데요. 컴퓨터 내부에서 포트를 8761쓰다가 자동으로 8080으로 바꿨다는 얘기인가요?2024-07-17T18:27:14.441+09:00 INFO 11100 --- [discover] [ main] c.n.eureka.cluster.PeerEurekaNodes : Adding new peer nodes [http://localhost:8761/eureka/]2024-07-17T18:27:06.225+09:00 INFO 11100 --- [discover] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path ''2024-07-17T18:52:42.764+09:00 INFO 10484 --- [discover] [ main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 80802024-07-17T18:52:43.848+09:00 INFO 10484 --- [discover] [ main] c.e.d.DiscoveryApplication : Started DiscoveryApplication in 13.147 seconds (process running for 16.512)
-
미해결세 시간만에 끝내는 쿠버네티스부터 마이크로서비스, CI/CD, 서비스 메시까지
kubernetes 구조 설계에 관한 질문
안녕하세요.쿠버네티스를 vm에 직접 구축해서 서비스를 올려보려고 하고 있습니다. 네트워크 관련해서 여쭤보려고 하는데요.쿠버네티스 클러스터(master node, worker node 들)는 private zone에 두고 metal lb에 공인 ip를 줘서 외부에서 통신이 들어올 때, 쿠버네티스 클러스터로 직접 들어오는 것이 아니라 metal lb를 통해서 들어오게 구성하고 싶은데, 이게 가능한 구조 일까요? 혹시 저 방법이 아니면 위와 같은 구조를 설계하려고 할 때 어떤 방식으로 인프라 설계를 해야되는지 여쭤보고자 합니다. 감사합니다.
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
kafka 관련해서 궁금한 점이 있습니다..
안녕하세요. 현재 강의 너무 재밌게 듣고있습니다. 아무래도 제가 카프카에 대해 잘 모르다보니 감이 없어 이해도가 낮습니다. 조금 부족한 질문이라도 이해 부탁드립니다. ㅠㅠ 현재 강의에서 프로젝트에서 생성한 구조는 kafka source connector가 없이 kafka sink connector만 만들고 직접 kafka topic에 저장하고 이를 동기화시키는 방식이라고 이해했습니다. 혹시 제가 이해한 구조가 맞을까요? 혹시 현업에서도 source connector가 굳이 필요 없다면 위와 같은 구조로 사용해도 상관 없을까요?현재 MSA 관련 프로젝트를 준비하고있으며. DB를 서비스별로 어떻게 분리해야할지 굉장히 고민하고 있습니다. 만약 배포되는 모든 서비스가 각자 다른 db를 가지고 있는 방식으로 구성해야한다면, 동일한 도메인 내에 있는 서비스는 db를 동기화를 시켜주는 작업이 필요할 것 같은데요. 제가 테스트해본 결과 source connector쪽 db에 데이터를 삽입했을 때는 sink connector쪽 db에도 데이터가 똑같이 삽입되지만, source connector쪽 db 데이터를 삭제하거나 수정하는 경우는 반영이 안되는 것을 확인했습니다. 혹시 이런 상황에서 참고할만한 키워드나 문서가 있을까요? ㅠㅠ
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
API gateway에서 user service 라우팅시에 회원가입, 로그인, 그외로 나누는 이유가 궁금합니다
routes: - id: user-service # 로그인 uri: lb://USER-SERVICE predicates: - Path=/user-service/login - Method=POST filters: - RemoveRequestHeader=Cookie - RewritePath=/user-service/(?<segment>,*), /$\{segment} - id: user-service # 회원가입 uri: lb://USER-SERVICE predicates: - Path=/user-service/users - Method=POST filters: - RemoveRequestHeader=Cookie - RewritePath=/user-service/(?<segment>,*), /$\{segment} - id: user-service # 그 외 uri: lb://USER-SERVICE # ???? ?? predicates: - Path=/user-service/** - Method=GET filters: - RemoveRequestHeader=Cookie - RewritePath=/user-service/(?<segment>,*), /$\{segment} /**로만 넘겨도 될거같은데 회원가입, 로그인, 그 외 기능을 나누는 이유가 따로 있을까요 ?
-
미해결AWS로 구축하는 MSA와 컨테이너 오케스트레이션
./gradle build 실행 시간
안녕하세요 강의 잘 듣고 있습니다./gradlew buildsudo java -jar build/libs/aws-msa-monolithic-prac-0.1.jar위 명령어를 실행하는 경우gradle build가 완료되지 않고Desired : 3 까지 인스턴스가 생성됩니다.인스턴스를 지금까지 생성하면서 계속 ./gradle build시 문제가 발생하는데 어떻게 해야하는지 궁금합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
FeignErrorDecoder.decode로 호출이 안될떄 확인해볼 부분이 있을까요??
강의해주신 거의 그대로 따라해보고 서칭도 좀 해봤는데, 원인 파악이 힘듭니다..서버 구동시 bean 생성도 되고 있는거 같은데, decode 메소드가 호출되지 않는 이유는 무엇일까요??
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
게이트웨이가 307 Redirect 를 자동으로 재요청하도록 설정할 수 있을까요?
연결된 서비스 중 307 응답을 주는 서비스가 있습니다. 이 때, 이 응답에 포함된 로케이션으로 자동으로 재요청하도록 설정할 수가 있을까요? Zuul 을 사용할 경우, 동일 요청에 대해 정상적으로 리다이렉트되어 최종적으로 200 이 응답되는데, SCG의 Flux 를 사용하니, 리다이렉트가 되지 않습니다. 찾아보니, webClient 에 구성할 수 있다고 하는데요, SCG에서 구성된 빈을 사용하지 않는 것 같기도 합니다. WebClient.builder() .clientConnector(new ReactorClientHttpConnector( HttpClient.create().followRedirect(true) ))게이트웨이가 307 Redirect 를 자동으로 재요청하도록 설정할 수 있을까요? 감사합니다.
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Eureka와 API gateway 관계에 관련해서 궁금한 것이 있습니다.
안녕하세요. 수업 잘 듣고 있습니다.굉장히 흥미롭게 수업을 듣던 도중 궁금한 것이 이것저것 생겨서 질문드립니다. 수업에서 좀 벗어난 이야기일 수도 있는데 찾아보니 잘 찾을 수가 없어서 질문 드립니다.(혹시 답변하기 힘드시면 안하셔도 괜찮습니다.)구조를 보니 API gateway는 서비스 ID만 알고있고, 해당 서비스의 실제 ip 주소와 포트 번호를 알기위해서는 Eureka에게 request를 요청해야하는 것 같습니다. 그렇다면 API gateway는 사용자 요청이 들어 올 때마다 매번 Eureka에게 물어보는 방식인가요? 이렇게 되면 통신 오버헤드가 상당이 클 것 같다는 생각이 들어서 질문드립니다.Eureka와 서비스들 간에는 지속적으로 heartbeat message나 서비스 정보 등을 교환하기위해 통신하는 것 같습니다. 혹시 이런 통신은 전부 HTTP 프로토콜을 통해서 이루어지는 것인가요? 혹은 다른 프로토콜을 사용하여 정보를 주고 받나요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
단일 모듈 다중 프로젝트 질문
아직 완강은 하지 않았지만 궁금한 점이 생겨 질문드립니다강의에서 단일모듈 다중 프로젝트로 진행을 하시는데, 이렇게 되면 CI/CD 관리는 어떻게 하는 지 궁금합니다 서비스 마다 Github Repository를 하나씩 만드는 건가요?단일 프로젝트 멀티모듈은 권장하지 않으시나요?현업에서는 주로 어떤 방법을 사용하는지 궁금합니다
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Eureka 서버 도커 환경 연결.
안녕하세요, 현재 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 Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
신규 강의 질문
안녕하세요. 기존 강의 듣는 와중에 신규 강의가 추가되었는데 기존 강의 스킵하고 신규로 들어도 될까요?? 환경은 Spring Boot 3 이후 버전으로 설정하였습니다.