目录
分布式安装
//kafka依赖zookeeper,要先启动zookeeper
mkdir etc // etc 用于存放配置文件
// 将zookeeper配置文件复制到etc
cp config/zookeeper.properties etc
// 复制3份,伪分布式
cp config/server.properties etc/server-0.properties
cp config/server.properties etc/server-1.properties
cp config/server.properties etc/server-2.properties
//在每个server配置文件中修改以下内容
broker.id=?
listeners=PLAINTEXT://XXXX(端口号)
log.dirs=/tmp/kafka-logs-x(id)
//启动zookeeper,启动脚本都在bin目录下,因此要转到bin目录下进行以下操作
./zookeeper-server-start.sh ../etc/zookeeper.properties
//启动kafka实例,同样进入bin,分别在三个窗口执行以下三条命令
./kafka-server-start.sh ../etc/server-0.properties
./kafka-server-start.sh ../etc/server-1.properties
./kafka-server-start.sh ../etc/server-2.properties
//启动完后,新建窗口,进入bin
//创建主题
//--zookeeper 参数是必须的
//--topic 参数用于设置分区名,分区名设为test
//--partitions 参数用于设置分区数量
//--replication-factor 参数用于设置副本数量
./kafka-topics.sh --zookeeper localhost:2181 --create --topic test --partitions 3 --replication-factor 2
//创建成功后,--describe参数 用于查看分区状态
./kafka-topics.sh --zookeeper localhost:2181 --describe --topic test
//使用生产者-消费者进行消息的发送读取
//新建窗口,bin目录下创建一个生产者,可以在生产者窗口发送消息
./kafka-console-producer.sh --broker-list localhost:9092 localhost:9093 localhost:9094 --topic test
//新建窗口,bin目录下创建一个消费者,消费者能收到生产者发送的消息
./kafka-console-consumer.sh --bootstrap-server localhost:9092 localhost:9093 localhost:9094 --topic test
监听器
是server. properties配置文件的配置项
用于指定broker启动时,本机的监听名称,端口
-
listeners
- 指定broker启动时的本机监听端口,给服务器端使用
-
advertised.listeners(如果没有配置,采用listeners相同的配置)
-
对外发布的访问IP和端口,注册到zookeeper中,给客户端使用
-
如果外网不能访问内网IP,则需要把advertised.listeners 配置如下
-
inernal http://kafka-0:9092 external http://公网IP:9093
-
客户端如果处于内网则通过主机名访问
-
客户端如果处于外网通过公网IP来访问内网
-
-