쿠폰이 발급되고 바로 사용하려는 유저가 있다면 어떻게해야하나요? 실무에서 보통의 경우 어떻게 처리하는지 궁금한데요. 예를 들어서, 쿠폰이 생성되려면 시간이 다소 소요될 수 있다는 안내 문구와 같은 정책으로 안고가는지.. 아니면 다른 좋은 방법이 있는지 궁금합니다. 강의 내용 흐름 레디스를 통해서 싱글 스레드로 쿠폰 개수 확인 제한 범위 안이라면 클라이언트에게 쿠폰 발급 성공 응답 비동기로 처리량을 조절하면서 쿠폰 데이터를 저장 실제 유저가 아직 쿠폰 발급이 안되었는데, 쿠폰 사용 시도 이 경우 어떻게 대응하는지 궁금합니다.
안녕하세요! 먼저 강의 잘 들었습니다. 좋은 강의 만들어주셔서 감사합니다. 해당 강의에서 쿠폰 수량 조절을 Redis로 진행을 하는데 이에 대해 근본적으로 궁금한 점과 전체적으로 제가 이해한 것이 맞는지 여쭙고 싶습니다. 쿠폰 재고의 동시성을 싱글스레드 기반인 Redis를 통해 100개까지 생성해준다. -> 여기서 X-lock을 사용하는 비관적락을 사용해도 문제가 없지 않나요? Redis를 사용했을 때 장점은 직접적인 DB락을 걸지 않아 데드락이나 다른 위험을 방지할 수 있다는 것인가요?(강의에는 해당되지 않지만) 동시성 제어를 위해 비관적락, 낙관적락(x), Redis를 통한 수량제어 이렇게 해볼 수 있을 거 같은데 언제 Redis를 선택할지 감이 잘 오지 않습니다. 강의에서 DB에 10,000개가 들어와서 서버 사용률이 높아졌는데, 결국 카프카로 보내 컨슈머들이 처리를 하게 된다면 똑같이 DB에는 10,000개의 부하가 오지 않나요? 단지 흐름 제어용이라고 보면 될까요? (카프카가 익숙하지 않습니다.) 쿠폰의 재고가 아닌 만약 사용자가 상품을 구매할 때에도 해당 강의에 내용을 적용해볼 수 있을 것 같습니다. 상품 구매할 때 중복 구매를 방지한다고 하면 Redis에 Set 키 값으로 [product:1(pid):member:1] 이런식으로 하면 마찬가지로 실수로 같은 사용자의 중복 결제도 막아볼 수 있을 것 같습니다! (의도라면 시간을 같이 넣어 조절해도 될 거 같아요) 잘 이해한게 맞을까요?
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'scopedTarget.eurekaClient' defined in class path resource [org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration$RefreshableEurekaClientConfiguration.class]: Unsatisfied dependency expressed through method 'eurekaClient' parameter 3: No qualifying bean of type ' com.netflix .discovery.shared.transport.jersey.TransportClientFactories<?>' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} 해당 오류가 나는데 혹시 이유가 어떤건지 알 수 있을까요?
안녕하세요! 섹션3 Producer 관련 강의를 보다가 궁금한 점이 생겼습니다. redis를 활용해 count 증가 후 선착순에 들어 kafka 로 이벤트를 발행하는 도중 네트워크 오류 등의 문제가 발생한다면 count 값만 늘어나고 쿠폰 생성이 안될 것 같습니다. 이 경우, 실무에서는 어떤 식으로 처리하시나요?? (redis쿼리 -> kafka 이벤트 발행)의 원자성을 보장해줘야 될 것 같다는 생각이 들었습니다. kafka의 이벤트 발행 부분을 try...catch로 감싸서 redis의 count를 감소시키는 로직을 작성하는게 가장 간단해보입니다. 그런데, 해당 롤백 로직에서 에러가 발생할수도 있기 때문에 카운트 증가 -> 이벤트 발행의 원자성을 보장하기 어려울 것 같습니다. 추가) kafka 이벤트 발행 실패 시 userId, eventId, count 값을 로그로 남겨 추후 kafka 이벤트를 재발행하는 방법도 있을 것 같습니다. 이때, 재실행은 로그에서 데이터를 추출 개발자가 수동 혹은 배치 등의 프로그램을 작성해 정합성을 맞추는걸까요?? 실무에서 어떤 식으로 실패한 요청을 다시 성공시키는지 궁금합니다
안녕하세요, 강의 잘 들었습니다. 기존에 로그인 후 발급한 토큰을 apigateway에서 검사했었는데 k8s 버전에서는 별도로 토큰을 검사하지 않는 것 같습니다. 로그인하는 의미가 없어질 것 같은데 이부분을 추가하려면 각 서비스에 따로 추가를 하는게 좋을까요? 아니면 중앙으로 처리하는 방법이 따로 있을까요?
카프카 관련하여 문의드립니다. 현재 프로젝트 디폴트 설정이 자동 커밋인데, 리스너를 내리거나 서버를 내릴때에 예외적으로 커밋을 치고 싶습니다. 정리하면 평소에는 자동커밋모드로 계속 돌아가는데, 리스너를 내리거나 서버를 내리는경우에는 커밋을 하고 싶습니다. 이런 경우 수동커밋이 가능한지 문의드립니다.
안녕하세요. Zeppelin 노트북을 통해, 쿼리를 날리는 실습을 하고 있습니다. SHOW TABLES 등과 같은 쿼리는 잘 작동하고 있습니다. 하지만, 몇몇 테이블에 대해 아래와 같이 접근을 시도하면 그 이후 모든 쿼리가 작동하지 않습니다. 예를들어 3개의 테이블이 있다고 하면, managed_smartcar_drive_info1 managed_smartcar_drive_info2 managed_smartcar_drive_info3 managed_smartcar_drive_info1 에 대해 SELECT * FROM managed_smartcar_drive_info1 LIMIT 10 은 몇 번을 시도하여 잘 되지만, SELECT * FROM managed_smartcar_drive_info2 LIMIT 10 혹은 SELECT * FROM managed_smartcar_drive_info3 LIMIT 10 에 대해 시도하면 fb303 에러가 뜨고 있습니다. 그 후 SELECT * FROM managed_smartcar_drive_info1 LIMIT 10 를 다시 실행하면, 동일하게 에러가 발생합니다 . putty를 통한 HIVE, HUE를 통한 임팔라와 하이브에서 모두 정상적으로 작동하지만, Zeppelin에서만 문제가 발생하고 있습니다. restart를 하여도, 기존에 정상 작동하던 테이블 및 쿼리만 정상작동하며, 오류를 야기하는 테이블 및 쿼리는 다시 시도해도 동일한 결과가 나오고 있습니다. thrift, fb303모두 종속성을 설정해도 잘 안되는 것 같습니다 ㅠ ㅠ
먼저 좋은 강의 감사합니다. 현재 윈도우 환경에서 강의를 듣고 있습니다. 집킨 파트를 수강하는데 zipkin.jar 를 받을수 있는 방법이 없습니다. 윈도우에서는 강의에서 나온 curl 명령에서 bash 명령어가 먹지도 않고 해서 제대로 다운로드도 안됩니다. 해서 zipkin.jar 파일을 따로 올려주실수는 없으실지 문의 드립니다.
안녕하세요 카프카는 aws EC2에 직접 구축되어있는 상태에서 컨슈머는 온프레미스 서버에 존재한다면 컨슈머에서 카프카에 연결할 때 카프카가 각 컨슈머들의 ip만 허용하는 방식으로 열어주어야하나요? 이렇게 하면 카프카에 연결되는 컨슈머들이 수백개라면 ip들을 작성하는게 쉽지는 않을 거 같은데 실무에서는 어떻게 하고 계시는지 궁금합니다.
스트림 혹은 테이블 생성 하는 시점부터 토픽의 데이터를 스트림, 테이블에 인입 시키는건가요? 혹은 생성시 토픽에 적재된 모든 데이터에 대해 인입 시키는건가요? 스트림, 테이블 생성 시점에 오프셋이나, earliest, latest 와 같은 옵션으로 데이터를 인입 시키도록 할 수 있을까요?
푸시 쿼리의 경우 종료 시그널을 주지않으면 쿼리가 종료 되지 않는다고 하셨는데요. 동일한 쿼리를 실행중인 인스턴스가 여러대 일 경우 api 를 사용하여 쿼리가 종료 되도록 하려면 각 인스턴스들에 각각 호출 해야 하는건가요? 그리고 스트림을 드롭하는 형태로도 종료가 가능 할까요?
카프카 설치 시 오류가 납니다. 어떻게 해결 하나요? 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은(는) 예상되지 않았습니다.
코드는 3번정도 체크해서 강의 내용과 같은 방식으로 작성하였습니다. db는 mysql>maria로만 바꿨습니다. 앞에서 질문들에서 나왔던 것처럼 숫자가 출력되지않는 현상이 발생합니다. https://github.com/zhzkal2/coupon_study 혹시몰라서 깃 코드도 올려둡니다. 환경은 윈도우 환경이라서 docker-compose 로 세팅했어요. 도커데스크탑에서 consumer생성을 했고 인텔리제이 kafka 플러그인으로 컨슈머랑 토픽 둘다 확인했습니다.
안녕하세요 강사님 kafka에서 JDBC SInk Connector의 Consumer가 Offset 450개로 가져가는 순간 commit 이 되어서 __consumer_offsets가 update되는것이 아니라 executeBatch()가 까지 다 성공해야 commit이 날라가서 __consumer_offsets가 update되는 구조인가요?
#질문 배경# user-service , catalog-service , order-service 까지 실습을 하고 확인해보니 아래 사진들과 같이 각 서비스마다 다른 DB를 사용하는 것을 알게되었습니다. 마이크로 서비스들을 공통적으로 yml 파일에다 DB명을 msauser 라고 명명해 헷갈렸지만 말이죠. #질문#: 강의내용을 들어보고 생각해봤는데 실제로 마이크로 서비스를 배포할때 mysql같은 RDB를 각 마이크로 서비스들(3개라고 가정)이 사용한다고 가정하면 각 마이크로 서비스들이 사용할 DB 3개를 만들어줘야 한다고 이해하고 있습니다. 맞나요? (+ 다른 DB지만 메시징큐로 각 서비스들끼리 통신) 그런데 시스템에 DB의 양이 적다면 DB 1개만 만들고 각 마이크로 서비스들이 하나의 DB를 접근하게 구현하기도 하나요?
위 오류가 발생하고 스택오버플로우 중국 플랫폼 사이트 갓대희님 블로그 등 모든 사이트를 찾아보았으며, 하이퍼 바이저 실행여부, svm 실행 여부, wsl 재설치, 도커 데스크탑 버전이슈도 있었으므로 버전 변경 등 할수있는 모든 방법을 전부 실행하였으나 해결되지 않았습니다. 도커 데스크탑을 사용하지 않고 진행하는 방법이 있는지 궁금합니다. 현재 제 윈도우 11 21h2 환경에서는 도커데스크탑의 설치가 불가하다고 판단이 되는데 수업에 대해서 진행이 가능한지 궁금합니다.