lanyangkj 发表于 2016-12-26 15:53 上面第一个图, 用了zookeeper 这个里面最重要的信息是KafkaUtils.createDstream() 我们看到了也就是说,这个函数决定了,里面的参数,而对于楼主所示,使用了zookeeper信息。所以上面必须提供zookeeper的地址。 那么提供这个地址的作用是什么那? 应该是offset的监控 第二个图 使用了这个属性bootstrap.servers 用于建立与kafka集群连接的host/port组。数据将会在所有servers上均衡加载,不管哪些server是指定用于bootstrapping。这个列表仅仅影响初始化的hosts(用于发现全部的servers)。这个列表格式:host1:port1,host2:port2,…因为这些server仅仅是用于初始化的连接,以发现集群所有成员关系(可能会动态的变化),这个列表不需要包含所有的servers(你可能想要不止一个server,尽管这样,可能某个server宕机了)。如果没有server在这个列表出现,则发送数据会一直失败,直到列表可用。 从上面我们看到: bootstrap.servers的作用:用于发现全部的servers。 所以明白他们的作用,应该就差不多了 |
lanyangkj 发表于 2016-12-26 10:04 楼主可以举一个例子,一起研究下 |
desehawk 发表于 2016-12-23 16:11 这个group是随便定义,足显示kafka的安全机制是很差的,只要一个客户端连过一个group就冒出一个group。 |
nextuser 发表于 2016-12-23 16:02 此为正解,过去我们一直把zookeeper当成个协调器罢了,还不知道zookeeper还支持这么多命令,十分感谢。 还有一个疑问就是,为什么连接kafka的命令字符串里头,有时候用zookeeper的集群地址如:host1:2181,host2:2181,host3:2181,有时候却用kafka集群的地址,如:host1:9092,host2:9092,host3:9092。为什么?统一用zookeeper不行吗?? |
名字可以起,建议检测下创建的三个group里面是否有consumer |
删除掉group的方法。 进入zookeeper客户端: zkCli.sh -server localhost:42182 注:这里我配的zk端口是42182,默认为2181,可根据情况自行修改。 进入客户端执行: [zk: localhost:42182(CONNECTED) 0] ls /consumers 在consumers会看到你已经注册过的group信息,删掉想删掉的group就可以了。 [zk: localhost:42182(CONNECTED) 1] rmr /consumers/group1 |