목록전체 글 (246)
without haste but without rest
카프카의 복제 메커니즘은 단일 클러스터에서만 동작하도록 설계되었다. 따라서 다중 클러스터에서의 복제를 지원하기 위해 미러메이커가 카프카에 포함되어있다. 근본적으로 미러메이커도 카프카의 프로듀서, 컨슈머이며 각 미러메이커는 큐로 상호 연결된다. 임시저장
- 카프카 96초당 1TB 데이터 전송하기 https://www.confluent.io/blog/scaling-kafka-to-10-gb-per-second-in-confluent-cloud/ Scaling Kafka to 10+ GB/Second in Confluent Cloud Behind the magic: how Confluent Cloud scales Kafka to over 10 gigabytes per second in seven clicks, with zero downtime. www.confluent.io - 카프카 벤치마크 https://www.confluent.io/blog/kafka-fastest-messaging-system/#:~:text=Throughput%3A%20Kafka%..
0. set up # os: ubuntu:20.04 apt update apt install -y cron apt install -y systemctl systemctl start cron 2. sample file 파일명 test.sh #!bin/sh echo "Hello, World" > /tmp/crontab_test.txt 3. job 추가 아래 잡을 추가하면 1분 마다 /tmp/crontab_test.txt 파일에 Hello, World를 작성한다. crontab -e * * * * * sh /test.sh
0. 요약 confluent 사에서 제공하는 도커 컴포즈 파일을 이용해서 카프카 브로커를 빠르게 구축한다. 도커 및 도커 컴포즈를 사용할 줄 안다고 가정한다. 장점은 곧바로 카프카를 사용할 수 있다는 점이며 도커 컴포즈 파일 기반이기 때문에 포트 번호와 옵션 등을 쉽게 수정할 수 있다. 카프카 클러스터, ksqlDB, 컨트롤 센터, 쥬키퍼 등을 제공한다. 주의할 점은 개발 용도의 파일이라 프로덕션 목적을 금지하고 있다. (커뮤니티 버전이 따로 있긴한데, 해당 파일은 컨트롤 센터가 없다.) 1. cp-all-in-one 파일 다운로드 confluentinc/cp-all-in-one docker-compose.yml files for cp-all-in-one , cp-all-in-one-community, ..
제일 자주쓰는 포맷 sudo docker run -itd \ --name mongo-express \ -p 8081:8081 \ -e ME_CONFIG_MONGODB_SERVER="host" \ -e ME_CONFIG_MONGODB_PORT=27017 \ -e ME_CONFIG_MONGODB_ADMINUSERNAME="root" \ -e ME_CONFIG_MONGODB_ADMINPASSWORD="password" \ mongo-express 몽고디비 옵션은 -e ME_CONFIG_MONGODB_SERVER 와 같이 파라미터 값만 붙여주면된다. 더 자세한 정보는 docker hub mongo-express 이미지 참조
0. 요약 몽고 디비를 컨테이너로 올리는 예시를 통해 Dockerfile 작성 요령을 다룬다. 아래 도커 파일을 예시로 각 명령어에 관해 설명하며 최종적으로 이미지 빌드와 볼륨 마운팅까지 다룬다. 진행 환경은 윈도우10이며 wsl2 에서 진행했다. 리눅스, 맥 모두 문제없을 것이라 생각한다. FROM mongo:4.4.5 ENV TZ=Asia/Seoul WORKDIR / RUN mkdir -p /mongoDB/data/ RUN chmod 777 /mongoDB/data/ RUN apt update RUN apt-get install -y net-tools COPY ./mongod.conf /etc/ EXPOSE 27017 CMD ["mongod", "--bind_ip_all", "--dbpath", "/..
업무 중 레플리카 셋의 primary 노드의 dns가 변경되어야 하는 이슈가 있었다. 아무래도 dns기준으로 인프라를 구축할 때가 많아서 ip가 아닌 dns가 변경되면 분산 디비 운영하는 입장에서 난감하다.. 몽고 디비는 어떻게 처리를 해야할까 고민을 하다가 다음과 같이 처리했다. dns가 변경된 몽고 디비를 A라고 하겠다. 1. A를 primary에서 secondary로 변경 / rs.stepDown() 2. 변경된 primary에서 A를 제거 rs.remove("A:27017") 3. A 재시작 4. 변경된 primary에서 A를 추가 rs.add("A:27017") 5. 변경되어있는 primeary에서 rs.stepDown() 6. A가 Primary 가 될 때까지 반복.. 세컨더리 노드를 지정해서..
이터레이터 next로 한 줄을 넘어간다. import csv with open("mycsv.csv", "r") as csvfile: csvreader = csv.reader(csvfile) # This line skips the first row of the CSV file. next(csvreader) for row in csvreader: # do stuff with rows... 참조 Skip the header of a file with Python's CSV reader next(csvreader) does the trick. evanhahn.com