kafka 安装

  1. kafka是一个分布式的消息缓存系统
  2. kafka集群中的服务器都叫做broker
  3. kafka有两类客户端,一类叫producer(消息生产者),一类叫做consumer(消息消费者),客户端和broker服务器之间采用tcp协议连接
  4. kafka中不同业务系统的消息可以通过topic进行区分,而且每一个消息topic都会被分区,以分担消息读写的负载
  5. 每一个分区都可以有多个副本,以防止数据的丢失
  6. 某一个分区中的数据如果需要更新,都必须通过该分区所有副本中的leader来更新
  7. 消费者可以分组,比如有两个消费者组A和B,共同消费一个topic:order_info,A和B所消费的消息不会重复,比如 order_info 中有100个消息,每个消息有一个id,编号从0-99,那么,如果A组消费0-49号,B组就消费50-99号
  8. 消费者在具体消费某个topic中的消息时,可以指定起始偏移量

kafka集群官网地址:http://kafka.apache.org/quickstart

 整体结构图如下:

1、m2机器上解压kafka

2、进入config目录,修改server.properties文件,主要修改broker.id,每台机器应该保证不一样,修改zookeeper.connect为m6,m7m8组成的zookeeper集群

    #必须是唯一的数字 

    broker.id=0

    #zookeeper地址,多个使用逗号分隔

     zookeeper.connect=m6:2181,m7:2181,m8:2181

3、拷贝kafka到m3、m4机器上

4、分别修改m3、m4上配置文件server.properties中的broker.id

5、启动zookeeper集群

6、启动kafka broker节点,启动命令为: ./bin/kafka-server-start.sh ./config/server.properties,每台机器分别执行这个命令,这种启动方式是在前台启动,如果需要在后台启动执行:./bin/kafka-server-start.sh ./config/server.properties 1>/dev/null 2>&1 &

7、停止kafka:./bin/kafka-server-stop.sh ./config/server.properties 

错误集锦

kafka.common.InconsistentBrokerIdException: Configured broker.id 1 doesn't match stored broker.id 0 in meta.properties. If you moved your data, make sure your configured broker.id matches. If you intend to create a new broker, you should remove all data in your data directories (log.dirs).

问题原因
没有修改broker.id直接启动,后来发现错误,修改broker.id出现上述错误

解决方法
cat ./config/server.properties | grep log.dirs
删除上句话显示的目录下的所有文件

原文地址:https://www.cnblogs.com/heml/p/6073676.html