묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
게이트웨이가 307 Redirect 를 자동으로 재요청하도록 설정할 수 있을까요?
연결된 서비스 중 307 응답을 주는 서비스가 있습니다. 이 때, 이 응답에 포함된 로케이션으로 자동으로 재요청하도록 설정할 수가 있을까요? Zuul 을 사용할 경우, 동일 요청에 대해 정상적으로 리다이렉트되어 최종적으로 200 이 응답되는데, SCG의 Flux 를 사용하니, 리다이렉트가 되지 않습니다. 찾아보니, webClient 에 구성할 수 있다고 하는데요, SCG에서 구성된 빈을 사용하지 않는 것 같기도 합니다. WebClient.builder() .clientConnector(new ReactorClientHttpConnector( HttpClient.create().followRedirect(true) ))게이트웨이가 307 Redirect 를 자동으로 재요청하도록 설정할 수 있을까요? 감사합니다.
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
consumer 재배포시 리밸런싱 이슈
안녕하세요consumer 로직이 변경 시 consumer를 재배포할 경우 리밸런싱이 발생하는 이슈가 존재합니다.실제 운영에서는 로직을 별도로 분리해서 로직만 재배포한다는 것을 세미나에서 듣게 되었는데 Dev원영님도 이렇게 운영하고 계신가요?또한 이때 로직을 분리한 서버를 rest-api vs gRPC 어느 것으로 실제 운영하고 계신지 궁금합니다.
-
해결됨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 이후 버전으로 설정하였습니다.
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
카프카 스트림즈 애플리케이션이 죽는 경우가 발생하는지
안녕하세요 데브원영님!현재 카프카를 적용한 프로젝트 개발 중에 있습니다.카프카 스트림즈(DSL)를 자바 애플리케이션안에 자바 모듈로 구현을 한 상태입니다. 현재 카프카 브로커로 들어오는 데이터는 초당 50건~200건 가량이며 한 건 당 2000byte 정도 데이터를 받고 있습니다. 현재는 모든 데이터를 한 토픽에서 받고, 그 모든 데이터가 담긴 토픽을 목적별로(차, 청소 등..) 만든 토픽에 필터링 하고 있습니다. 필터링하는 로직이 복잡하지는 않습니다. (코드상 10줄 미만) 그런데 이런 상황에서 운영 중에 만약에 ,카프카 스트림즈가 부하가 많아질 경우나 네트워크 등 다른 이슈로 스트림즈 애플리케이션이 죽지는 않을까 하는 걱정이 있습니다. 질문입니다.혹시 이렇게 자바 코드로 작성한 스트림즈 애플리케이션이 죽는 상황이 있나요? (부하 또는 기타 문제로...)있을 경우 대비를 한다면 스트림즈 애플리케이션을 자바 코드가 아닌 따로 프로젝트를 만들어(WAS를 따로 생성) 운영을 해야할까요?스트림즈 애플리케이션이 죽는 경우는 어느정도의 부하(초당 몇 바이트정도인지.. 보통..)가 있어야 죽는 경우가 발생하나요? (CPU성능, 메모리 등 PC스펙이 충분하다고 할 경우에요..)만약 WAS를 따로 만들어서 운영해야 한다면, WAS를 보통 여러 개 정도 두나요? 아니면WAS를 1개만 만들고 WAS 내 스트림즈 스레드를 여러 개로 만들어서 운영하나요? 아니면 여러개 WAS에 여러개 스레드를 띄우나요?WAS를 여러개 두는 경우, 1개 WAS가 죽으면 자동으로 fail over 가 되나요? 안된다면 어떻게 fail over가 되도록 구현해야 하나요? 미리 감사합니다.
-
미해결카프카 완벽 가이드 - 코어편
안녕하세요
안녕하세요 맥북 m2 사용자라 utm에서 ubuntu 설치하고 진행하는데 주소, 네트워크 주소, 게이트웨이(찾아보니 yaml 하라고 해서 )부터 너무 막히는데 하나씩 utm 방법으로 찾아서 진행해야하는 건지 아니면 다른 방법이 있는지 궁금합니다
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
yml파일 설정, 그리고 tomcat 서버로 작동
gateway.routes 형식이 아니라 위 사진 처럼중간에 mvc가 들어가는 데 버전 업 되면서 문법이 바뀐걸 까요?apigateway-service 동작할 때 netty 서버로 동작하지 않고 tomcat 으로 작동하는데 이것도 버전으로 인해 바뀐 걸 까요?
-
해결됨대용랑 채팅 TPS에 대한 stateful 서비스 구축하기
코드 공유
안녕하세요 강사님,지금 막 따라가고 있는 수강생들 중 한명입니다. 저는 1편은 듣지 않고 2편 부터 따라가고 있습니다. 혹시 실례가 안된다면 "처음 뵙는 분들! 이전 강의에 대한 소스코드를 간단하게 알려드릴게요"에서 나오는 코드를 파일 형태로 공유 해주실수 있을까요? 아무래도 다음에 존재하는 강의를 보다 더 수월하게 이해하고 실습하기 위해 필요할 듯 싶습니다. 감사합니다
-
미해결15일간의 빅데이터 파일럿 프로젝트
회귀분석 관련 질문 드립니다.
R을 이용한 회귀분석 강의에서 smartcarMaster2Income에 있는 capacity를 feature로 income이라는 lable을 예측하는 것으로 이해했는데 분석에 사용된 데이터를 통해 얻은 모델을 검증하는 과정에서 Test파일을 가지고 predict를 하고나서 동일한 파일과 비교를 하는게 잘 이해가 되지 않아서 질문 드립니다. 모델을 검증?추론?할때는 lable값이 없는 데이터를 넣고 그 결과가 실제데이터(test파일)과 얼마나 가까운지를 확인하는 것이 아닌가요?
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Eureka 오류
강의의 기본 설정 그대로 아무 메이븐 추가 없이 강의에서 추가하는 메이븐 그대로 추가를 했는데도 계속된 오류가 발생하는데, 혹시 현제 버전에서 어떻게 하면 이 문제를 해결할 수 있는지 가르쳐 줄 수 있을까요? 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); } } 기본 설정 그대로 실행하면 밑에 와 같은 오류가 지속적으로 발생 합니다.
-
미해결카프카 완벽 가이드 - 코어편
혹시 ubuntu desktop 버전이 강의를 볼 때 필 수 인가요??
ssh 접속으로 한다고 하면 구지 desktop 안따라해도 될 것 같은데..
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
config-service를 profiles 별로 나눌수 있을까요?
config-service 서버 profile 설정 질문드립니다. 예를들어 profile3가지로 나눌 경우application.ymlapplication-dev.ymlapplication-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.
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
연결 브로커 지정
안녕하세요클러스터에 브로커가 100개,토픽 A에 파티션 5개, 복제 3개인 상황 이라고 가정하겠습니다.프로듀서는 리더 파티션이 존재하는 브로커와 통신을 해야하는데브로커 100개 중 리더 파티션 5개가 분배될 것인데 클라이언트 입장에서는 리더 파티션이 있는 브로커를 모릅니다.이 때 bootstrap.servers에 100개 중 아무 브로커 2개만 적어 주면 알아서 리더 파티션이 있는 브로커를 알려주나요?bootstrap.servers에 몇 개의 브로커를 적는게 올바른가요?
-
미해결실습으로 배우는 선착순 이벤트 시스템
consumer 모듈
강의에서 consumer 라는 모듈을 새로 생성해서 따로 run 을 시키더라고요저는 하나의 모듈에서 작업을 하고있는데요. 하나의 프로젝트 안에 domain consumer , config 등등을 모두 설정했습니다. 이후에 ./gradlew bootRun 으로 실행하고나서 ,테스트 케이스를 돌렸는데요 .해당 영상 마지막에는 여러명응모 테스트 메서드가 통과라고 나오지만 저는 Actual : 0 으로 나옵니다.
-
미해결실습으로 배우는 선착순 이벤트 시스템
카프카 토픽 생성오류
https://www.inflearn.com/questions/1126638 위의 링크와 같이 저도 토픽 생성이 안되는데요환경은Mac M2 환경입니다.
-
미해결실습으로 배우는 선착순 이벤트 시스템
redis 를 사용하여 문제점 해결하기
redis 를 사용하여 문제점 해결하기 7:25 의 도표를 보고있습니다.Thread - 1 이 실행이 end - 10:02 가 되면 Thread - 2 가 start - 10 : 02 가 되고 incr coupon_count 가 된다고 나와있습니다. 동기식으로 돌아가게 되면 , 속도적인 측면에서 괜찮을까요 ?? 만약에 사용자가 동시다발적으로 쿠폰 발급을 클릭하게 되면 동기식으로 했을때 괜찮을까요 ??
-
미해결실습으로 배우는 선착순 이벤트 시스템
프로젝트셋팅
안녕하세요 강의 잘 듣고있습니다.설정 하실때 ,api 와 consumer 두개로 나눠서 하셨는데 ,하나의 src 밑에 있는 프로젝트로 진행을 할수가 있을까요 ?? 코드를 봤는데 중복된게 많아서 api 와 consumer 로 나누지 않고 하나의 src 밑에서 작성해도 되지않을까 생각했습니다.
-
미해결실습으로 배우는 선착순 이벤트 시스템
test 오류 발생하는 분들을 위한 해결 방법!
test를 돌릴 때, kafka consumer가 반응을 하지 않으면 이전 테스트에서 사용한 값 때문일 수도 있습니다! 저 같은 경우는 테스트가 순식간에 끝나버려서 의심을 했는데요.redis-cli에 접속하신 뒤 `flushall` 명령어를 친 뒤에 테스트를 진행해보시면 해결 됩니다!