我正在学习卡夫卡,在这里阅读介绍部分
https://kafka.apache.org/documentation.html#introduction
特别是有关消费者的部分.在引言的倒数第二段中,它读到了
卡夫卡做得更好.通过在主题中具有并行性概念 - 分区 - ,Kafka能够在消费者流程池中提供订购保证和负载平衡.这是通过将主题中的分区分配给使用者组中的使用者来实现的,以便每个分区仅由该组中的一个使用者使用.通过这样做,我们确保使用者是该分区的唯一读者并按顺序使用数据.由于有许多分区,这仍然可以平衡许多消费者实例的负载.但请注意,除分区之外不能有更多的消费者实例.
我的困惑源于最后一句话,因为在该段落的正上方,作者描绘了两个消费者群体和一个4分区主题,消费者实例多于分区!
没有比分区更多的消费者实例也没有意义,因为那时分区将非常小,并且似乎为每个消费者实例创建新分区的开销会使Kafka陷入困境.我知道分区用于容错并减少任何一台服务器上的负载,但上述句子在分布式系统的环境中没有意义,该分布式系统应该能够一次处理数千个消费者.
我一直在尝试测试kafka安装并使用指南创建了一个生产者和消费者.尝试检索邮件时,出现以下错误:
WARN Session 0x0 for server null, unexpected error, closing socket connection and
attempting reconnect (org.apache.zookeeper.ClientCnxn)
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1146)
[2014-03-04 18:01:20,628] INFO Terminate ZkClient event thread. (org.I0Itec.zkclient.ZkEventThread)
[2014-03-04 18:01:21,315] INFO Opening socket connection to server kafka-test/192.xxxxxx.110:2182 (org.apache.zookeeper.ClientCnxn)
[2014-03-04 18:01:21,418] INFO Session: 0x0 closed (org.apache.zookeeper.ZooKeeper)
Exception in thread "main" org.I0Itec.zkclient.exception.ZkTimeoutException: Unable to connect to zookeeper server within timeout: 6000
at org.I0Itec.zkclient.ZkClient.connect(ZkClient.java:880)
at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:98)
at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:84)
at kafka.consumer.ZookeeperConsumerConnector.connectZk(ZookeeperConsumerConnector.scala:151)
at kafka.consumer.ZookeeperConsumerConnector.<init>(ZookeeperConsumerConnector.scala:112)
at kafka.consumer.ZookeeperConsumerConnector.<init>(ZookeeperConsumerConnector.scala:123)
at kafka.consumer.Consumer$.create(ConsumerConnector.scala:89)
at …Run Code Online (Sandbox Code Playgroud) 真的想在Java方法中初始化一些参数,例如
public void delete(String name, int user_id=0)
{
//method body
}
所以user_id不一定要通过.但是我得到了这个令牌无效的Eclipse错误.我该怎么做?
我试图按照以下文章为 Apache Kafka 运行性能测试
参考:
链接测试:https : //gist.github.com/jkreps/c7ddb4041ef62a900e6c
但是当我运行这个时:
bin/kafka-run-class.sh org.apache.kafka.clients.tools.ProducerPerformance test7 50000000 100 -1 acks=1 bootstrap.servers=localhost:9092 buffer.memory=67108864 batch.size=8196
Run Code Online (Sandbox Code Playgroud)
它显示错误:
Error: Could not find or load main class org.apache.kafka.clients.tools.ProducerPerformance
Run Code Online (Sandbox Code Playgroud)
是关于 kafka 版本吗?或者我需要从其他地方下载课程?
我的org.apache.kafka.clients.tools.ProducerPerformance类在哪里 ?请建议..