묻고 답해요
140만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실습으로 배우는 선착순 이벤트 시스템
Kafka 처리량 조절 관련 문의드립니다
며칠전 수강시작했구요. 첫 완강한 인프런 유료강의가 되었네요.앞으로도 이러한 스타일 (주제중심, 적당한 총 길이)의 강의를 더 만들어주시면 감사하겠습니다.업무환경에서 다양한 기술스택을 경험하기 어려운 개발자들도 경험하면 좋을 기술스택도 좀 포함되면 더할나위 없이 좋을것 같구요. 제 경우엔 이 강의 덕분에 아주 오래전 살짝 경험해본 Redis 를 복습하게 되었고, Kafka 에 대해서도 입문하게 되었습니다.질문드립니다.이 강의에서 Kafka 이용의 장점은 처리량 조절이라고 말씀주셨습니다.처리량 조절의 구체적인 방안은구성방식, 요건등 상황에 따라 다양한 안이 있긴 하겠지만혹시 알려주실만한 방안이 있을까요? 개인적으로 찾아본것은 컨슈머 옵션중fetch.max.wait.ms 또는 fetch.max.bytes같은 옵션을 이용하면 괜찮겠다라는 생각이 들긴 했습니다.(쓰면서 생각드는건데.... 만약 두개 동시에 이용시 OR 조건으로 동작해야 될텐데.. 라는 생각이...) 경험하신 사례이든, 참고할만한 링크이든 혹시 알려주실수 있다면 감사하겠습니다.
-
해결됨하루만에 배우는 AWS REDIS
ubuntu 명령어가 어디에 있나요?
다음과 같은 양식으로 남겨주세요.질문을 한 배경 : 강의에서는 아래에 강의자료에 남겨두겠다고 하셨는데 강의에는 별도로 존재 하지 않는 듯 하여 남겨봅니다. 질문내용 :강의에 첨부가 되지 않은 것인지 궁금합니다.
-
미해결15일간의 빅데이터 파일럿 프로젝트
zookeeper 관련 문의드립니다.
실습에서는 server01에 zookeeper 설치하고, server02에서 zookeeper-client 실행시 문제가 없는데 제환경에서는 Server01에 설치하여 server01에서만 클라이언트 실행되고, server02에서는 오류가 나는데요 정상일까요
-
미해결실습으로 배우는 선착순 이벤트 시스템
이벤트 처리를 위한 여러가지 방식
안녕하세요 강사님! 강의 너무 잘 들었습니다. 강의를 다 듣고 몇가지 질문이 있어 이렇게 질문 드립니다.카프카에 대해서 명확히 이해하지 못해서 그러는데 Consumer에서도 결국 토픽에서 가져와서 MySQL DB에 저장을 하는 방식인데, MySQL의 처리속도가 1분에 100개라고 한다면 100분이 걸리는 것은 동일한거 아닌가? 하는 궁금증이 들었습니다! 카프카를 사용하는 이유는 단순히 수많은 요청이 왔을 때 처리량을 조절해 DB가 다운되지 않도록 함인가요?유명 연예인의 티켓팅 서비스 같은 경우처럼 좌석번호마다 다른 티켓으로 보는 경우는 어떤 방식을 사용하는게 맞는것인지 문득 궁금해졌습니다! 이전 동시성 강의처럼 Lock을 거는 방식을 사용하는 방식이 옳을지 아니면 이번 강의에서 Redis의 Set을 사용하여 좌석번호마다 좌석이 찼는지를 구별하는것이 옳을지, 아니면 또 다른 방법을 사용하는지 궁금합니다!마지막에서 쿠폰을 발급하다가 에러가 발생하면 여러가지 방식이 있다고 하셨는데 또 어떤 방식이 있는지, 또한 그 방식이 현재 강사님께서 설명해주신 FailedEvent와 무슨 장단점 차이가 있는지가 궁금합니다!
-
해결됨하루만에 배우는 AWS REDIS
POST API Caching
현재 운영하는 API가 모두 POST로 이루어진 경우에는 Elasticache 도입이 무의미 할까요?POST 로 구성 된 API에서 활용 가능한 caching은 어떤게 있는지 궁금합니다.
-
미해결실습으로 배우는 선착순 이벤트 시스템
MySql Lock을 사용하지 않는 이유
강의에서 설명해주시기로는 쿠폰 개수를 가져오는 것부터 쿠폰 생성까지 lock을 걸어야 한다고 설명 주셨는데 이전 강의인 재고 관리 이슈와는 다르게 row가 아닌 table에 lock을 걸기 때문에 성능 이슈가 발생한다고 보면 될까요?
-
해결됨하루만에 배우는 AWS REDIS
Elasticache에서 바로 Client에게 데이터를 넘겨주는 기능이 있는지 궁금합니다.
질문을 한 배경 : 12강의 Write Through의 시퀀스 다이아그램을 보면서 궁금해졌습니다.질문내용 :3:16 부분의 다이어그램을 보면 elasticache에 있는 데이터를 client에게 직빵으로 전달되는게 가능하듯이 보이는데, API server을 안거치고 캐쉬된 데이터를 client에게 넘기는 것이 가능한지 여쭈어보고 싶습니다! 만약 API Server을 무조건 한번 경유해야한다면 흐름도는 첨부한 그림처럼 되는 것이 맞는지 질문드립니다.↓↓↓
-
해결됨하루만에 배우는 AWS REDIS
강의 내용에서 언급한 아키텍처에서 aws redis는 어디서 위치한 건가요?
다음과 같은 양식으로 남겨주세요.질문을 한 배경 : 강의 내용인 두 그림에서는 AWS Redis 위치가 다른 것 처럼 보임질문내용 : AWS Redis가 전체 시스템 아키텍처 상에서 어느 위치에 있는건가요?아래 두 그림에서는 AWS Redis 위치가 다른 것 처럼 이해를 해서요첫번째 그림은 aws ec2 (server) 이전에 redis가 있는 것이고,두번째 그림은 redis가 aws ec2 이후에 있는 것 처럼 보여서요어떤게 맞는걸까요?
-
미해결실습으로 배우는 선착순 이벤트 시스템
springboot에서 docker의 mysql에 접속이 안 됩니다
docker의 mysql url localhost:3306/coupon_example에 접속이 안 됩니다.제 로컬 mysql에 접속이 되는 듯한데 어떻게 하면 docker의 3306 포트의 url에 연동을 할 수 있는지 모르겠네요.. application.yml 파일입니다.spring: jpa: hibernate: ddl-auto: create show-sql: true properties: hibernate: dialect: org.hibernate.dialect.MySQLDialect datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/test username: root password: 1234
-
해결됨실습으로 배우는 선착순 이벤트 시스템
카프카 Consumer에 메시지가 정상 도착하지 않습니다.
동시에 여러명이 요청하는 케이스를 카프카로 해결하는 케이스에서 테스트를 실행하였더니 카프카 컨슈머에 아무런 메시지가 전달되지 않아 질문드립니다. 토픽명은 강의와 다르게 "coupon"으로 생성하였습니다.
-
미해결실습으로 배우는 선착순 이벤트 시스템
발급가능 쿠폰개수가 1인당 2개이상일 때
안녕하세요! 강의 재미있고 유익하게 잘 듣고 있습니다 :)확장에 대해 생각해보니, Set을 이용해서는 중복방지 이상 개수 확장에 대해서 처리는 불가능 할 거 같아서요. 혹시, 2개 이상 N개 제한에 대한 확장 방법은 어떤게 있을까요??감사합니다!
-
미해결실습으로 배우는 선착순 이벤트 시스템
왜 쿠폰수가 너무 많을까요?
분명 현재 없는 상태이고결과가 자꾸 이상하게 나와서 sout 처리를 잠시 해보았습니다 package com.example.api.service; import com.example.api.domain.Coupon; import com.example.api.repository.CouponCountRepository; import com.example.api.repository.CouponRepository; import org.springframework.stereotype.Service; @Service public class ApplyService { private final CouponRepository couponRepository; private final CouponCountRepository couponCountRepository; public ApplyService(CouponRepository couponRepository, CouponCountRepository couponCountRepository) { this.couponRepository = couponRepository; this.couponCountRepository = couponCountRepository; } public void applyV1(Long userId) { Long count = couponRepository.count(); if(count > 100) { return; } couponRepository.save(new Coupon(userId)); } public void applyV2(Long userId) { Long count = couponCountRepository.increment(); System.out.println(count); if(count > 100) { return; } couponRepository.save(new Coupon(userId)); } } @SpringBootTest class ApplyServiceTest { @Autowired private ApplyService applyService; @Autowired private CouponRepository couponRepository; @Test public void applyOnce() { applyService.applyV1(1L); long count = couponRepository.count(); Assertions.assertEquals(1L, count); } @Test public void 여러명응모V1() throws InterruptedException { int threadCount = 1000; ExecutorService executorService = Executors.newFixedThreadPool(32); CountDownLatch latch = new CountDownLatch(threadCount); for(int i=0; i<threadCount; i++){ long userId = i; executorService.submit(() -> { try { applyService.applyV1(userId); } catch(Exception e) { System.out.println(e); }finally { latch.countDown(); } }); } latch.await(); long count = couponRepository.count(); assertThat(count).isEqualTo(100); } @Test public void 여러명응모V2() throws InterruptedException { int threadCount = 1000; ExecutorService executorService = Executors.newFixedThreadPool(32); CountDownLatch latch = new CountDownLatch(threadCount); for(int i=0; i<threadCount; i++){ long userId = i; executorService.submit(() -> { try { applyService.applyV2(userId); } catch(Exception e) { System.out.println(e); }finally { latch.countDown(); } }); } latch.await(); long count = couponRepository.count(); org.assertj.core.api.Assertions.assertThat(count).isEqualTo(100); } } 그런데 여러명응모V2 test를 실행시에 count를 출력시다음과 같은 수가 나옵니다. 20003200112001220013200152001620017200182002020022 ??? 한번 할때마다 1000씩 쿠폰의 수가 증가중인데요;;;조회했을때는 empty라 나오는데 이렇게 되는 연유를 잘 모르갰습니다. 테스트 코드라서 rollback이 되야할거 같은데 그렇지 않는것도 잘 모르겟네요;; ㅠㅠ
-
미해결15일간의 빅데이터 파일럿 프로젝트
빅디님 좋은 강의 너무 감사드립니다 강의 연장 가능한지 문의드립니다
좋은 강의에 항상 신경써주셔서 감사합니다미처 수강하지 못한 부분이 있어서 수강을 하고자 합니다너무 좋은 강의에 감사드리며 요청드립니다
-
미해결쿠버네티스 101 - 클라우드/서버 개발 첫걸음
minikube dashboard URL 이 나오지 않습니다.
PS C:\Users\LDCC> minikube dashboard🤔 Verifying dashboard health ...🚀 Launching proxy ...🤔 Verifying proxy health ... 위에 상태에서 더 이상 진행이 되지 않네요..어떻게 해야 될까요?
-
미해결실습으로 배우는 선착순 이벤트 시스템
카프카 컨슈머에서 본문과 같이 출력되는데,
/14523769<;B@C8:ED?A=>FKHLOGMNQRISJPTWZ^XUb_`]a\[YVd 소스코드 내에서 완전히 동일하게 따라했는데 왜 이렇게 나타나는지 혹시 아시나요..
-
미해결실습으로 배우는 선착순 이벤트 시스템
apply method가 자꾸 성공이 됩니다(Redis incre 적용전)
안녕하세요 .. 위 부분에서 apply메소드는 raceCondition으로 인하여 정합성이 어긋나야하는데왜 자꾸 assertEquals가 100으로 되며 성공하는걸까요.. apply에 Thead.sleep(10)을 넣어도 ExcutorService thread 개수를 1로 하여고아니면 requestCount 개수를 1000으로 늘려도 무조건 성공이 됩니다..
-
미해결실습으로 배우는 선착순 이벤트 시스템
그럼 gradle에 redis: host: 와 port: 는 어떤 역할인 건가요?
다른 예제들을 보면spring: redis: host: localhost port: 6379이런식으로 셋팅해서 사용하던데왜 여기에는 이런게 필요가 없는 건가요?처음 접해봐서 모르겠씁니다ㅠㅠ..
-
미해결15일간의 빅데이터 파일럿 프로젝트
가상 server01 putty 접속시 오류 현상 (접속 끊김)
안녕하세요! "5. 빅데이터 클러스터 구성 4 - putty로 서버환경 접속"을 수강중에 있습니다.putty server01 login : root는 입력되는데,password가 쳐지지 않고 조금 있으면 접속이 끊긴다는 오류 메세지가 출력됩니다."Remote side unexpectedly closed network connection"어떻게 조치해야 하나요?
-
미해결15일간의 빅데이터 파일럿 프로젝트
우지 설치중 오류 발생
설치중 해당 오류가 발생합니다.어떤게 원인일까요? 전에 꺼놨던 서비가 원인일까 전부 재기동해봤지만 동일하네요...
-
해결됨실습으로 배우는 선착순 이벤트 시스템
docker-compose 파일 재시작 시 group_1: partitions assigned: []
도커 컴포즈 재시작시 consumer 서버 실행시킬때마다 가끔 partition이 할당되지 않는 경우가 생겨 테스트코드가 실패하는 경우가 생기는데요 해당 에러를 consumer서버 재시작을 통해 해결하고 있습니다.할당을 받지 못하면 어떤식으로 해결하는 것이 좋은지 자문을 구하고 싶습니다.