수강환경 VirtualBox -> Docker
223
投稿した質問数 1
어디에 올리는 것이 적합한지 모르겠어서 여기에 올려봅니다.
혹시 virtual box 사용하여 강의 환경설정하시는 것이 조금 번거로우신 분들을 위해, 강의 실습을 진행하며 사용했던 docker-compose 파일을 공유드립니다!
강의의 세부적인 부분까지 따라하진 못할수도 있지만, 좀 더 편하고 빠르게 수업을 따라가실 수 있으실거에요. 너무나 좋은 강의 감사드립니다!
(사용하시게 되면 connector config 파일들에서 DB connection url localhost 부분을 mysql로 바꿔서 등록하시면 되요)
name: 'plz_kafka'
services:
zookeeper:
image: confluentinc/cp-zookeeper:7.5.3
hostname: zookeeper
container_name: zookeeper
ports:
- "2181:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
healthcheck:
test: echo srvr | nc zookeeper 2181 || exit 1
start_period: 10s
retries: 20
interval: 10s
broker:
image: confluentinc/cp-enterprise-kafka:7.5.3
hostname: broker
container_name: broker
depends_on:
zookeeper:
condition: service_healthy
ports:
- "29092:29092"
- "9092:9092"
- "9101:9101"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker:29092,PLAINTEXT_HOST://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
KAFKA_JMX_PORT: 9101
KAFKA_JMX_HOSTNAME: localhost
KAFKA_CONFLUENT_SCHEMA_REGISTRY_URL: http://schema-registry:8081
healthcheck:
test: nc -z localhost 9092 || exit -1
start_period: 15s
interval: 5s
timeout: 10s
retries: 10
kafka-connect:
image: confluentinc/cp-kafka-connect-base:7.7.1
container_name: kafka-connect
depends_on:
- broker
# - schema-registry
ports:
- 8083:8083
environment:
CONNECT_BOOTSTRAP_SERVERS: "broker:29092"
CONNECT_REST_PORT: 8083
CONNECT_GROUP_ID: kafka-connect
CONNECT_CONFIG_STORAGE_TOPIC: _connect-configs
CONNECT_OFFSET_STORAGE_TOPIC: _connect-offsets
CONNECT_STATUS_STORAGE_TOPIC: _connect-status
CONNECT_KEY_CONVERTER: org.apache.kafka.connect.json.JsonConverter
CONNECT_VALUE_CONVERTER: org.apache.kafka.connect.json.JsonConverter
# CONNECT_VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter
CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: 'http://schema-registry:8081'
CONNECT_REST_ADVERTISED_HOST_NAME: "kafka-connect"
CONNECT_LOG4J_APPENDER_STDOUT_LAYOUT_CONVERSIONPATTERN: "[%d] %p %X{connector.context}%m (%c:%L)%n"
CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: "1"
CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: "1"
CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: "1"
# ---------------
CONNECT_PLUGIN_PATH: /usr/share/java,/usr/share/confluent-hub-components
# If you want to use the Confluent Hub installer to d/l component, but make them available
# when running this offline, spin up the stack once and then run :
# docker cp kafka-connect:/usr/share/confluent-hub-components ./data/connect-jars
volumes:
- $PWD/data:/data
# In the command section, $ are replaced with $$ to avoid the error 'Invalid interpolation format for "command" option'
command:
- bash
- -c
- |
echo "Installing Connector"
confluent-hub install --no-prompt debezium/debezium-connector-mysql:1.7.0
confluent-hub install --no-prompt jcustenborder/kafka-connect-spooldir:2.0.65
confluent-hub install --no-prompt confluentinc/kafka-connect-jdbc:10.8.0
curl -o /usr/share/confluent-hub-components/confluentinc-kafka-connect-jdbc/lib/mysql-connector-java.jar \
https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.26/mysql-connector-java-8.0.26.jar
#
echo "Launching Kafka Connect worker"
/etc/confluent/docker/run &
#
sleep infinity
schema-registry:
image: confluentinc/cp-schema-registry:6.2.0
container_name: schema-registry
ports:
- "8081:8081"
depends_on:
- broker
environment:
SCHEMA_REGISTRY_HOST_NAME: schema-registry
SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: broker:29092
mysql:
image: mysql:8.0
container_name: mysql
environment: # 환경 변수 설정
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: 'connect_dev'
MYSQL_PASSWORD: 'connect_dev'
MYSQL_DATABASE: om
TZ: Asia/Seoul
ports:
- "3306:3306"
volumes:
- ./mysql/:/var/lib/mysql
回答 2
1
안녕하십니까
오, 이걸 Docker로 다 환경 구성 해보셨군요.
많은 분께 도움이 되겠지만, 누구보다 저한테 더 큰 도움일 것 같습니다.
좋은 자료 주셔서 감사합니다.
계속 csv파일을 폴더로 인식하는 중입니다.
0
65
2
cdc failover
0
69
2
avro plugin에 안보이는거 같아요
0
68
2
zookeeper가 실행이 안되요
0
73
3
Debezium CDC Source Connector 이벤트 메시지
0
82
2
재 질문! 다른 connector가 동일 토픽 사용
0
63
2
메시지 발행이 안 됩니다.
0
75
2
디비지움 오프셋 리셋
0
94
2
mysql_jdbc_oc_sink_customers_02.json 에서 오류납니다.
0
69
3
io.debezium.connector.mysql.MySqlConnector 질문
0
67
2
Debezium 이벤트 메시지 발행 시 성공여부
0
80
2
connect 구동 오류
0
97
3
CDC Connect 통시에서의 암호화 관련 하여 문의 드립니다.
0
121
2
GCSSinkconnector
0
64
1
debezium source connector에서 `poll.interval.ms` 파라미터
0
142
2
자문자답: JDBC Sink Connector가 PostgreSQL의 Schema를 바라보지 않습니다.
0
212
1
table.name.format에 관하여..
0
196
2
binlog와 offset 관련 추가 질문드립니다
0
149
1
Debezium cdc source for MSSQL-Server [등록오류]
0
190
2
http http://localhost:8083/connector-plugins 시 플러그인이 보이지 않습니다.
0
187
2
안녕하세요 sink connector 생성 config 관련 질문입니다.
0
159
2
일반적인 예시들이 궁금해서 질문 남깁니다.
1
145
2
debezium connector schema 찾지 못하는 오류
0
426
2
offset 커밋 관련 질문
0
159
1

