묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨대용랑 채팅 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` 명령어를 친 뒤에 테스트를 진행해보시면 해결 됩니다!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
window docker rabbitmq 실행시 port access permission 문제로 실패 경우
해당 포트 제한되었는지 확인하여 풀어줘야함 (ex 4369 port)-확인: netsh interface ipv4 show excludedportrange protocol=tcp-해제:net stop winnatnetsh int ipv4 add excludedportrange protocol=tcp startport=4369 numberofports=1net start winnat
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 내용으로 (window)grafana 실행 안될 경우
bin 폴더에서grafana-server start
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
안녕하세요 질문이 있어 문의드립니다.
이미 Kafka Core편은 들었고 현재 Kafka Connect부분중 Sink Connector듣기 전입니다.이 강의를 듣게된 동기이기도 한데요.. DBToDB방식으로 해결하지 않고 Source Connector가 없이 Topic를 만들고 Topic에 Produce하는 방법이 가능한지요? Topic에 생성된 메시지는 Sink Connector 로 DB에 적재되는 구조입니다. Topic의 메시지 구조는 Source Connector에서 생성된 Message 체계로 Topic에 메시지를 적재하는 식으로 처리할려고 합니다.Kafka core에서 배웠던 Produce하는 방법을 이용하는경우입니다. 정리) Source Connector없이 Topic에 메시지를 보내고 이를 SinkConnect로 DB에 적재하는게 가능한지요?감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
kafka 데이터 동기화시 멀티db는 어떻게 처리하는지 궁금합니다.
kafka가 뭔지 잘 몰랐는데 덕분에 잘 수강하고 있습니다.order-service로 하나의 db에 데이터동기화는 이해했습니다.제목의 질문인 멀티db의 경우는 어떻게 처리하는지 궁금해서 질문드립니다. order-service1 --- order-db1order-service2 --- order-db2 이렇게 연결된 서비스의 경우kafka로 db1에 입력된 정보가 db2로db2는 db1으로 서로 동기화도 가능한가요? 서비스가 더 증가할 경우도 가능한가요? (db1 -> db2,3,4...) db를 master/slave 구성은 해봤는데 msa로 동일db 여러개가 동기화 설정 가능한지 궁금해서 문의드립니다.
-
미해결카프카 완벽 가이드 - ksqlDB
table의 데이터가 실시간으로 topic에 담기지 않습니다
mysql에 debezium source connector로 topic에 가져온 데이터를 받는 stream을 만들고그 stream을 기반으로 하여CREATE TABLE timeout WITH (KAFKA_TOPIC='timeout' , KEY_FORMAT='AVRO', VALUE_FORMAT='AVRO', PARTITIONS=1) AS > SELECT > order_id -> order_id AS order_id, > TIMESTAMPADD(MILLISECONDS, 9 * 3600 * 1000, PARSE_TIMESTAMP(LATEST_BY_OFFSET(order_datetime), 'yyyy-MM-dd''T''HH:mm:ssX')) AS last_log_time > FROM orders > GROUP BY order_id -> order_id > HAVING ((UNIX_TIMESTAMP(CONVERT_TZ(FROM_UNIXTIME(UNIX_TIMESTAMP()), 'UTC', 'Asia/Seoul')) - UNIX_TIMESTAMP(TIMESTAMPADD(MILLISECONDS, 9 * 3600 * 1000, PARSE_TIMESTAMP(LATEST_BY_OFFSET(order_datetime), 'yyyy-MM-dd''T''HH:mm:ssX')))) / 1000 > 600) > EMIT CHANGES;이런식으로 id별로 마지막 로그 시간이 오고 10분 이상이 지나면 table에 담기도록 만들었습니다처음에 이미 10분이 지난 데이터를 넣으면 table에도 들어가고 topic에도 잘 들어가는데현재시간의 데이터를 넣고 10분이 지나면 table에는 들어가는데 topic에는 들어가지 않습니다table에도 담기고 topic에도 담기려면 어떻게 해야하나요? 아니면 원래 불가능한건가요?기반한 stream은 데이터를 넣으면 곧 바로 stream과 토픽에 잘 들어갑니다.|ORDER_ID |CALCULATED_TIME |LAST_LOG_TIME | +------------------------------------------+------------------------------------------+------------------------------------------+ |1 |78088 |2024-06-16T12:30:00.000 | |2 |69988 |2024-06-16T14:45:00.000 | |3 |72088 |2024-06-16T14:10:00.000 | |4 |32739088 |2023-06-04T12:00:00.000 | |5 |32637088 |2023-06-05T16:20:00.000 | |6 |32567788 |2023-06-06T11:35:00.000 | |7 |69058 |2024-06-16T15:00:30.000 | |8 |68698 |2024-06-16T15:06:30.000 | |9 |66958 |2024-06-16T15:35:30.000 | |10 |65698 |2024-06-16T15:56:30.000 | |11 |66298 |2024-06-16T15:46:30.000 | |12 |4258 |2024-06-17T09:00:30.000 | |13 |3418 |2024-06-17T09:14:30.000 | |14 |1918 |2024-06-17T09:39:30.000 | |15 |2429 |2024-06-17T09:30:59.000 | Query terminated ksql> print result7777; Key format: AVRO or KAFKA_STRING Value format: AVRO rowtime: 2024/06/16 04:23:23.878 Z, key: 1, value: {"CALCULATED_TIME": 12183, "LAST_LOG_TIME": 1718541000000}, partition: 0 rowtime: 2024/06/16 04:23:23.879 Z, key: 2, value: {"CALCULATED_TIME": 4083, "LAST_LOG_TIME": 1718549100000}, partition: 0 rowtime: 2024/06/16 05:10:08.498 Z, key: 3, value: {"CALCULATED_TIME": 6183, "LAST_LOG_TIME": 1718547000000}, partition: 0 rowtime: 2024/06/16 06:06:52.365 Z, key: 4, value: {"CALCULATED_TIME": 32673183, "LAST_LOG_TIME": 1685880000000}, partition: 0 rowtime: 2024/06/16 06:06:52.373 Z, key: 5, value: {"CALCULATED_TIME": 32571183, "LAST_LOG_TIME": 1685982000000}, partition: 0 rowtime: 2024/06/16 06:06:52.377 Z, key: 6, value: {"CALCULATED_TIME": 32501883, "LAST_LOG_TIME": 1686051300000}, partition: 0 rowtime: 2024/06/16 06:09:36.530 Z, key: 7, value: {"CALCULATED_TIME": 3153, "LAST_LOG_TIME": 1718550030000}, partition: 0 rowtime: 2024/06/16 06:15:08.351 Z, key: 8, value: {"CALCULATED_TIME": 2793, "LAST_LOG_TIME": 1718550390000}, partition: 0 rowtime: 2024/06/16 06:41:28.920 Z, key: 9, value: {"CALCULATED_TIME": 1053, "LAST_LOG_TIME": 1718552130000}, partition: 0 rowtime: 2024/06/17 00:23:09.442 Z, key: 12, value: {"CALCULATED_TIME": 1372, "LAST_LOG_TIME": 1718614830000}, partition: 01-9, 12 이미 10분이 지난 데이터 // 그 외 = 데이터가 mysql에 담기고 10분이 지나 table에 담긴 데이터
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
auto_commit_interval_ms_config 질문
- 카프카를 공부하시면서 생긴 질문들을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요~auto_commit_interval_ms_config 에 대해 궁금한 점이 있는데요 찾아봐도 모호해서 질문드립니다.auto_commit_interval_ms_config = 60이라고 가정했을때위 옵션은 poll() 호출 여부와 관계없이 60초 마다 자동으로 커밋을 해주는건가요?아니면 마지막 자동커밋 발생하고 60초 이후에 poll() 이 호출될때 커밋을 해준다는건가요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
[docker] kafka docker-compose single-broker.yml 실행 에러
강의를 따라 docker-compose 를 이용 해 kafka와 zookeeper 컨테이너를 설정을 수정하고,도커에서 docker-compose-single-broker.yml 파일을 실행하는 과정에서 에러가 발생했습니다. 최근에 올라온 유사한 질문의 답변을 참고 해 똑같이 yaml 파일을 구성 했는데, 해결 되지 않았습니다.참고: https://www.inflearn.com/questions/1187585/docker-compose-f-docker-compose-single-broker-yml-up-d https://github.com/wurstmeister/kafka-docker의 master branch clonewindows OSdocker-compose-single-broker.ymlversion: '2' services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" networks: my-network: ipv4_address: 172.18.0.100 kafka: # build: . image: wurstmeister/kafka ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: 172.18.0.101 KAFKA_CREATE_TOPICS: "Topic1:1:3" KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 volumes: - /var/run/docker.sock:/var/run/docker.sock depends_on: - zookeeper networks: my-network: ipv4_address: 172.18.0.101 networks: my-network: external: true name: ecommerce-network명령어$ docker-compose -f docker-compose-single-broker.yml up -dError[+] Building 36.9s (8/9) docker:default => [kafka internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 2.40kB 0.0s => [kafka internal] load metadata for docker.io/library/openjdk:11-jre-slim 2.0s => [kafka auth] library/openjdk:pull token for registry-1.docker.io 0.0s => [kafka internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [kafka 1/4] FROM docker.io/library/openjdk:11-jre-slim@sha256:93af7df2308c5141a751c4830e6b6c5717db102b3b31f012ea29d842dc4f 0.0s => [kafka internal] load build context 0.0s => => transferring context: 243B 0.0s => CACHED [kafka 2/4] COPY download-kafka.sh start-kafka.sh broker-list.sh create-topics.sh versions.sh /tmp2/ 0.0s => ERROR [kafka 3/4] RUN set -eux ; apt-get update ; apt-get upgrade -y ; apt-get install -y --no-install-recomm 34.8s ------ ...생략 failed to solve: process "/bin/sh -c set -eux ; apt-get update ; apt-get upgrade -y ; apt-get install -y --no-install-recommends jq net-tools curl wget ; apt-get install -y --no-install-recommends gnupg lsb-release ; \tcurl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg ; \techo \t\t\"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \t\t$(lsb_release -cs) stable\" | tee /etc/apt/sources.list.d/docker.list > /dev/null ; apt-get update ; apt-get install -y --no-install-recommends docker-ce-cli ; apt remove -y gnupg lsb-release ; apt clean ; apt autoremove -y ; apt -f install ; apt-get install -y --no-install-recommends netcat ; chmod a+x /tmp2/*.sh ; mv /tmp2/start-kafka.sh /tmp2/broker-list.sh /tmp2/create-topics.sh /tmp2/versions.sh /usr/bin ; sync ; /tmp2/download-kafka.sh ; tar xfz /tmp2/kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz -C /opt ; rm /tmp2/kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz ; ln -s /opt/kafka_${SCALA_VERSION}-${KAFKA_VERSION} ${KAFKA_HOME} ; rm -rf /tmp2 ; rm -rf /var/lib/apt/lists/*" did not complete successfully: exit code: 2 강의 내용과는 다르게 뭘 다운 받더니 중간에 ERROR 가 발생합니다.구글링을 해도 안나오고, wurstmeister/kafka-docker 이슈에도 적혀져 있는게 없는데 혹시 해결 하실 분 계실까요? 😭😭😭😭
-
해결됨대용랑 채팅 TPS에 대한 stateful 서비스 구축하기
카프카의 이유
안녕하세요 강사님 아키텍처에 궁금한 점이 생겨 질문드립니다.카프카를 사용한 이유가 채팅 서버의 상태를 비동기로 전송하기 위함이라 이해했습니다.채팅 서버가 실행/종료될 때카프카에 이벤트 발행컨트롤 서버가 이벤트 컨슈밍하며 채팅서버 상태 확인제가 제대로 이해한게 맞다면 대략 위와 같은 흐름이라 이해했습니다. 즉 채팅 서버의 상태를 컨트롤 서버에 알리기 위해 카프카라는 메시지 브로커를 둔것 같은데, 카프카를 사용하지 않고 채팅서버에서 컨트롤 서버로 직접 상태를 전송하는 방식은 불가능할까요.? 이 상황에서 카프카가 굳이 필요한건지 라는 의문이 들어 질문하게 됐습니다ㅇㅅㅇ.
-
해결됨실습으로 배우는 선착순 이벤트 시스템
쿠폰 테이블 조회 시 user_id 값
db에 등록도 잘 되었는지 확인해 보기 위해서coupon 테이블 조회 해보았는데 [coupon_id], [user_id]테스트 로직에서 userId 값은 단순히 for을 통해 0부터 순차적으로 받은 뒤쿠폰 개수에 맞춰 userId 도 0~99 사이의 값이 들어 올 것이라 생각했는데예상과 다르게 103 이라는 id가 들어왔습니다이런 이유가 궁금합니다