안녕하세요, 만약 group by의 경우 일반 컬럼을 지정해서 리파티션이 되었다면 해당 source topic 레코드를 조회하면 그 때부터 key값에 group by로 지정한 일반 컬럼이 key로 나오게 되는건가요? 아니면 group by 만을 위한 리파티션 수행 내부 토픽이 별도로 생성되는거고 source 토픽은 그냥 유지되는건가요?
안녕하세요! 강의 듣다 궁금한 점이 몇 가지 있어 질문 드립니다. 먼저 강의에서는 빅디님께서 각 서버에 설치할 프로그램을 알려주셔서 편하게 설치는 했는데, 어떤 기준으로 설치할 프로그램을 선택하고 각 서버에 설치할 프로그램을 나눠서 아키텍처를 짜셨는지 빅디님의 관점?이 궁금합니다. 예를 들어 postgreSQL는 서버 1에만 설치하고, HBase Region 같은 경우는 서버 세 곳 모두 설치 한 이유와, 다른 RDBMS 중에서도 postgreSQL을 선택한 특별한 이유 같은거요..! 그리고 서비스 중간에 서버를 늘리려고 할 때 추가해야 하는 서버 수는 어떻게 정하나요? 모니터링 하다가 서버 전체 메모리의 몇 퍼센트를 차지하게 되면 서버를 늘려야 한다 이런 기준이 있을까요? 비용은 제외하고 기술적인 부분에서 기준으로 세울만한 건 어떤게 있는지 궁금합니다. 현업에서는 프로젝트 특성마다 다 다르게 설계를 해야 할 테고 3V 관점으로 봐야 한다는 건 알겠는데 조금 더 구체적인 예시가 있으면 이해하는데 도움이 많이 될 것 같습니다! 감사합니다:]
카프카 인강을 듣고 처음 적용하려고 하고 있는데요. 혹시 프로듀서에서 컨슈머로 데이터를 받고, API 통신을 4회 정도 하여 DB에 넣는다고 하면 , 적정하지 않은 컨슈머 렉으로 진행되는 부분이 있지 않을까 고민이 되어서요. 비동기 방식으로 진행하고 큐에 데이터를 쌓고 진행하려고 하는데, 큐에 데이터가 많이 쌓인다면 메모리 이슈로도 진행될 것 같아서요. 요점은 프로듀서에서 컨슈머로 데이터가 들어오면 비동기 방식으로 큐에 쌓은다. 큐에 쌓은 데이터를 API 통신으로 데이터를 가공한 후 DB에 넣어준다. 이렇게 되면 카프카에서 컨슈머로 렉이 발생되지는 않겠지만 큐에 데이터가 쌓이면서 메모리 문제가 되지 않을까 고민이 있습니다.
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인거 확인하고 들어올 위험은 없는건가요? 어떻게 상호배제 되는지 이해가 안갑니다!
안녕하세요 섹션4 코드를 보면 requests 라는 오브젝트 키를 사용해서 스레드1과 스레드2가 임계영역을 이용중인데 서버 함수를 보면 일이 없으면 lock 안에서 wait 즉 대기 상태로 빠집니다 그리고 클라 함수를 보면 일을 넣어주고 다른 스레드를 깨웁니다 여기서 의문인게 임계영역 안에서 대기중인 스레드와 실행중인 스레드가 공존할 수 있나요 https://www.inflearn.com/questions/1046075 제가 다른 수업에서 한 질문인데 답변에는 ai 답변이긴 하지만 그럴 수 없다고 들어서 질문드립니다
이번 영상에서 진행하신 모든 테스트가 작동되지 않는데 에러페이지 조차 뜨질 않아서 어떠한 오류인지 확인이 불가능하여 잘못된 점을 찾지 못하고 있습니다. 일단 Eureka 페이지에서 user-service를 클릭하면 저는 localhost 로 실행이되면서 실행권한이 없다며 접속이 불가능합니다. security filter에 걸렸나 싶었지만 그 어떤 프로젝트 파일에서도 console에 아무런 메세지가 뜨지 않습니다. 강사님께서는 따로 설정하신것이 있으실까요? 왜 저는 localhost 로 가고 강사님은 실제 ip주소로 실행되는지 이유를 잘 모르겠습니당ㅠㅠ user-ms 실행하면 Fetching이 127.0.0.1:8888로 걸리는 것 까지는 잘 되는데 그 이후에 health_check를 하고자 user-service 페이지를 여는 것부터 안됩니다ㅠㅠ
강의에서 권한을 주는 부분을 보기 전에 작성해주신 아래와 같은 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에 어떤 이유때문에 적용해야하는 것인지 궁금합니다.
안녕하세요 , "database.connectionTimezone": "Asia/Seoul" 위와 같은 Source 커넥터의 timezone 옵션을 지정해도 Source 쪽에서 Timezone을 반영해서 보내는 것이 아니라면 굳이 적용하지 않아도 괜찮은걸까요? 적용을 해야하는 이유가 있는지 궁금합니다.
안녕하세요, Debezium에서 snapshot을 수행할 때 읽어오는 DB 스키마는 커넥터가 어디에 저장해두는건가요? 레코드의 경우 config에 설정된 topic에 저장되고, 또 offset의 경우 connect-offsets이라는 내부 토픽에 저장되는 것은 알겠는데, 테이블 DDL 정보는 따로 저장하는 곳이 있는 것인지 궁금합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 쁘띠, mt쁘띠도 삭제해봐도 자꾸 리커넥 메세지가 나옵니다.. 일단 쁘띠는 정상동작합니다 ㅜㅜ
userService의 로그입니다. orderService의 로그입니다. git에 올리신 springboot 3번대로 설정한 결과입니다. 강의에서는, get /user-service/users/{user-id} 호출시 feign client로 orderService로 호출을 하고 userServicedptjdml traceId 와 orderService에서의 traceId 가 동일하다고 설명하셨는데, 직접 해본결과 api호출은 문제없이 되나 두개의 traceId가 다르게 나오는 현상입니다. zipkin에서 확인해봐도 userService -> orderService로 호출되는 형태로 나오지 않고, 각각 따로 나오는 형태입니다. 뭐가문제일까요. userService와 orderService의 application.yml입니다.
Dockerfile 내용 FROM mariadb ENV MYSQL_ROOT_PASSWORD test1357 ENV MYSQL_DATABASE mydb COPY ./mysql_data/mysql /var/lib/mysql EXPOSE 3306 ENTRYPOINT ["mariadb", "--user=root"] 실습환경 windows 10 mysql_data\mysql 내용 에러 메시지 ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)
docker compose 명령어를 사용하면 강의와 다르게 에러가 뜨고 있습니다. docker compose 에서 생성한 네트워크가 아니라는 말도 있는데 혼자서는 해결이 안되고 있네요. https://github.com/wurstmeister/kafka-docker 위 git을 클론하여 실습했습니다. 실습환경 windows 10 사용한 명령어 docker-compose -f docker-compose-single-broker.yml up -d 에러메시지 time="2024-02-23T17:46:21+09:00" level=warning msg="a network with name ecommerce-network exists but was not created by compose.\nSet `external: true` to use an existing network" network ecommerce-network was found but has incorrect label com.docker.compose.network set to "" docker-compose-single-broker.yml 내용 version: '2' services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" networks: my-network: ipv4_address: 172.18.0.100 kafka: # build: . image: wurstmeister/kafka ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: 172.18.0.101 KAFKA_CREATE_TOPICS: "test:1:1" KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 volumes: - /var/run/docker.sock:/var/run/docker.sock depends_on: - zookeeper networks: my-network: ipv4_address: 172.18.0.101 networks: my-network: name: ecommerce-network