kafka 测试
./bin/kafka-server-start.sh -daemon config/server.properties
./bin/kafka-topics.sh --list --zookeeper localhost:2181
kafka启动(需要先启动zk)下面是查看主题
./bin/kafka-topics.sh --list --zookeeper localhost:2181
./bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic cad_convert #删除主题
修改主题
kafka-topics.sh --alter --zookeeper localhost:2181 --topic hello --config flush.messages=1
#增加分区 分区对于 Kafka 集群的好处是:实现负载均衡。分区对于消费者来说,可以提高并发度,提高效率。
bin/kafka-topics.sh --alter --zookeeper localhost:2181 --topic cad_convert --partitions 2
kafka could not be established. Broker may not be available. 日志是kafka 服务端有问题
安装kafka(集群部署)
1,下载kafka安装包:
http://kafka.apache.org/downloads
2,每台服务器放入安装包,解压
3,cd /config目录下修改server.properties
修改每台服务器server.properties中的:
broker.id=整数,每台不同
listeners=PLAINTEXT://192.168.145.136(当前服务器的ip):9092
zookeeper.connect=192.168.145.139:2181,192.168.145.140:2181:192.168.145.143:2181(zookeeper的集群地址)
4,启动zookeeper集群和每台服务器的kafka服务
启动kafka:sh kafka-server-start.sh -daemon …/config/server.properties
5,到logs目录下查看server.log日志的输出
tail -100f server.log
6,停止kafka服务:
sh kafka-server-stop
(3)zookeeper上注册的节点信息
cluster, controller, controller_epoch, brokers,admin, isr_change_notification, consumers, latest_producer_id_block, config
controller – 控制节点
brokers – kafka集群的broker信息 。 topic
consumer ids/owners/offsets
如何集群/原理:
1.在Kafka的设计中,选择了使用Zookeeper来进行所有Broker的管理,体现在zookeeper上会有一个专门用来进行Broker服务器列表记录的点,节点路径为/brokers/ids
每个Broker服务器在启动时,都会到Zookeeper上进行注册,即创建/brokers/ids/[0-N]的节点,然后写入IP,端口等信息,Broker创建的是临时节点,所有一旦Broker上线或者下线,对应Broker节点也就被删除了,因此我们可以通过zookeeper上Broker节点的变化来动态表征Broker服务器的可用性,Kafka的Topic也类似于这种方式。
2.生产者负载均衡
生产者需要将消息合理的发送到分布式Broker上,这就面临如何进行生产者负载均衡问题。
对于生产者的负载均衡,Kafka支持传统的4层负载均衡,zookeeper同时也支持zookeeper方式来实现负载均衡。
使用zookeeper进行负载均衡
很简单,生产者通过监听zookeeper上Broker节点感知Broker,Topic的状态,变更,来实现动态负载均衡机制,当然这个机制Kafka已经结合zookeeper实现了。
如上图所示,一个典型的 Kafka 体系架构包括若干 Producer(消息生产者),若干 broker(作为 Kafka 节点的服务器),若干 Consumer(Group),以及一个 ZooKeeper 集群。Kafka通过 ZooKeeper 管理集群配置、选举 Leader 以及在 consumer group 发生变化时进行 Rebalance(即消费者负载均衡,在下一课介绍