윈도우 사용자입니다. kafka-connect 설치 부분이 너무너무 어려워요 ㅠㅠ 목표는 kafka,zookeeper -> Docker 컨테이너로 관리 Kafka-Connect, JDBC connector 어떻게든 되기만 해보기, MySQL-jdbc connector 사용하기 입니다. 실제 사용할 때는 docker 를 이용하여 zookeeper 와 kafka 를 사용할 계획이라서 docker 를 사용 , zookeeper 와 kafka를 컨테이너로 관리할 계획입니다. 하지만 kafka-connect 부분 부터 JDBC 관련 부분까지 4~5일 동안 고생하고 있습니다. 시도했던 방법 1. -> 강의 내용 대로 해보기 저는 curl 명령어가 안되어서 curl.exe 로 진행해봤습니다. 강의에서 처럼 tar 명령어로 압축해제 할 떄 해제 중 아래와 같은 에러가 항상 발생하였습니다. 그래서 그냥 윈도우 마우스 우클릭으로 해제하면 가 발생하고 이 에러는 찾아도 안 나오더라고요 그냥 무시하고 진행하면 (건너 뛰기 ) 누르면 이런 에러가 발생하고 https://www.inflearn.com/questions/229060/%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94-connector-%EC%8B%A4%ED%96%89%EC%8B%9C-%EC%98%A4%EB%A5%98%EA%B0%80-%EC%83%9D%EA%B2%A8-%EC%A7%88%EB%AC%B8-%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4 이 게시글의 답변을 참고하여도 여전히 변함없는 것을 확인한 이후에 도저히 설치는 못하겠다. 라고 생각해서 컨테이너로 올릴 수 있는 방법을 찾아보았습니다. 시도했던 방법 2-> https://velog.io/@ililil9482/kafka-db-%EC%97%B0%EB%8F%99-feat.-mysql 이 방식이 제가 생각한 워너비라서 그대로 따라 해도 오류가 발생합니다. Volume 설정이 제대로 안되는지 블로그 그대로 관리하고 해도 실제 jar 파일이 들어가지 않더라고요! 이외에도 정말 많은 방법을 시도했는데 번번히 실패하거나 저랑 실행 환경이 달라서 포기하였습니다. 검색도 많이하고 많이 읽어봤습니다. 이제는 진짜 죄송한데 혼자 해낼 자신이 없어요ㅠㅠ 윈도우 환경에서 kafka , zookeeper 컨테이너 관리 My-Sql jdbc connector 사용하기 Kafka-Connect, JDBC connector 어떻게든 되기만 해보기 이게 진짜 너무너무 하고 싶은데 방법이 없을까요?
User Service - 프로젝트 생성 강의 듣고 있는데요. 저는 yml에서 아래처럼 주었는데요. server: prot: 8761 http://localhost:8761/eureka/ 뜨다가 포트는 8080으로 시작한다는 메세지가 조회되는데요. 컴퓨터 내부에서 포트를 8761쓰다가 자동으로 8080으로 바꿨다는 얘기인가요? 2024-07-17T18:27:14.441+09:00 INFO 11100 --- [discover] [ main] c.n.eureka.cluster.PeerEurekaNodes : Adding new peer nodes [http://localhost:8761/eureka/] 2024-07-17T18:27:06.225+09:00 INFO 11100 --- [discover] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '' 2024-07-17T18:52:42.764+09:00 INFO 10484 --- [discover] [ main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8080 2024-07-17T18:52:43.848+09:00 INFO 10484 --- [discover] [ main] c.e.d.DiscoveryApplication : Started DiscoveryApplication in 13.147 seconds (process running for 16.512)
안녕하세요 강사님 이제 필요한 jdbc jar들을 넣고 connect를 재기동시켰을 때 csv_spooldir 관련 에러가 나오는데 아마 input directory에 csv파일이 없다고 하는것같은데 이미 처리되어 finish로 가있는데 이것을 그냥 무시하면 될까요? org.apache.kafka.connect.errors.ConnectException: Failed to start connector: csv_spooldir_source Caused by: java.lang.IllegalStateException: Could not find any input file(s) to infer schema from.
강사님, 안녕하세요? 강의 잘 듣고 있습니다. 강의 내용에 따르면 토픽 생성 시 라운드 로빈 방식으로 각각의 브로커에 리더 파티션들이 생성된다고 배웠습니다. 카프카 애플리케이션이 라운드 로빈 방식으로 파티션을 배치하도록 설계되어 있다면 특정 브로커에 파티션이 쏠리는 현상이 왜 발생 하는 것인가요? 더불어 kafka-reassign-partitions.sh 명령어를 사용한다는 것은 브로커 파티션 쏠림 현상을 인지하였다는 것인데, 클러스터를 운영하는 입장에서 브로커에 존재하는 각각의 파티션들의 리더/팔로우 파티션 여부나 파티션 쏠림 현상이 발생하고 있는지의 여부 를 어떻게 확인할 수 있는지 여쭙고 싶습니다. 감사합니다.
안녕하세요. 현재 강의 너무 재밌게 듣고있습니다. 아무래도 제가 카프카에 대해 잘 모르다보니 감이 없어 이해도가 낮습니다. 조금 부족한 질문이라도 이해 부탁드립니다. ㅠㅠ 현재 강의에서 프로젝트에서 생성한 구조는 kafka source connector가 없이 kafka sink connector만 만들고 직접 kafka topic에 저장하고 이를 동기화시키는 방식이라고 이해했습니다. 혹시 제가 이해한 구조가 맞을까요? 혹시 현업에서도 source connector가 굳이 필요 없다면 위와 같은 구조로 사용해도 상관 없을까요? 현재 MSA 관련 프로젝트를 준비하고있으며. DB를 서비스별로 어떻게 분리해야할지 굉장히 고민하고 있습니다. 만약 배포되는 모든 서비스가 각자 다른 db를 가지고 있는 방식으로 구성해야한다면, 동일한 도메인 내에 있는 서비스는 db를 동기화를 시켜주는 작업이 필요할 것 같은데요. 제가 테스트해본 결과 source connector쪽 db에 데이터를 삽입했을 때는 sink connector쪽 db에도 데이터가 똑같이 삽입되지만, source connector쪽 db 데이터를 삭제하거나 수정하는 경우는 반영이 안되는 것을 확인했습니다. 혹시 이런 상황에서 참고할만한 키워드나 문서가 있을까요? ㅠㅠ
안녕하세요 강사님 프론트 서버를 실행시켜 로컬에서 채팅을 입력하는 것은 아주 잘 동작하고 있습니다. 다만 강의 제목 처럼 대용량에 대한 테스트를 하고 싶어서 부하 테스트를 구상중입니다. 부하 테스트 구상 중에 포스트맨으로 소켓 연결을 할 때 궁금한 점이 생겨 질문드립니다. 우선 포스트맨으로 채팅 서버의 url (ws:// localhost:1010/room-chat ) 을 찔러보려 했습니다. 웹소켓 연결은 잘 맺어졌는데, 테스트 메시지(test chatting send) 를 Send 하면 아래처럼 response 탭에 3개의 응답이 동시에 나옵니다. 채팅서버로 텍스트를 보낸것 까진 잘 된 것 같은데 응답 받을 때는 항상 disconnected 문구가 나오네요,, 제 추론으로는 포스트맨에서 테스트할 때 Room 에 대한 정보를 넣어주지 않아서 그런것 같습니다. 프론트 코드 소스에서는 입장시 웹소켓이 연결되면서 방의 정보가 연동(?) 되는 것 같은데,,, 그럼 포스트맨에서는 채팅방 정보를 어떻게 넣어줘야 테스트 할 수 있는지 알 수 있을까요?
안녕하세요 선생님 질문이 있습니다. 해당 강의자료에서는 producer가 leader partition에게 보낸 메시지를 leader가 follower에게 복제하는 그림(화살표)이던데 이 과정은 전강의( ISR(In-Sync_Replicas)의 이해 )에서 follower들이 fetch해서 가져가는 것과는 별개인것인가요? 화살표(data전송방향)가 달라서 질문드립니다.
안녕하세요 강사님 복습을 하다가 궁금한 점이 3가지 정도 생겨 질문드립니다. 1) 채팅 유저가 최초 접속을 하면 컨트롤 서버에 접속 가용 가능한 채팅 서버의 주소를 응답받음 해당 채팅 서버와 소켓 연결 이런 흐름으로 이해했는데 맞을까요? 프론트 단 코드에서는 채팅 서버와 직접 소켓 연결하는 코드만 있어서 질문드립니다. 2) 사용자가 채팅 시, 채팅 서버가 도중에 다운되면 사용자는 컨트롤 서버에 재연결 시도하여 가용가능한 채팅 서버를 재할당 받는 것인가요? 3) 컨트롤 서버에 api 주소 중 /server-list 라는 api 가 있던데 해당 API 는 누가 호출하는 것인가요? 가용가능한 서버 리스트를 내려주는 API 로 이해했는데, 그럼 채팅 사용자가 해당 API 를 직접 찌르는 걸까요?
연결된 서비스 중 307 응답을 주는 서비스가 있습니다. 이 때, 이 응답에 포함된 로케이션으로 자동으로 재요청하도록 설정할 수가 있을까요? Zuul 을 사용할 경우, 동일 요청에 대해 정상적으로 리다이렉트되어 최종적으로 200 이 응답되는데, SCG의 Flux 를 사용하니, 리다이렉트가 되지 않습니다. 찾아보니, webClient 에 구성할 수 있다고 하는데요, SCG에서 구성된 빈을 사용하지 않는 것 같기도 합니다. WebClient.builder() .clientConnector(new ReactorClientHttpConnector( HttpClient.create().followRedirect(true) )) 게이트웨이가 307 Redirect 를 자동으로 재요청하도록 설정할 수 있을까요? 감사합니다.
안녕하세요 consumer 로직이 변경 시 consumer를 재배포할 경우 리밸런싱이 발생하는 이슈가 존재합니다. 실제 운영에서는 로직을 별도로 분리해서 로직만 재배포한다는 것을 세미나에서 듣게 되었는데 Dev원영님도 이렇게 운영하고 계신가요? 또한 이때 로직을 분리한 서버를 rest-api vs gRPC 어느 것으로 실제 운영하고 계신지 궁금합니다.
안녕하세요. 수업 잘 듣고 있습니다. 굉장히 흥미롭게 수업을 듣던 도중 궁금한 것이 이것저것 생겨서 질문드립니다. 수업에서 좀 벗어난 이야기일 수도 있는데 찾아보니 잘 찾을 수가 없어서 질문 드립니다.(혹시 답변하기 힘드시면 안하셔도 괜찮습니다.) 구조를 보니 API gateway는 서비스 ID만 알고있고, 해당 서비스의 실제 ip 주소와 포트 번호를 알기위해서는 Eureka에게 request를 요청해야하는 것 같습니다. 그렇다면 API gateway는 사용자 요청이 들어 올 때마다 매번 Eureka에게 물어보는 방식인가요? 이렇게 되면 통신 오버헤드가 상당이 클 것 같다는 생각이 들어서 질문드립니다. Eureka와 서비스들 간에는 지속적으로 heartbeat message나 서비스 정보 등을 교환하기위해 통신하는 것 같습니다. 혹시 이런 통신은 전부 HTTP 프로토콜을 통해서 이루어지는 것인가요? 혹은 다른 프로토콜을 사용하여 정보를 주고 받나요?
아직 완강은 하지 않았지만 궁금한 점이 생겨 질문드립니다 강의에서 단일모듈 다중 프로젝트로 진행을 하시는데, 이렇게 되면 CI/CD 관리는 어떻게 하는 지 궁금합니다 서비스 마다 Github Repository를 하나씩 만드는 건가요? 단일 프로젝트 멀티모듈은 권장하지 않으시나요? 현업에서는 주로 어떤 방법을 사용하는지 궁금합니다
안녕하세요 데브원영님! 현재 카프카를 적용한 프로젝트 개발 중에 있습니다. 카프카 스트림즈(DSL)를 자바 애플리케이션안에 자바 모듈로 구현을 한 상태입니다. 현재 카프카 브로커로 들어오는 데이터는 초당 50건~200건 가량이며 한 건 당 2000byte 정도 데이터를 받고 있습니다. 현재는 모든 데이터를 한 토픽에서 받고, 그 모든 데이터가 담긴 토픽을 목적별로(차, 청소 등..) 만든 토픽에 필터링 하고 있습니다. 필터링하는 로직이 복잡하지는 않습니다. (코드상 10줄 미만) 그런데 이런 상황에서 운영 중에 만약에 , 카프카 스트림즈가 부하가 많아질 경우나 네트워크 등 다른 이슈로 스트림즈 애플리케이션이 죽지는 않을까 하는 걱정이 있습니다. 질문입니다. 혹시 이렇게 자바 코드로 작성한 스트림즈 애플리케이션이 죽는 상황이 있나요? (부하 또는 기타 문제로...) 있을 경우 대비를 한다면 스트림즈 애플리케이션을 자바 코드가 아닌 따로 프로젝트를 만들어(WAS를 따로 생성) 운영을 해야할까요? 스트림즈 애플리케이션이 죽는 경우는 어느정도의 부하(초당 몇 바이트정도인지.. 보통..)가 있어야 죽는 경우가 발생하나요? (CPU성능, 메모리 등 PC스펙이 충분하다고 할 경우에요..) 만약 WAS를 따로 만들어서 운영해야 한다면, WAS를 보통 여러 개 정도 두나요? 아니면 WAS를 1개만 만들고 WAS 내 스트림즈 스레드를 여러 개로 만들어서 운영하나요? 아니면 여러개 WAS에 여러개 스레드를 띄우나요? WAS를 여러개 두는 경우, 1개 WAS가 죽으면 자동으로 fail over 가 되나요? 안된다면 어떻게 fail over가 되도록 구현해야 하나요? 미리 감사합니다.