标签: apache-kafka

有没有理由使用RabbitMQ而不是Kafka?

我被要求评估RabbitMQ而不是Kafka,但发现很难找到一个比Kafka做得更好的原因.有谁知道它在吞吐量,耐用性,延迟或易用性方面是否真的更好?

message-queue rabbitmq apache-kafka

267
推荐指数
12
解决办法
11万
查看次数

使用Kafka作为(CQRS)Eventstore.好主意?

虽然我之前遇到过Kafka,但我最近才意识到Kafka可能会被用作CQRS,eventstore(的基础).

Kafka支持的要点之一:

  • 事件捕获/存储,当然都是HA.
  • 发布/子结构
  • 能够重放事件日志,允许新订户在事后注册系统.

诚然,我不是100%精通CQRS /事件采购,但这看起来非常接近eventstore应该是什么.有趣的是:我真的找不到关于Kafka被用作事件存储的那么多,所以也许我必须遗漏一些东西.

那么,卡夫卡缺少什么东西才能成为一个好的活动商店?会有用吗?用它生产?对洞察力,链接等感兴趣

基本上,系统的状态是根据系统收到的事务/事件保存的,而不是仅仅保存系统的当前状态/快照,这是通常所做的.(将其视为会计总帐:所有交易最终都会累加到最终状态)这允许各种很酷的事情,但只需阅读所提供的链接.

cqrs event-sourcing dddd apache-kafka

200
推荐指数
6
解决办法
5万
查看次数

清除卡夫卡主题

我在本地计算机上将一条太大的消息推入了一个kafka消息主题,现在我收到一个错误:

kafka.common.InvalidMessageSizeException: invalid message size
Run Code Online (Sandbox Code Playgroud)

增加fetch.size这里并不理想,因为我实际上并不想接受那么大的消息.有没有办法在卡夫卡中清除主题?

purge apache-kafka

162
推荐指数
12
解决办法
16万
查看次数

使用Kafka进行数据建模?主题和分区

在使用新服务(例如非RDBMS数据存储或消息队列)时,我想到的第一件事是:"我应该如何构建数据?".

我已经阅读并观看了一些介绍性材料.特别是,例如,采用Kafka:一种用于日志处理的分布式消息系统,它写道:

  • "主题是与消息相关联的容器"
  • "最小的并行单元是主题的分区.这意味着......属于某个主题的特定分区的所有消息都将被消费者组中的消费者使用."

知道这一点,什么是一个很好的例子来说明如何使用主题和分区?应该什么时候成为主题?什么时候应该是分区?

举个例子,假设我的(Clojure)数据如下:

{:user-id 101 :viewed "/page1.html" :at #inst "2013-04-12T23:20:50.22Z"}
{:user-id 102 :viewed "/page2.html" :at #inst "2013-04-12T23:20:55.50Z"}
Run Code Online (Sandbox Code Playgroud)

主题应该基于user-idviewedat?分区怎么样?

我该如何决定?

apache-kafka

160
推荐指数
4
解决办法
5万
查看次数

什么决定卡夫卡消费者的抵消?

我对卡夫卡比较新.我已经做了一些实验,但有一些事情我不清楚消费者抵消.从我到目前为止所理解的情况来看,当消费者开始时,它将开始读取的偏移量由配置设置决定auto.offset.reset(如果我错了,请纠正我).

现在说,例如主题中有10条消息(偏移0到9),并且消费者在它关闭之前(或者在我杀死消费者之前)恰好消耗了其中的5条消息.然后说我重启那个消费者流程.我的问题是:

  1. 如果auto.offset.reset设置为smallest,它是否总是从偏移量0开始消耗?

  2. 如果auto.offset.reset设置为largest,是否将从偏移量5开始消耗?

  3. 关于这种情况的行为总是确定的吗?

如果我的问题中的任何内容不清楚,请不要犹豫.提前致谢.

java distributed-computing apache-kafka

151
推荐指数
3
解决办法
7万
查看次数

控制台生产者中的领导者不可用Kafka

我正在尝试使用Kafka.所有配置都正确完成但当我尝试从控制台生成消息时,我不断收到以下错误

WARN Error while fetching metadata with correlation id 39 : 
     {4-3-16-topic1=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
Run Code Online (Sandbox Code Playgroud)

kafka版本:2.11-0.9.0.0

有人可以帮忙,因为我无法在任何地方找到任何解决方案吗?

producer apache-kafka

147
推荐指数
12
解决办法
14万
查看次数

了解Kafka主题和分区

我开始学习Kafka用于企业解决方案.

在我的阅读中,我想到了一些问题:

  1. 当一个制作人正在制作一条消息时 - 它会指定它想要发送消息的主题,是吗?它关心分区吗?
  2. 当订阅者正在运行时 - 它是否指定了其组ID,以便它可以是同一主题的消费者群集的一部分,或者是该群体消费者感兴趣的几个主题?
  3. 每个消费者组在代理上是否有相应的分区,或者每个消费者都有一个分区?

  4. 作为经纪人创建的分区,因此不关心消费者?

  5. 由于这是一个每个分区都有一个偏移量的队列,因此消费者有责任指定它想要读取哪些消息吗?是否需要保存其状态?

  6. 从队列中删除邮件时会发生什么? - 例如:保留时间为3小时,然后时间过去了,两侧的偏移量如何处理?

apache-kafka kafka-consumer-api kafka-producer-api

136
推荐指数
3
解决办法
5万
查看次数

动物园管理员是卡夫卡必须的吗?

在Kafka中,我想只使用单个代理,单个主题和一个具有一个生产者和多个消费者的分区(每个消费者从代理获得自己的数据副本).鉴于此,我不希望使用Zookeeper的开销; 我不能只使用经纪人吗?为什么动物园管理员必须?

partitioning producer-consumer broker apache-kafka apache-zookeeper

96
推荐指数
8
解决办法
8万
查看次数

如何使用Kafka(超过15MB)发送大量邮件?

我使用Java Producer API将String-messages发送到Kafka V. 0.8.如果邮件大小约为15 MB,我会得到一个MessageSizeTooLargeException.我试图设置message.max.bytes为40 MB,但我仍然得到例外.小消息没有问题.

(例外情况出现在制作人中,我在此应用程序中没有使用者.)

我该怎么做才能摆脱这种异常?

我的示例生产者配置

private ProducerConfig kafkaConfig() {
    Properties props = new Properties();
    props.put("metadata.broker.list", BROKERS);
    props.put("serializer.class", "kafka.serializer.StringEncoder");
    props.put("request.required.acks", "1");
    props.put("message.max.bytes", "" + 1024 * 1024 * 40);
    return new ProducerConfig(props);
}
Run Code Online (Sandbox Code Playgroud)

错误日志:

4709 [main] WARN  kafka.producer.async.DefaultEventHandler  - Produce request with correlation id 214 failed due to [datasift,0]: kafka.common.MessageSizeTooLargeException
4869 [main] WARN  kafka.producer.async.DefaultEventHandler  - Produce request with    correlation id 217 failed due to [datasift,0]: kafka.common.MessageSizeTooLargeException
5035 [main] WARN  kafka.producer.async.DefaultEventHandler  - Produce …
Run Code Online (Sandbox Code Playgroud)

java apache-kafka

95
推荐指数
7
解决办法
10万
查看次数

Apache Kafka与Apache Storm

Apache Kafka:分布式消息传递系统
Apache Storm:实时消息处理

我们如何在实时数据管道中使用这两种技术来处理事件数据?

就实时数据管道而言,在我看来,两者都是相同的.我们如何在数据管道上使用这两种技术?

data-integration apache-kafka apache-storm

89
推荐指数
5
解决办法
5万
查看次数