This commit is contained in:
罗祥
2019-05-29 15:43:07 +08:00
parent ca9ccf5441
commit aeb77a7b92
15 changed files with 410 additions and 237 deletions

View File

@ -73,7 +73,7 @@ public class SimpleProducer {
}
```
> 文章的所有示例代码可以从Github上进行下载[kafka-basis](https://github.com/heibaiying/BigData-Notes/tree/master/code/Kafka/kafka-basis)
> 文章的所有示例代码可以从Github上进行下载[kafka-basis](https://github.com/heibaiying/BigData-Notes/tree/master/code/Kafka/kafka-basis)
### 2.3 测试
@ -124,6 +124,17 @@ bin/kafka-topics.sh --create \
### 2.4 可能出现的问题
在这里可能出现的一个问题是即使你在程序中配置的服务器地址是完全正确的但是生产者程序在启动后却一直处于等待状态然后抛出连接超时的异常。这通常出现在你使用默认配置启动Kafka的情况下这时候只需要对`server.properties``listeners`配置进行如下修改即可:
```shell
# hadoop001 为我启动kafka服务的主机名你可以换成自己的主机名或者ip地址
listeners=PLAINTEXT://hadoop001:9092
```
## 二、发送消息
上面的示例程序调用了`send`方法发送消息后没有做任何操作,在这种情况下,我们是没有办法知道消息发送的结果。想要知道消息发送的结果,可以使用同步发送或者异步发送来实现。
@ -296,7 +307,7 @@ score:5, partition=0,
acks 参数指定了必须要有多少个分区副本收到消息,生产者才会认为消息写入是成功的:
- acks=0 生产者在成功写入消息之前不会等待任何来自服务器的响应;
- acks=0 消息发送出去就认为已经成功了,不会等待任何来自服务器的响应;
- acks=1 只要集群的首领节点收到消息,生产者就会收到一个来自服务器成功响应;
- acks=all :只有当所有参与复制的节点全部收到消息时,生产者才会收到一个来自服务器的成功响应。