分享

关于kafka的group管理,有什么好办法??

lanyangkj 发表于 2016-12-23 14:38:04 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 7 26584
1、config/consumer.properties 这个文件有什么用?能管的住group吗?
QQ图片20161223142937.png
2、而且,我消费代码似乎写什么group都可以哦,也就是上边这个文件是无效的。
3.png


3、而且在监控kafkamonitor中能监控正常的消费,那group岂不是,谁想起什么名字都可以了吗?
2.png
4.png

如果kafka对group控制不好,是不是带来很多安全隐患。

group有什么删除命令吗? 以后误操作,会密密麻麻,多不美观!





已有(7)人评论

跳转到指定楼层
nextuser 发表于 2016-12-23 16:02:29
删除掉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


回复

使用道具 举报

desehawk 发表于 2016-12-23 16:11:39
名字可以起,建议检测下创建的三个group里面是否有consumer
回复

使用道具 举报

lanyangkj 发表于 2016-12-26 10:04:30
nextuser 发表于 2016-12-23 16:02
删除掉group的方法。

进入zookeeper客户端:

此为正解,过去我们一直把zookeeper当成个协调器罢了,还不知道zookeeper还支持这么多命令,十分感谢。

还有一个疑问就是,为什么连接kafka的命令字符串里头,有时候用zookeeper的集群地址如:host1:2181,host2:2181,host3:2181,有时候却用kafka集群的地址,如:host1:9092,host2:9092,host3:9092。为什么?统一用zookeeper不行吗??
回复

使用道具 举报

lanyangkj 发表于 2016-12-26 10:07:25
desehawk 发表于 2016-12-23 16:11
名字可以起,建议检测下创建的三个group里面是否有consumer

这个group是随便定义,足显示kafka的安全机制是很差的,只要一个客户端连过一个group就冒出一个group。
回复

使用道具 举报

nextuser 发表于 2016-12-26 14:17:29
lanyangkj 发表于 2016-12-26 10:04
此为正解,过去我们一直把zookeeper当成个协调器罢了,还不知道zookeeper还支持这么多命令,十分感谢。
...

楼主可以举一个例子,一起研究下
回复

使用道具 举报

lanyangkj 发表于 2016-12-26 15:53:30
nextuser 发表于 2016-12-26 14:17
楼主可以举一个例子,一起研究下

2.png
1.png


看到上边两个图片了吗? 发送的时候用的kafka集群的地址,而接收的时候用的zookeeper的集群地址。
似乎感觉有些不理解,一旦扩展结点,可能还需要改程序。

回复

使用道具 举报

qcbb001 发表于 2016-12-26 20:35:02
lanyangkj 发表于 2016-12-26 15:53
看到上边两个图片了吗? 发送的时候用的kafka集群的地址,而接收的时候用的zookeeper的集群地址 ...

上面第一个图
用了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。
所以明白他们的作用,应该就差不多了




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条