묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
스키마 호환성 질문있습니다.
안녕하세요, 스키마 레지스트리의 compatibility가 BACKWARD로 설정되어 있는 상태에서 nullable int 타입 컬럼을 source 쪽에서 추가하셨는데, BACKWARD 호환성의 경우는 읽기 쪽부터 변경스키마를 반영해야 하는 것이 아닌가요?nullable이므로 default가 있는 컬럼의 추가라서 BACKWARD를 만족한다는게 왜 소스쪽에서 추가한 내용 바탕으로 설명이 되는 것인지 이해가 되지 않습니다.
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
파티션 복제
안녕하세요.카프카 클러스터 내에 여러 개의 브로커를 실행한 다음 토픽의 파티션을 복제하고 리더 파티션과 팔로워 파티션이 있는 구조를 구성해보고 싶습니다. 위와 같은 구조를 직접 구현해보고 싶은데 혹시 참고할 만한 게 있을까요?감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
AuthenticationFilter 관련 질문
안녕하세요 강사님 좋은 강의 정말 감사드립니다.user service에서 어떤 요청이 들어오든 AuthenticationFilter 를 거치게 되는 것으로 알고 있는데 login 요청을 제외한 다른 요청들은(ex: health-check, welcome 등) AuthenticationFilter 에 존재하는 attemptAuthentication과 loadUserByUsername 메소드는 실행되지 않고 바로 필터가 통과되는 것인가요? 해당 질문은 msa 라기보다 시큐리티 관련 내용인 것 같아 여기에 질문하는 것이 좀 죄송한데 답변 주시면 정말 감사드리겠습니다. 감사합니다!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
KafkaListener DB에서 update 나 delete 이벤트 감지하는방법있을까요?
카프라 활용 1~2를 보면서 궁금한 점이 생겼는데DB서 insert 가 발생했을 때는 @KafkaListener 를 통해 생성된 데이터를 받을 수 있는데 update나 delete 가 발생했을 때는 @KafkaListener로 받을 수 없더라고요?DB에서 update또는 delete문이 발생했을 때의 이벤트도 받으려면 어떻게 해야할까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
카프카를 통해 다른 서비스의 데이터를 수정하는 과정에서 예외가 발생했을 경우처리하는 방법이 궁금합니다.
두개의 Service가 통신할 때 예외처리 시나리오A, B 서비스가 있을 때 A 서비스에서 B 서비스로 데이터를 수정 또는 생성하는 요청을 했는데 이 때 개발자가 의도해서 예외를 발생시켰던 예상치못한 예외가 발생했던 간에 예외가 발생해서 B서비스의 데이터를 수정하지 못하는 경우라면 A서비스는 어떻게 롤백시켜주나요? 1번 시나리오에서 하나의 서비스가 추가되어 3개의 Service가 통신할 때 예외처리 시나리오A서비스에서 B 서비스를 수정 or 생성 하고 C서비스를 수정 or 생성하는 시나리오일 경우 만약에 B서비스에 요청을 했을 때는 성공을하고 C서비스에 요청을 했을 때 실패를 했다면 A서비스로 롤백시켜줘야하고 B서비스도 롤백을 시켜주어야할텐데 이 경우에는 어떻게 롤백처리를 해주나요??구글해보니 그냥 추상적으로 오케스트레이션 Saga패턴? 그런걸로 처리한다는데 막연하게 글로만 설명있고 어떤 소프트웨어를 설치해서 코드를 짜면된다 이런건 없어서 어떻게 처리되어야하는건지 감을 못잡겠네요ㅠㅠ. Axon 서버 뭐 이런것도 본거 같기도 하고요.
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
[수정] mysql_jdbc_oc_sink_orders_datetime_tab_02.json "," 수정 요청
안녕하세요.. kafkaconnect 실습 수행 중 mysql_jdbc_oc_sink_orders_datetime_tab_02.json 문장안에 끝 부분에 "," 가 수정이 아직 안되어 있습니다. 깜빡 하신거 같네요..ㅎㅎ
-
미해결카프카 완벽 가이드 - ksqlDB
inner join , outer join
안녕하세요, join query를 보면left join이라고 작성한 경우 outer join으로 적용되고,그냥 join은 inner join으로 적용되는 것 같은데 ksqldb의 기본 join은 무엇인가요?
-
미해결카프카 완벽 가이드 - ksqlDB
group by 리파티션에 대한 질문
안녕하세요, 만약 group by의 경우 일반 컬럼을 지정해서 리파티션이 되었다면 해당 source topic 레코드를 조회하면 그 때부터 key값에 group by로 지정한 일반 컬럼이 key로 나오게 되는건가요? 아니면 group by 만을 위한 리파티션 수행 내부 토픽이 별도로 생성되는거고 source 토픽은 그냥 유지되는건가요?
-
미해결15일간의 빅데이터 파일럿 프로젝트
각 서버에 설치하는 프로그램은 어떻게 정하나요?
안녕하세요!강의 듣다 궁금한 점이 몇 가지 있어 질문 드립니다.먼저 강의에서는 빅디님께서 각 서버에 설치할 프로그램을 알려주셔서 편하게 설치는 했는데, 어떤 기준으로 설치할 프로그램을 선택하고 각 서버에 설치할 프로그램을 나눠서 아키텍처를 짜셨는지 빅디님의 관점?이 궁금합니다.예를 들어 postgreSQL는 서버 1에만 설치하고, HBase Region 같은 경우는 서버 세 곳 모두 설치 한 이유와, 다른 RDBMS 중에서도 postgreSQL을 선택한 특별한 이유 같은거요..!그리고 서비스 중간에 서버를 늘리려고 할 때 추가해야 하는 서버 수는 어떻게 정하나요? 모니터링 하다가 서버 전체 메모리의 몇 퍼센트를 차지하게 되면 서버를 늘려야 한다 이런 기준이 있을까요? 비용은 제외하고 기술적인 부분에서 기준으로 세울만한 건 어떤게 있는지 궁금합니다. 현업에서는 프로젝트 특성마다 다 다르게 설계를 해야 할 테고 3V 관점으로 봐야 한다는 건 알겠는데 조금 더 구체적인 예시가 있으면 이해하는데 도움이 많이 될 것 같습니다! 감사합니다:]
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
카프카 적용 시 API 를 조회 해야 된다면 어떻게 해야 되는지 궁금합니다.
카프카 인강을 듣고 처음 적용하려고 하고 있는데요.혹시 프로듀서에서 컨슈머로 데이터를 받고, API 통신을 4회 정도 하여 DB에 넣는다고 하면, 적정하지 않은 컨슈머 렉으로 진행되는 부분이 있지 않을까 고민이 되어서요.비동기 방식으로 진행하고 큐에 데이터를 쌓고 진행하려고 하는데, 큐에 데이터가 많이 쌓인다면 메모리 이슈로도 진행될 것 같아서요. 요점은프로듀서에서 컨슈머로 데이터가 들어오면 비동기 방식으로 큐에 쌓은다.큐에 쌓은 데이터를 API 통신으로 데이터를 가공한 후 DB에 넣어준다.이렇게 되면 카프카에서 컨슈머로 렉이 발생되지는 않겠지만 큐에 데이터가 쌓이면서 메모리 문제가 되지 않을까 고민이 있습니다.
-
미해결카프카 완벽 가이드 - ksqlDB
ksqldb timestamp 타입 질문
안녕하세요, ksqldb에는 RDBMS와 달리 datetime 타입이 따로 없는 것 같은데요, timestamp 타입은 타임존이 반영된 타입인건가요?
-
해결됨Backend 멀티쓰레드 이해하고 통찰력 키우기
어떻게 상호배제가 이루어지는지 잘 이해가 안갑니다
private void Write(){// 다른 스레드가 읽기나 쓰는지 검증 ...var request = DateTime.Now.ToString();Interlocked.Increment(ref writeCount);//...쓰기작업}03:40 부분의 내용입니다스레드1 이 var request = DateTime.Now.ToString();이 부분을 실행할때는 아직 writeCount 가 0인 상태인데이때 스레드2가 writeCount와 readCount 0인거 확인하고들어올 위험은 없는건가요? 어떻게 상호배제 되는지 이해가 안갑니다!
-
해결됨Backend 멀티쓰레드 이해하고 통찰력 키우기
임계영역에 2개 이상의 스레드가 올 수 있는지요?
안녕하세요섹션4 코드를 보면 requests 라는 오브젝트 키를 사용해서스레드1과 스레드2가 임계영역을 이용중인데서버 함수를 보면 일이 없으면 lock 안에서 wait 즉 대기 상태로 빠집니다 그리고 클라 함수를 보면 일을 넣어주고 다른 스레드를 깨웁니다여기서 의문인게 임계영역 안에서 대기중인 스레드와 실행중인 스레드가 공존할 수 있나요 https://www.inflearn.com/questions/1046075제가 다른 수업에서 한 질문인데 답변에는 ai 답변이긴 하지만그럴 수 없다고 들어서 질문드립니다
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
이번 강의에 있는 모든 테스트가 작동되지 않습니다.
이번 영상에서 진행하신 모든 테스트가 작동되지 않는데 에러페이지 조차 뜨질 않아서 어떠한 오류인지 확인이 불가능하여 잘못된 점을 찾지 못하고 있습니다.일단 Eureka 페이지에서 user-service를 클릭하면 저는 localhost로 실행이되면서 실행권한이 없다며 접속이 불가능합니다. security filter에 걸렸나 싶었지만 그 어떤 프로젝트 파일에서도 console에 아무런 메세지가 뜨지 않습니다. 강사님께서는 따로 설정하신것이 있으실까요?왜 저는 localhost로 가고 강사님은 실제 ip주소로 실행되는지 이유를 잘 모르겠습니당ㅠㅠ user-ms 실행하면 Fetching이 127.0.0.1:8888로 걸리는 것 까지는 잘 되는데 그 이후에 health_check를 하고자 user-service 페이지를 여는 것부터 안됩니다ㅠㅠ
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
ZIPKIN에서 오류 나시는분들
Spring 3버전대에서 zipkin 설정이 바뀌면서 # zipkin: # base-url: http://13.124.192.188:9411 # enabled: true이 부분을 주석처리하고management: tracing: sampling: probability: 1.0 propagation: type: b3 zipkin: tracing: endpoint: "http://localhost:9411/api/v2/spans"위와 같이 설정하였다면 docker run 할때 문제가 생길 수 있습니다! 해당 내용을 토대로 환경변수를 주고 실행을 시켜야 합니다(저도 깜빡하고 왜 오류나지 고민만 했는데.. 설정을 바꿨었더라구요!)user-service docker rundocker run -d --network ecommerce-network \ --name user-service \ -e "spring.cloud.config.uri=http://config-server:8888" \ -e "spring.rabbitmq.host=rabbitmq" \ -e "management.zipkin.tracing.endpoint=http://zipkin:9411/api/v2/spans" \ -e "eureka.client.serviceUrl.defaultZone=http://discovery-service:8761/eureka/" \ -e "logging.file=/api-logs/users-ws.log" \ kimtaeheon/user-service:1.0order-service docker rundocker run -d --network ecommerce-network \ --name order-service \ -e "spring.cloud.config.uri=http://config-server:8888" \ -e "spring.rabbitmq.host=rabbitmq" \ -e "management.zipkin.tracing.endpoint=http://zipkin:9411/api/v2/spans" \ -e "eureka.client.serviceUrl.defaultZone=http://discovery-service:8761/eureka/" \ -e "spring.datasource.url=jdbc:mariadb://mariadb:3306/mydb" \ -e "logging.file=/api-logs/orders-ws.log" \ kimtaeheon/order-service:1.0
-
미해결실습으로 배우는 선착순 이벤트 시스템
DB Lock 대신 Redis를 이용하는 이유
DB Lock을 이용하면 시간이 오래 걸린다는 성능 저하 문제가 발생하기 때문에 Redis를 써야 한다고 이해하였습니다. 하지만 강의 영상에서는 Redis가 싱글스레드를 이용한다고 하셨는데 그럼 똑같이 DB Lock과 마찬가지로 시간이 오래걸리는 것이 아닌가요..?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
mariadb 접속 관련해서 질문 있습니다.
강의에서 권한을 주는 부분을 보기 전에 작성해주신 아래와 같은 Dockerfile을 사용하였을 경우 실행이 되지 않았습니다.1번FROM mariadb ENV MYSQL_ROOT_PASSWORD rlaxogjs8312 ENV MYSQL_DATABASE mydb COPY ./mysql_data/mysql /var/lib/mysql EXPOSE 3306그래서 저는 복사하는 폴더가 문제인가 해서 COPY부분을 아래와 같이 바꿔서 mydb만을 복사하도록 하였습니다.2번FROM mariadb ENV MYSQL_ROOT_PASSWORD rlaxogjs8312 ENV MYSQL_DATABASE mydb COPY ./mysql_data/mysql/mydb /var/lib/mysql EXPOSE 3306이렇게 하였더니 db가 제대로 복사가 되지는 않았지만 로컬에서 접속이 가능하였습니다.그래서 왜 복사가 안되는거지.. 고민하다가 나머지 강의를 듣고 다시 1번으로 빌드 후 실행한 뒤에는 복사도 잘 되었음을 확인하였습니다.궁금한 점은 다음과 같습니다.왜 2번 Dockerfile의 경우 복사는 제대로 되지 않았는데 로컬호스트에서 DB에 접속이 가능했었던 건지 궁금합니다.만약 COPY가 아니라 VOLUME을 적용해서 한 과거 기억을 되살려보면 권한은 문제가 없었던 것 같은데 권한은 해당 Docker Container에 어떤 이유때문에 적용해야하는 것인지 궁금합니다.
-
해결됨카프카 완벽 가이드 - 커넥트(Connect) 편
auto.evolve 옵션 질문
안녕하세요, 질문이 있습니다. auto.evolve=true로 sink 쪽에 설정하고 source DB의 칼럼 정보를 업데이트 한 후에 레코드를 삽입하지 않으면 토픽에 메시지가 전송되지 않으니 target DB에는 반영되지 않는건가요?
-
미해결카프카 완벽 가이드 - 코어편
UnknownHostException : kafka
똑같이 아이피 고정해서 했는데 kafka < 라는걸 계속 찾네요 ㅠㅠ192.xx 대역으로 하면 못찾습니다.. 그래서일단은 windows hosts 설정에 kafka 도메인으로 고정IP를 넣어줘서 해결은 했는데..도커로 띄워서 그런걸까요?
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
database.connectionTimezone 옵션 질문
안녕하세요 , "database.connectionTimezone": "Asia/Seoul"위와 같은 Source 커넥터의 timezone 옵션을 지정해도 Source 쪽에서 Timezone을 반영해서 보내는 것이 아니라면굳이 적용하지 않아도 괜찮은걸까요?적용을 해야하는 이유가 있는지 궁금합니다.