묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
스트림즈 DSL interval 기능
안녕하세요 강사님스트림즈DSL과 프로세서API 를 설명하는 부분에서 스트림즈 DSL이 일부기능을 지원하지 않는다고 하셨는데요 이중에서 스트림즈DSL에서는 인터벌마다 데이터를 처리하는 부분을 지원하지 않는다고 하셨는데요.강의 후반에 나오는 window 프로세싱을 이용하면 인터벌 데이터 처리도 가능한게 아닐까 라는 생각이 드는데요, 맞을까요? 어떤 부분에서 스트림DSL로는 인터벌마다 데이터를 처리하는게 안된다고 하신건지 궁금합니다!
-
해결됨대용랑 채팅 TPS에 대한 stateful 서비스 구축하기
1탄과 2탄 사이 변경된 코드 질문
안녕하세요! 지난 1탄 강의 잘 들었습니다.다름이 아니라 1탄과 2탄에서 go로 작성된 코드가 조금 다른거 같은데 혹시 누락된 강의가 있는걸까요 ?1탄에선 network 디렉토리에 network.go와 socket.go만 작성했었는데 2탄에선 server.go와 util.go가 생기면서 코드가 조금 변경된거 같습니다.누락된 강의가 없다면, 변경된 부분이 어떤 것들인지 알고싶어서 질문드립니다.
-
미해결[데브원영] 아파치 카프카 for beginners
안녕하세요. kafka 실행중에 다음과같은 connection refused가 나는대 왜그런걸까요??
안녕하세요. kafka 실행중에 다음과같은 connection refused가 나는대 왜그런걸까요?? security group에서 포트 오픈도 하였습니다. INFO Socket error occurred: kafka_03/54.180.82.45:2181: Connection refused (org.apache.zookeeper.ClientCnxn)[2024-05-24 05:47:22,554] INFO Opening socket connection to server kafka_01/0.0.0.0:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)[2024-05-24 05:47:22,554] INFO Socket error occurred: kafka_01/0.0.0.0:2181: Connection refused (org.apache.zookeeper.ClientCnxn)[2024-05-24 05:47:23,656] INFO Opening socket connection to server kafka_02/43.201.26.39:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)[2024-05-24 05:47:23,657] INFO Socket error occurred: kafka_02/43.201.26.39:2181: Connection refused (org.apache.zookeeper.ClientCnxn)[2024-05-24 05:47:23,758] INFO Opening socket connection to server kafka_03/54.180.82.45:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)[2024-05-24 05:47:23,759] INFO Socket error occurred: kafka_03/54.180.82.45:2181: Connection refused (org.apache.zookeeper.ClientCnxn)[2024-05-24 05:47:23,859] INFO Opening socket connection to server kafka_01/0.0.0.0:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 중간중간 쿵쿵 거리면서 강의소리 안들려요
강의 중간중간 쿵쿵 거리면서 강의소리 안들려요
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
traceId, spanId 모두 콘솔에 출력이 되는데 zipkin에는 검색되는 traceId가 하나도 없습니다. 무엇이 문제일까요?
인프런 Ai 가 아닌 강사님이 도움을 주시길 바라봅니다... 스프링부트3가 되면서 sleuth가 사용이 안 된다 하여, 강사님 깃허브에 배포된 프로젝트와 커뮤니티 게시판을 참조하여 디펜던시를 다 수정하고 테스트 하였으나 order-service와 user-service 같은 traceId가 출력이 되고, 혹시 다운받은 zipkin이 문제인가 하여 도커로 zipkin을 실행해봤으나 브라우저로 접속한 zipkin에서는 아무런 traceId가 검색이 되지 않고 어떠한 요청들도 기록이 되지 않습니다. 무엇이 문제일까요...? 스택오버플로우에 비슷한 사례들을 찾아봐서 amqp와 같이 쓰면 문제가 생긴다 이런 저런 디펜던시 추가해봐라 하는 것들을다 따라봤으나 해결이 되지 않습니다. 삼일째 이 문제에서 벗어나지 못하고 있습니다... 간곡히 도움을 부탁드립니다... 어떠한 키워드라도 좋으니 혹시 이 글을 보시는 다른 수강생분들도 도움 좀 주세요...
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
로그에 traceId, spanId 모두 잘 찍히는데 traceId로 조회가 안 됩니다.
로그에 traceId, spanId 모두 잘 찍히는데 브라우저의 zipkin에서 traceId로 조회를 하면 no trace가 뜨네요. 스프링부트 3에 맞춰서 깃허브에 올려주신 자료 참조해서 디펜던시 맞게 설정하고 yml에도 올려주신 자료대로 수정했는데 이런 문제가 생기면 어떤 부분이 잘못된 걸까요?
-
미해결15일간의 빅데이터 파일럿 프로젝트
파일질라 다운로드 오류
안녕하세요파일질라 exe 파일을 열면이와 같은 오류가 발생합니다. 어떻게 해결해야하나요?
-
미해결15일간의 빅데이터 파일럿 프로젝트
hue 설치 중 psycopg2 설치 오류
휴 설치 강의에서 실습 중 psycopg2 설치 오류가 발생합니다. 해결방법이 있을지 문의드립니다.
-
미해결실습으로 배우는 선착순 이벤트 시스템
컨슈머 확인 테스트 실패
강의 내용대로 따라서 진행했는데 '여러명 응모' 테스트에 실패합니다. 테스트 실행 시 강의화면에서 보이는 것과 같이 kafka 관련 로그(ProducerConfig values)는 전혀 나오지 않습니다. CLI에서도 컨슈머는 아무런 메시지를 받지 못합니다... 에러 원인 파악이 전혀 안되서 강의 진도가 안나가고 있어요docker-compose 실행부터 문제가 있어서 답변받은 내용대로 수정해서 아래와 같이 실행했습니다.version: '2' services: zookeeper: image: confluentinc/cp-zookeeper:latest container_name: zookeeper environment: ZOOKEEPER_SERVER_ID: 1 ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 ZOOKEEPER_INIT_LIMIT: 5 ZOOKEEPER_SYNC_LIMIT: 2 ports: - "2181:2181" kafka: image: confluentinc/cp-kafka:latest container_name: kafka depends_on: - zookeeper ports: - "9092:9092" environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181' KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:29092,PLAINTEXT_HOST://localhost:9092 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 producer와 consumer간에 testTopic으로 메시지 주고받는 테스트는 성공했어요.근데 애플리케이션에서 강의내용대로 코드작성해서 메시지 날릴때는 메시지를 전혀 받지 못합니다.docker exec -it kafka kafka-topics --bootstrap-server localhost:9092 --create --topic coupon_create docker exec -it kafka kafka-console-consumer --topic coupon_create --bootstrap-server localhost:9092 --key-deserializer "org.apache.kafka.common.serialization.StringDeserializer" --value-deserializer "org.apache.kafka.common.serialization.LongDeserializer"
-
미해결실습으로 배우는 선착순 이벤트 시스템
kafka 와 redis pub/sub 비교
Redis 자체에 pub/sub 이라는 기능이 있는 걸로 알고있습니다.이 기능은 kafka 랑 동일한 동작을 하지 않을까 하는 생각이 들었는데요.. 현재 프로젝트에 kafka 대신 redis의 pub/sub 을 사용해서 부하를 줄일 수도 있을까요?
-
해결됨실습으로 배우는 선착순 이벤트 시스템
ApplyService#apply 트랜잭션 문제
안녕하세요~강의 중 ApplyService#apply 트랜잭션 관련해서 질문이 있습니다.apply 메서드가 appliedUserRepository#add 만 호출되거나 couponCountRepository#increase 까지만 호출되고 에러, 시스템 다운 등 특정 이유로 couponCreateProducer#create 는 호출되지 않게 되었을 때에 대한 처리가 필요할 것 같습니다.어떻게 처리하는 것이 좋을까요?? @Service @RequiredArgsConstructor public class ApplyService { private final CouponRepository couponRepository; private final CouponCountRepository couponCountRepository; private final CouponCreateProducer couponCreateProducer; private final AppliedUserRepository appliedUserRepository; public void apply(final Long userId) { final Long applied = appliedUserRepository.add(userId); if (applied != 1) { return; } final long count = couponCountRepository.increase(); if (count > 100) { return; } couponCreateProducer.create(userId); } }
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Kafka 테스트.. 오류
D:\코딩\kafka_demo\kafka_2.13-3.7.0> .\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties The input line is too long. The syntax of the command is incorrect. D:\코딩\kafka_demo\kafka_2.13-3.7.0>입력 명령어가 너무 길다고 계속 오류가 나는데 버전을 낮춰야할까요..?
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
직렬화, 역직렬화 관련
안녕하세요. 좋은 강의 감사합니다.직렬화, 역직렬화 관련해서 질문이 있습니다.저는 Spring 프레임워크를 사용해서 프로듀서와, 컨슈머를 각각 따로 서버를 만들어서 개발 하고 있습니다.수업 내용은 단순히 String이지만 제가 실무에 사용하려고하는건 웹 애플리케이션 과 같이 DTO 클래스로받은 데이터를 그대로 프로듀서에서 send()에 담아서 보내고 있습니다. 컨슈머에서 DTO로 받으려고관련 자료를 찾아 보니 JsonSerializer가 있어 해보았습니다. Object 로 받아서 여러 DTO를 받을 수 있는Consumer factory를 만들다 보니 여러 에러가 발생해서 ObjectMapper를 사용했습니다.@Component public class ObjectMapperService { private final ObjectMapper objectMapper = new ObjectMapper(); public <T> T convertValue(String json, Class<T> valueType) throws JsonProcessingException { return objectMapper.readValue(json, valueType); } }@Component @Slf4j @Data @RequiredArgsConstructor public class KafkaConsumer { private final ObjectMapperService mapper; @KafkaListener(topics = "member-join", containerFactory = "commonKafkaListenerContainerFactory") public void receiveMemberJoin(ConsumerRecord<String, String> consumerRecord, Acknowledgment acknowledgment) throws Exception { String value = consumerRecord.value(); MemberJoin memberJoin = mapper.convertValue(value, MemberJoin.class); String recommendCode = memberJoin.getRecommendCode(); log.info("recommendCode: {}", recommendCode); log.info("received payload = {}", memberJoin.toString()); acknowledgment.acknowledge(); } }이런식으로 사용해서 DTO클래스로 사용했는데 실무에서는 어떤식으로 하는지 궁금합니다. 혹시 참고할 수 있는 정보가 있을까요?감사합니다.
-
미해결카프카 완벽 가이드 - 코어편
같은 대역의 PC로 연결 후 Java code 질문
저번 질문이 많이 도움이 되었습니다. 그래서 같은 대역의 PC 2개를 가지고하나는 kafka 서버로 만들어서 ssh로 연결이 되었고 여러 명령들도 잘 실행되었습니다.이번엔 java code로 만들어본 simpleproducer를 이용하여 메세지를 보내보고싶은데IP 부분의 code를 어떻게 설정하면 좋을까요?kafka 서버의 PC의 ip는 210.110.32.125 이고 포트번호는 12345로 포트 포워딩을 통해 22번 변경했습니다 Properties props = new Properties(); //bootstrap.servers, key.serializer.class, value.serializer.class //props.setProperty("bootstrap.servers", "192.168.56.101:9092"); props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.56.101:9092");
-
미해결카프카 완벽 가이드 - 코어편
인텔리제이 Producer실행 관련
인텔리제이에서 메인문을 실행하였을 때,이러한 로그가 반복되며 무한히 나옵니다. gradle에서slf4j도 정상적으로 적용시켰습니다만 해결이 안되네요. 뭐가 문제일까요?
-
해결됨카프카 완벽 가이드 - 코어편
kafka 서버 구성한 기기 외 다른 기기에서 접속하고싶은데..
강의에서는 한 기기에서 모든게 이루어져서강의에서 진행되는 기기는 kafka 서버로 두고외부 기기 2개로 producer와 consumer 코드를 실행시켜보고 싶은데설정을 어떻게 해야할지 모르겠습니다.검색을해보면 advertised.listeners에 IP를 입력해야 하는거 같은데무슨 IP를 입력하면 좋을까요? 아니면 또 다른 설정이 있나요?kafka서버 PC 한대 와 다른 PC 2대인 상황이고 같은 와이파이를 공유하고 있는 상황입니다.producer 코드를 가진 PC를 실행시켜 kafka 서버 PC에 접속하여 consumer 코드를 가진 PC로 받고싶습니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
MSA 환경에서 Prometheus 궁금한 점이 있습니다.
강의 잘보고 있습니다.다름이 아니라 MSA 환경에서는 한 서비스가 여러 인스턴스로 올라가있는 경우가 있는데, prometheus.yml에서 해당 인스턴스를 다 지정해주지 않아도 괜찮을까요? 또한 spring cloud gateway에서 lb://ORDER-SERVICE 형태로 로드밸런싱 처리가 되어있는데, 그렇다면 프로메테우스에서 actuator로 가져오는 데이터가 여러 인스턴스 각각 가져오는게 아닌 로드밸런싱되는데로 데이터를 가져오게 되지않나요? 호기심에 질문해봅니다.
-
미해결카프카 완벽 가이드 - 코어편
broker config vs topic config
broker와 A topic config가 각각 log.retention.ms = 1일,retention.ms=1일 인 상황에서broker config를 1주일로 바꿨습니다.A 토픽 메세지 보관 기간은 여전히 1일인가요 ? 브로커쪽 설정 수정이 global 하게 적용되는게 아닌건가요?감사합니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결실습으로 배우는 선착순 이벤트 시스템
kafka Consumer
Kafka를 사용하는 주된 이유 중 하나는 확실히 데이터 처리의 유연성과 부하 분산에 있습니다. Kafka를 활용함으로써, 많은 양의 이벤트(예: 쿠폰 발행 요청)를 바로 처리하지 않고 큐에 보관했다가, 시스템의 부하가 적은 시기에 또는 자원이 더욱 충분할 때 일괄적으로 처리할 수 있게 됩니다.kafka 관련해서 다른 분 질문에 답글이 위처럼 달린 것을 확인했는데요.. 큐에 보관했다가 일괄적으로 처리를 할 수 있다고 했는데 그럼 컨슈머 listener 에 언제 카프카에 있는 이벤트를 받아서 처리할 것인지에 대한 설정을 할 수 있는 것인가요?시스템 부하가 적은 시기나 자원이 충분할 때가 언제인지 어떻게 알고 처리를 하는지 궁금합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 수강 후 질문
안녕하세요 강의를 모두 수강후 , 강의를 통해 MSA관련 배운부분을 적용시키기 위해 프로젝트를 진행했습니다!Spring Cloud를 활용하고 서비스를 모두 개발완료 후 배포를 진행중입니다. 현재 마이크로 채팅 서비스가 ec2 a인스턴스에있고 gateway는 b인스턴스에 있고 모두 docker로 배포를 진행했습니다. eureka서버는 b인스턴스에 있고 gateway를 비롯해서 모든 마이크로서비스가 정상적으로 등록된 상태입니다.그러던중에, 아래와 같은 에러가 gateway 로그에 찍혔습니다. ec2 보안그룹도 정상적으로 포트를 열어줬고, 외부에서 접근이 가능하게 docker로 포트 매핑도 진행했고 , 방화벽도 문제가없는데 원래 gateway에서 ==> 다른 인스턴스에 있는 마이크로서비스를 연결을 하지못하는걸까요? 구글링을 많이해봤지만, 비슷한 내용이 없고 해결하기가 어려워 질문 남깁니다ㅜㅜ+)추가로 라우팅도 정상적으로 되어 매칭이 됬다는 로그도 나오는 상태에서 finishConnect(..) failed: Connection refused 에러가 생깁니다..a.w.r.e.AbstractErrorWebExceptionHandler : [1e416af9] 500 Server Error for HTTP GET "/plant-chat-service/chatroom/exist/seller?tradeBoardNo=2&memberNo=1" io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: /172.18.0.5:46183 Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: Error has been observed at the following site(s): *__checkpoint ⇢ org.springframework.boot.actuate.web.trace.reactive.HttpTraceWebFilter [DefaultWebFilterChain] *__checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain] *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] *__checkpoint ⇢ HTTP GET "/plant-chat-service/chatroom/exist/seller?tradeBoardNo=2&memberNo=1" [ExceptionHandlingWebHandler] Original Stack Trace: Caused by: java.net.ConnectException: finishConnect(..) failed: Connection refused at io.netty.channel.unix.Errors.newConnectException0(Errors.java:155) ~[netty-transport-native-unix-common-4.1.85.Final.jar!/:4.1.85.Final] at io.netty.channel.unix.Errors.handleConnectErrno(Errors.java:128) ~[netty-transport-native-unix-common-4.1.85.Final.jar!/:4.1.85.Final] at io.netty.channel.unix.Socket.finishConnect(Socket.java:359) ~[netty-transport-native-unix-common-4.1.85.Final.jar!/:4.1.85.Final] at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.doFinishConnect(AbstractEpollChannel.java:710) ~[netty-transport-classes-epoll-4.1.85.Final.jar!/:4.1.85.Final] at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.finishConnect(AbstractEpollChannel.java:687) ~[netty-transport-classes-epoll-4.1.85.Final.jar!/:4.1.85.Final] at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.epollOutReady(AbstractEpollChannel.java:567) ~[netty-transport-classes-epoll-4.1.85.Final.jar!/:4.1.85.Final] at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:489) ~[netty-transport-classes-epoll-4.1.85.Final.jar!/:4.1.85.Final] at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) ~[netty-transport-classes-epoll-4.1.85.Final.jar!/:4.1.85.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.85.Final.jar!/:4.1.85.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.85.Final.jar!/:4.1.85.Final] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.85.Final.jar!/:4.1.85.Final] at java.base/java.lang.Thread.run(Thread.java:831) ~[na:na]