10分钟带你逆袭Kafka!( 八 )


 
 ③拷贝 3 份配置文件 
#创建对应的日志目录mkdir -p /data/servers/kafka_2.11-2.4.0/logs/9092mkdir -p /data/servers/kafka_2.11-2.4.0/logs/9093mkdir -p /data/servers/kafka_2.11-2.4.0/logs/9094#拷贝三份配置文件cp server.properties server_9092.properties cp server.properties server_9093.properties cp server.properties server_9094.properties  
④修改不同端口对应的文件 
#9092的id为0, 9093的id为1, 9094的id为2 broker.id=0 # 配置服务端的监控地址, 分别在不通的配置文件中写入不同的端口 listeners=PLAINTEXT://192.168.51.128:9092 # kafka 日志目录, 目录也是对应不同的端口 log.dirs=/data/servers/kafka_2.11-2.4.0/logs/9092 # kafka设置的partitons的个数 num.partitions=1 # zookeeper的连接地址, 如果有自己的zookeeper集群, 请直接使用自己搭建的zookeeper集群 zookeeper.connect=192.168.51.128:2181 
修改 Zookeeper 的配置文件: 
dataDir=/data/servers/zookeeperserver.1=192.168.51.128:2888:3888 
然后创建 Zookeeper 的 myid 文件: 
echo "1"> /data/servers/zookeeper/myid 
⑤启动 Zookeeper 
使用 Kafka 内置的 Zookeeper:
 
cd /data/servers/kafka_2.11-2.4.0/binzookeeper-server-start.sh -daemon ../config/zookeeper.properties netstat -anp |grep 2181 
启动 Kafka: 
./kafka-server-start.sh -daemon ../config/server_9092.properties   ./kafka-server-start.sh -daemon ../config/server_9093.properties   ./kafka-server-start.sh -daemon ../config/server_9094.properties    
Kafka 的操作
 
①Topic
 
我们先来看一下创建 Topic 常用的参数吧:
 

  • --create:创建 topic
  • --delete:删除 topic
  • --alter:修改 topic 的名字或者 partition 个数
  • --list:查看 topic
  • --describe:查看 topic 的详细信息
  • --topic <String: topic>:指定 topic 的名字
  • --zookeeper <String: hosts>:指定 Zookeeper 的连接地址参数提示并不赞成这样使用(DEPRECATED, The connection string for the zookeeper connection in the form host:port. Multiple hosts can be given to allow fail-over.)
 
--bootstrap-server <String: server to connect to>:指定 Kafka 的连接地址,推荐使用这个,参数的提示信息显示(REQUIRED: The Kafka server to connect to. In case of providing this, a direct Zookeeper connection won't be required.) 。
 
--replication-factor <Integer: replication factor> : 对于每个 Partiton 的备份个数 。(The replication factor for each partition in the topic being created. If not supplied, defaults to the cluster default.)
 
--partitions <Integer: # of partitions>:指定该 topic 的分区的个数 。
 
示例:
cd /data/servers/kafka_2.11-2.4.0/bin# 创建topic  test1kafka-topics.sh --create --bootstrap-server=192.168.51.128:9092,10.231.128.96:9093,192.168.51.128:9094 --replication-factor 1 --partitions 1 --topic test1# 创建topic test2kafka-topics.sh --create --bootstrap-server=192.168.51.128:9092,10.231.128.96:9093,192.168.51.128:9094 --replication-factor 1 --partitions 1 --topic test2# 查看topickafka-topics.sh --list --bootstrap-server=192.168.51.128:9092,10.231.128.96:9093,192.168.51.128:9094  
②自动创建 Topic 
我们在工作中,如果我们不想去管理 Topic,可以通过 Kafka 的配置文件来管理 。
 
我们可以让 Kafka 自动创建 Topic,需要在我们的 Kafka 配置文件中加入如下配置文件:
 
auto.create.topics.enable=true 
如果删除 Topic 想达到物理删除的目的,也是需要配置的:
 
delete.topic.enable=true 
③发送消息 
他们可以通过客户端的命令生产消息,先来看看 kafka-console-producer.sh 常用的几个参数吧:
 
  • --topic <String: topic>:指定 topic
  • --timeout <Integer: timeout_ms>:超时时间
  • --sync:异步发送消息
  • --broker-list <String: broker-list>:官网提示: REQUIRED: The broker list string in the form HOST1:PORT1,HOST2:PORT2.
 
这个参数是必须的:


推荐阅读