kafka 고가 용 집단 구축 절차

12122 단어 짜임새
kafka 고가 용 집단 구축 절차
기계 배치
기계 ip 주소: 10.16.18.213;10.16.18.214
Kafka 버 전 정보
kafka 버 전: kafka2.11 - 1.0.0 zookeeper 버 전: kafka 자체 테이프 의 zookeeper 다운로드 주소 사용:http://archive.apache.org/dist/kafka/1.0.0/kafka_2.11-1.0.0.tgz
Broker
네 개의 broker 를 예 로 들 면, 한 대의 기계 가 두 개의 broker 를 운행 하고, 설정 포트 를 통 해 현재 zookeeper 를 사용 하지 않 았 으 며, 깊이 연구 해 야 합 니 다 ~ 이번 테스트 의 모든 broker 는 10.16.18.213: 2181 의 zookeeper 를 사용 합 니 다.
broker1
broker2
broker3
broker4
brokerId
1
2
11
12
ip
10.16.18.213
10.16.18.213
10.16.18.214
10.16.18.214
포트
9093
9094
9093
9094
메시지 저장 경로
/root/kafka/kafka_2.11-1.0.0/data1
/root/kafka/kafka_2.11-1.0.0/data2
/root/kafka/kafka_2.11-1.0.0/data1
/root/kafka/kafka_2.11-1.0.0/data2
로그
/kafka_2.11-1.0.0/logs
/kafka_2.11-1.0.0/logs
/kafka_2.11-1.0.0/logs
/kafka_2.11-1.0.0/logs
zookeeper
10.16.18.213:2181
10.16.18.213:2181
10.16.18.213:2181
10.16.18.213:2181
로그
콘 솔 출력 로 그 는 kafka_2.11-1.0.0/logs 에 저 장 됩 니 다. 시작 에 실패 하면 실패 원인 을 볼 수 있 습 니 다.logs 디 렉 터 리 에 다음 로그 파일 포함
# kafka            ,                
controller.log
# Kafka          
kafka-authorizer.log
#     
kafka-request.log 
# kafkaGC  
kafkaServer-gc.log.0.current
# kafka       
kafkaServer.out
#     
log-cleaner.log 
#kafkaAppender appender layout
server.log
# Kafka             	
state-change.log
# zookeeper GC  
zookeeper-gc.log.0.current
# zookeeper         
zookeeper.out

기억
kafka 의 메시지 저장 경 로 는 config/server.properties 중의 log.dirs 을 통 해 설정 합 니 다.
하나의 topic 는 여러 개의 partition 으로 나 눌 수 있 고, partition 은 segment 로 세분 화 할 수 있 으 며, 하나의 partition 은 물리 적 으로 여러 개의 segment 로 구성 된다.
파 티 션 이 4 로 설정 되 었 을 때 log.dirs 디 렉 터 리 아래 폴 더 를 볼 수 있 습 니 다.
drwxr-xr-x 2 root root 4096 Apr 10 16:10 topic_zzh_test-0
drwxr-xr-x 2 root root 4096 Apr 10 16:10 topic_zzh_test-1
drwxr-xr-x 2 root root 4096 Apr 10 16:10 topic_zzh_test-2
drwxr-xr-x 2 root root 4096 Apr 10 16:10 topic_zzh_test-3

partition 폴 더 에 저 장 된
00000000000000000000.index
00000000000000000000.log
00000000000000170410.index
00000000000000170410.log
00000000000000239430.index
00000000000000239430.log

partition 전역 의 첫 번 째 segment 는 0 부터 시작 합 니 다. 다음 segment 파일 이름 은 이전 segment 파일 의 마지막 메시지 의 offset 값 입 니 다. 수치 크기 는 64 비트, 20 비트 디지털 문자 길이 이 며 숫자 는 0 으로 채 워 지지 않 습 니 다.
배치 하 다.
여기 서 broker 1 의 경우 다른 broker 는 수정 broker.id listeners``host.name advertised.listeners log.dirs 등 매개 변 수 를 수정 해 야 합 니 다. 여러 개의 zookeeper 를 설정 하면 수정 zookeeper.connect 이 필요 합 니 다.
# broker ID 
broker.id=1

############# Socket Server Settings #############
#                    0.0.0.0        。           。    >       :PLAINTEXT:// myhost:9092,SSL://:9091 CLIENT://0.0.0.0:9092,REPLICATION>:// localhost:9093
listeners=PLAINTEXT://:9093
#   :      `listeners`   。  `listeners`   。      broker   ,           。     ,        。	
host.name=10.16.18.213
#      ZooKeeper      ,   `listeners`    。 IaaS  ,      broker       。      ,   `listeners`   。 `listeners`    ,  0.0.0.0       。	
advertised.listeners=PLAINTEXT://10.16.18.213:9093
#                                
num.network.threads=3
#              ,      I/O   
num.io.threads=8
#        socket   SO_SNDBUF    。    -1,        。
socket.send.buffer.bytes=102400
#        socket   SO_RCVBUFF    。    -1,        。  
socket.receive.buffer.bytes=102400
# socket       ,      server    ,    Java    。      
socket.request.max.bytes=104857600

############## Log Basics ############
#          ,        log.dir   。   
log.dirs=/root/kafka/kafka_2.11-1.0.0/data1
#   topic   partitions  
num.partitions=1
#       ,                     
num.recovery.threads.per.data.dir=1

############ Internal Topic Settings  ##########
# offset topic    (     ,     )。              ,  topic     ,。
offsets.topic.replication.factor=3
#   topic    (     ,     )。  topic           ,        。     
transaction.state.log.replication.factor=3
#        ISR
transaction.state.log.min.isr=2

################ Log Retention Policy ################
#                : compact   
log.cleanup.policy=delete
#         30  
log.retention.minutes=30
#                    
log.segment.bytes=1073741824
#                    (      )        
log.retention.check.interval.ms=300000

################## Zookeeper #################
# Zookeeper     "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"
zookeeper.connect=10.16.18.213:2181
#  ZK server         ,       zookeeper.session.timeout.ms      
zookeeper.connection.timeout.ms=6000

######### Group Coordinator Settings ###############
#             ,group        consumer  group   。          >          ,             。       
group.initial.rebalance.delay.ms=0


Topic
매개 변수
#   topic    
--relication-factor 3

#   topic partitions   
--partitions 1

#        ,    request.required.acks     -1 ,      ,  ISR       min.insync.replicas      ,        :org.apache.kafka.common.errors.NotEnoughReplicasExceptoin: Messages are rejected since there are fewer in-sync replicas than required。
-- config min.insync.replilcas=2


#      partition   replica   ,           。             :
#1 false   ISR     replica“ ”  ,      leader
#2 true(  )     “ ”   replica(      ISR )  leader
--config unclean.leader.election.enable=false


상용 명령
#   topic
bin/kafka-topics.sh --create --zookeeper 10.16.18.213:2181 --replication-factor 3 --partitions 1 --config unclean.leader.election.enable=false --config min.insync.replicas=2 --topic command_topic

#        
bin/kafka-console-producer.sh --broker-list 10.16.18.213:9094 --request-required-acks -1 --topic command_topic

#        
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic

#      Topic   
bin/kafka-topics.sh --describe --zookeeper master:2181,slave1:2181,slave2:2181 --topic topic_name

#    Topic
bin/kafka-topics.sh --delete --zookeeper master:2181,slave1:2181,slave2:2181 --topic topic_name

#    Topic
bin/kafka-topics.sh --alter --zookeeper master:2181,slave1:2181,slave2:2181 --topic topic_name --partitions 3

#     broker  offset
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 10.16.18.214:9093 -topic command_topic --time -1

#     broker
./kafka-server-start.sh -daemon ../config/server2.properties

건설 공정
Kafka 다운로드
wget http://archive.apache.org/dist/kafka/1.0.0/kafka_2.11-1.0.0.tgz
tar -xzf kafka_2.11-1.0.0.tgz
cd kafka_2.11-1.0.0

Kafka 설정
위 에서 소개 한 카 프 카 의 설정 에 따라 설정 vim config/server.properties
  • broker 에 설정 파일 이 있 음 을 주의해 야 합 니 다
  • #   213 
    # broker1       
    server1.properties 
    # broker2       
    server2.properties
    
  • 브로커 마다 다른 broker.id
  • 을 사용 해 야 합 니 다.
  • 같은 기계 의 broker 는 서로 다른 감청 포트
  • 를 설정 해 야 한다.
    # 213  broker1
    broker.id=1
    PLAINTEXT://:9093
    host.name=10.16.18.213
    advertised.listeners=PLAINTEXT://10.16.18.213:9093
    
    # 213  broker2
    broker.id=2
    PLAINTEXT://:9094
    host.name=10.16.18.213
    advertised.listeners=PLAINTEXT://10.16.18.213:9094
    
    # 214  broker11
    broker.id=11
    PLAINTEXT://:9093
    host.name=10.16.18.214
    advertised.listeners=PLAINTEXT://10.16.18.214:9093
    
    # 214   broker12
    broker.id=12
    PLAINTEXT://:9094
    host.name=10.16.18.214
    advertised.listeners=PLAINTEXT://10.16.18.214:9094
    
  • 같은 기기 의 broker 는 로그 데 이 터 를 저장 하 는 디 렉 터 리 를 설정 하고 log.dirs 를 통 해 설정 해 야 합 니 다
  • zookeeper 주 소 를 설정 합 니 다. 213 에 있 는 zookeeper 를 공동으로 사용 하기 때문에 설정 이 모두
  • 입 니 다.
    zookeeper.connect=10.16.18.213:2181
    

    시동 을 걸다
    #   213  zookeeper
    ./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
    
    #       broker
    # 213
    ./bin/kafka-server-start.sh -daemon config/server1.properties
    ./bin/kafka-server-start.sh -daemon config/server2.properties
    # 214
    ./bin/kafka-server-start.sh -daemon config/server1.properties
    ./bin/kafka-server-start.sh -daemon config/server2.properties
    
    #   topic
    bin/kafka-topics.sh --create --zookeeper 10.16.18.213:2181,10.16.18.214:2181 --replication-factor 3 --partitions 1 --config unclean.leader.election.enable=false --config min.insync.replicas=2 --topic command_topic
    
    #      
    bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic
    
    #      
    bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic
    
    Kafka Tool 을 사용 하여 서비스 상 태 를 보 거나 명령 으로 볼 수 있 습 니 다.
    bin/kafka-topics.sh --describe --zookeeper 10.16.18.213:2181,10.16.18.214:2181 --topic topic_name
    

    고가 용 테스트 프로 세 스
    설정: partitions 1, replication - factor 3 min. insync. replicas = 2
  • topic 를 만 들 고 topic 에 메 시 지 를 보 냅 니 다
  • 현재 leader 를 죽 이 고 관찰 결과 kafka 는 자동 으로 새로운 leader 를 선택 하여 정상 적 인 조작 에 영향 을 주지 않 습 니 다
  • leader 하 나 를 더 죽 이면 조회 할 수 있 지만 write 를 하면 안 됩 니 다. 사용자 측 에서 이상 을 되 돌려 줍 니 다.
  • org.apache.kafka.common.errors.NotEnoughReplicasExceptoin: Messages are rejected since there are fewer in-sync replicas than required。
    

    참고 문장
    kafka 중국어 문서:http://kafka.apachecn.org/quickstart.html Kafka 로그 정리 로그 삭제https://blog.csdn.net/u013256816/article/details/80418297 kafka 데이터 신뢰성 깊이 해석https://hiddenpps.blog.csdn.net/article/details/71091774 kafka 군집 구축 (자체 Zookeeper)https://www.jianshu.com/p/898ad61c59fd

    좋은 웹페이지 즐겨찾기