클러스터

3344 단어
세 대의 서버 아래에 각각 kafka를 설치하다

1. ZooKeeper 클러스터 구성


세 서버 아래의 config/zookeeper를 수정합니다.properties:
dataDir=/Users/desire/Library/kafka_2.11/data
clientPort=2383
initLimit=5
syncLimit=2
server.0=192.168.165.205:3434:3535
server.1=192.168.171.50:3434:3535
server.2=192.168.171.51:3434:3535

그리고 데이터Dir 디렉터리에 현재 서버의 id를 포함하는 myid 파일을 씁니다.

2. 브로커 그룹 설정

broker.id=0
delete.topic.enable=true

listeners=PLAINTEXT://192.168.165.205:9092
#advertised.listeners=PLAINTEXT://your.host.name:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600

log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1

offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1

#log.flush.interval.messages=10000
#log.flush.interval.ms=1000

log.retention.hours=168
#log.retention.bytes=1073741824
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000

zookeeper.connect=192.168.165.205:2383,192.168.171.50:2383,192.168.171.51:2383
zookeeper.connection.timeout.ms=10000

group.initial.rebalance.delay.ms=0

수정해야 할 부분은
  • broker.id
  • listeners
  • log.dirs
  • zookeeper.connect

  • 첫 번째 서버
    broker.id=0
    listeners=PLAINTEXT://192.168.165.205:9092
    log.dirs=/tmp/kafka-logs
    zookeeper.connect=192.168.165.205:2383,192.168.171.50:2383,192.168.171.51:2383
    

    두 번째 서버
    broker.id=1
    listeners=PLAINTEXT://192.168.171.50:9092
    log.dirs=/tmp/kafka-logs-1
    zookeeper.connect=192.168.165.205:2383,192.168.171.50:2383,192.168.171.51:2383
    

    세 번째 서버
    broker.id=2
    listeners=PLAINTEXT://192.168.171.51:9092
    log.dirs=/tmp/kafka-logs-2
    zookeeper.connect=192.168.165.205:2383,192.168.171.50:2383,192.168.171.51:2383
    

    3. 생산자 프로필 수정

    bootstrap.servers=192.168.165.205:9092,192.168.171.50:9092,192.168.171.51:9092
    

    4. 소비자 프로필 수정

    zookeeper.connect=192.168.165.205:2383,192.168.171.50:2383,192.168.171.51:2383
    zookeeper.connection.timeout.ms=10000
    

    5. 서비스 실행


    각각 세 서버의 ZooKeeper 서비스를 시작합니다./zookeeper-server-start.sh ../config/ zookeeper.properties는 각각 세 서버의kafka 서비스를 오픈합니다./kafka-server-start.sh ../config/server.properties

    6. 생산자가 메시지를 발송

  • 토픽을 만듭니다
    ./kafka-topics.sh --create --zookeeper 192.168.165.205:2181 --replication-factor 3 --partitions 1 --topic test-replicated-topic
    
  • 생산자가 메시지를 보냅니다
    ./kafka-console-producer.sh --broker-list 192.168.165.205:9092 --topic test-replicated-topic
    > hello,kafka!
    > bye,kafka!
    

  • 7. 소비자 소비 소식

  • 첫 번째 서버
    ./kafka-console-consumer.sh --zookeeper 192.168.165.205:2181 --from-beginning --topic test-replicated-topic
    
  • 두 번째 서버
    ./kafka-console-consumer.sh --zookeeper 192.168.171.50:2181 --from-beginning --topic test-replicated-topic
    
  • 세 번째 서버
    ./kafka-console-consumer.sh --zookeeper 192.168.171.51:2181 --from-beginning --topic test-replicated-topic
    
  • 좋은 웹페이지 즐겨찾기