docker(5)
-
[🧙카프카] Kafka Schema Registry 사용 설명서
카프카는 메시지를 보내는 Producer와 Consuemr로 이루어져 있다. 카프카는 Producer가 메시지를 보낸 후 Consumer가 소비하려고 할 때 누가 보낸 메시지인지 확인할 수 있는 방법이 없다. 그래서 Producer가 메시지를 기존에 보내던 것과 다른 스키마 형식으로 보낸다면 Consumer는 바뀐 메시지를 받았을 때 문제가 크게 발생할 수도 있다. 이런 일을 방지하기 위해서 스키마 레지스트리를 사용할 수 있다. Schema Registry란? 스키마 레지스트리는 Producer와 Consumer가 주고 받으려는 메시지의 스키마를 서로 알게 해주고 호환을 강제한다. 예를 들면 Producer가 처음에 정의했던 스키마와 호환되지 않는 스키마를 보내려고 할 때 보낼 수 없게 막아준다. 스키마..
2021.07.26 -
[MYSQL] Docker MYSQL 로그에서 "mbind: Operation not permitted" 이슈 해결방법
개요 mysql은 도커 컨테이너로 올라가있는 상태이고, 로컬에 볼륨이 공유된 상태로 사용하고 있었다. mysql에서 로그를 확인해보니 아래와 같은 로그를 확인할 수 있었다. 해결 방법 mbind는 리눅스 명령어로 메모리 범위에 대한 메모리 정책 설정을 뜻한다. mbind를 사용하는 명령어에서 권한이 없는 문제로 예상된다. 도커 공식 문서에 보면 아래와 같은 내용이 있다. --cap-add=sys_nice Grants the container the CAP_SYS_NICE capability, which allows the container to raise process nice values, set real-time scheduling policies, set CPU affinity, and other ..
2021.06.07 -
[🧙Kafka] 카프카 구축 (5) - 카프카 UI 간단하게 구성하기
About 카프카를 GUI로 보기 위해서 kafdrop 이라는 라이브러리를 사용하려고 한다. docker로 미리 만들어진 이미지가 있어서 정말 간단하게 사용할 수 있다. Tutorial & Example 1. 작업할 폴더를 생성한다. 2. docker-compose.yml 파일을 생성하고 아래처럼 입력한다. - KAFKA_BROKERCONNECT에 기존에 생성했던 카프카 브로커를 입력해주었다. version: "3.8" services: kafdrop: image: obsidiandynamics/kafdrop restart: "always" ports: - "9000:9000" environment: KAFKA_BROKERCONNECT: "pipeline-kafka-1:9092,pipeline-kafka..
2021.04.08 -
[🧙Kafka] 카프카 구축 (2) - 카프카 도커로 쉽게 설치하기
About 이번에는 카프카를 도커로 설치하고 '카프카 설치 (1)' 에서 했던 주키퍼 앙상블을 연결하려고 한다. 하나의 컴퓨터에서 클러스터를 구성해보고, 배포할 때 크게 변경 없이 배포하기 위해 도커로 구성하려고 한다. 카프카 브로커는 5개로 구성하고 크기를 쉽게 변경 가능하도록 하려고 한다. Tutorial & Example 1. 작업할 폴더를 생성한다. 2. Dockerfile을 아래와 같이 작성한다. FROM ubuntu:18.04 RUN mkdir -p /root/install RUN apt-get update WORKDIR /root/install ENV DEBIAN_FRONTEND noninteractive ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ..
2021.04.06 -
[🧙Kafka] 카프카 구축 (1) - 주키퍼 앙상블 쉽게 구축하기
About 카프카 브로커에서 브로커와 토픽의 메타데이터를 저장하기 위해 주키퍼를 사용한다. 주키퍼를 단독으로 구성할 수도 있지만, 주키퍼를 클러스터로 구성하여 고가용성을 확보한 것을 주키퍼 앙상블(Zookeeper Ensemble)이라고 한다. 주키퍼 서버는 홀수로 구성하는 것을 권고하고 있기 때문에 3대로 구성하려고 한다. 홀수로 구성하는 이유는 예를 들어서 4대로 구성을 했을 때 결함에 대한 장애 대비 기능(failover)가 3대로 구성한 것과 다르지 않기 때문인데, 짝수로 구성해도 다른 큰 문제는 없다. 하나의 OS에서 3개의 도커를 띄워 구성해보려고 한다. Tutorial & Example 1. 작업할 폴더를 생성한다. 2. Dockerfile을 아래와 같이 작성한다. FROM ubuntu:18..
2021.04.06