Kafka(单机版)的下载、安装、配置、启动、测试请参考另一篇文章:在CentOS上安装Kafka搭建集群只需要在此基础上增加一些配置即可。本文也主要介绍这些集群相关的配置,其他步骤不再赘述。假设节点数为3,ips分别为:10.20.1.52,10.20.1.53,10.20.1.541.配置1.先安装配置其中一台机器(10.20.1.52),修改server.propertiesshell>cd/usr/local/kafka_2.12-2.2.0/shell>vimconfig/server.properties编辑以下内容#############################ServerBasics###############################这里的3个节点分别设置为:broker.id=1,broker.id=2,broker.id=3broker.id=1###############################套接字服务器设置###############################这里的3个节点分别设置为:PLAINTEXT://10.20.1.52:9092,PLAINTEXT://10.20.1.53:9092,PLAINTEXT://10.20.1.54:9092listeners=PLAINTEXT://10.20.1.52:9092#这里三个节点分别设置为:PLAINTEXT://10.20.1.52:9092,PLAINTEXT://10.20.1.53:9092,PLAINTEXT://10.20.1.54:9092advertised.listeners=PLAINTEXT://10.20.1.52:9092#############################日志基础################################默认是/tmp/kafka-logs,可以是删除log.dirs=/usr/local/kafka_2.12-2.2.0/logs##############################动物园管理员##############################末尾的/kafka是可选的,但是建议配置,因为除了kafka可能还有其他服务注册到ZooKeeper,添加根目录好区分zookeeper.connect=10.20.1.52:2181,10.20.1.53:2181,10.20.1.54:2181/kafka2,复制到其他节点(10.20.1.53,10.20.1.54)第一台机器配置好后,直接复制到其他节点,然后添加修改即可(当然,如果你愿意,也可以按照同样的步骤再次重复安装配置,注意修改server.properties的内容)shell>scp-r/usr/local/kafka_2.12-2.2.0/root@10.20.1.53:/usr/local/shell>scp-r/usr/local/kafka_2.12-2.2.0/root@10.20.1.54:/usr/local/然后在另外两台机器上修改配置File(server.properties)shell>cd/usr/local/kafka_2.12-2.2.0/shell>vimconfig/server.properties#10.20.1.53broker.id=2listeners=PLAINTEXT://10.20.1.53:9092广告。listeners=PLAINTEXT://10.20.1.53:9092#10.20.1.54broker.id=3listeners=PLAINTEXT://10.20.1.54:9092advertised.listeners=PLAINTEXT://10.20.1.54:90922.分别启动3个Kafka节点shell>cd/usr/local/kafka_2.12-2.2.0shell>bin/kafka-server-start.sh-daemonconfig/server.properties如果使用kafka-manager,需要打开JMX_PORTshell>JMX_PORT=9999bin/kafka-server-start.sh-daemonconfig/server.properties3.测试1.查看ZooKeeper注册信息shell>cd/usr/local/zookeeper-3.5.3-beta/shell>bin/zkCli.sh[zk:localhost:2181(CONNECTED)0]ls/[kafka,test,zookeeper][zk:localhost:2181(CONNECTED)1]ls/kafka[admin,brokers,cluster,config,consumers,controller,controller_epoch,isr_change_notification,latest_producer_id_block,log_dir_event_notification][zk:1(NECT8CONNECTED:2)2]ls/kafka/brokers[ids,seqid,topics][zk:localhost:2181(CONNECTED)3]ls/kafka/brokers/ids[1,2,3]其中1,2,3是3的一个kafka节点的server.properties中配置的broker.id的值2、kafka命令第一台机器(10.20.1.52)创建topicshell>bin/kafka-topics.sh--create--bootstrap-server10.20.1.52:9092--replication-factor3--partitions1--topictest#查看集群topic详情,或者连接另外两台机器查看topic是否已经同步shell>bin/kafka-topics.sh--describe--bootstrap-server10.20.1.52:9092--topictestTopic:testPartitionCount:1ReplicationFactor:3Configs:segment.bytes=1073741824Topic:测试Partition:0Leader:1Replicas:1,2,3Isr:1,2,3第二台机器(10.20.1.53)发送消息bin/kafka-console-producer.sh--broker-list10.20.1.53:9092--topictest>Hello>World第三台机器(10.20.1.54)消费消息bin/kafka-console-consumer.sh--bootstrap-server10.20.1.54:9092--topictest--from-beginningHelloWorld
