Questions tagged «apache-kafka»

Apache Kafka是一个分布式流平台,旨在存储和处理高吞吐量数据流。


7
将Kafka用作(CQRS)事件存储。好主意?
虽然我已经遇到卡夫卡之前,我刚刚意识到卡夫卡也许可以作为(基础)一CQRS,eventstore。 Kafka支持的主要观点之一: 事件捕获/存储,当然都是HA。 Pub / sub架构 重播事件日志的能力,使新订户可以在事件发生后向系统注册。 诚然,我不是100%精通CQRS /事件源,但是这似乎与事件存储区应该的非常接近。有趣的是:关于Kafka用作事件存储,我实在找不到太多,所以也许我错过了一些东西。 那么,卡夫卡缺少什么东西可以使其成为一个好的活动库?能行吗?用它生产吗?对洞察力,链接等感兴趣 基本上,系统状态是根据系统曾经收到的事务/事件保存的,而不仅仅是保存系统的当前状态/快照(通常这样做)。(将其视为会计中的总帐:最终所有事务都加到最终状态)。这允许进行各种有趣的事情,但请仔细阅读提供的链接。

3
了解Kafka主题和分区
我开始学习用于企业解决方案目的的Kafka。 在阅读期间,我想到了一些问题: 生产者在生成消息时-将指定要将消息发送到的主题,对吗?它关心分区吗? 当订户运行时-是否指定其组ID,以便它可以成为同一主题或该组消费者感兴趣的多个主题的一组消费者的一部分? 每个消费者组在代理上都有对应的分区还是每个消费者都有一个分区? 分区是由代理创建的,因此对于消费者而言不是问题吗? 由于这是每个分区都有偏移量的队列,使用方是否有责任指定要读取的消息?是否需要保存其状态? 从队列中删除消息后会发生什么?-例如:保留时间为3小时,然后时间过去了,双方如何处理偏移量?

18
清除Kafka主题
有没有办法清除kafka中的主题? 我将太大的消息推送到本地计算机上的kafka消息主题中,现在出现错误: kafka.common.InvalidMessageSizeException: invalid message size 在fetch.size这里增加s 并不理想,因为我实际上并不希望接受那么大的消息。

23
主持人无法在Console Producer中使用Kafka
我正在尝试使用Kafka。 所有配置都正确完成,但是当我尝试从控制台生成消息时,我不断收到以下错误 WARN Error while fetching metadata with correlation id 39 : {4-3-16-topic1=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient) 卡夫卡版本: 2.11-0.9.0.0

3
是什么决定了卡夫卡的消费者补偿?
我对Kafka比较陌生。我已经做了一些实验,但是对于消费者补偿我有些不清楚。根据到目前为止的了解,使用方启动时,它将开始读取的偏移量由配置设置确定auto.offset.reset(如果我错了,请纠正我)。 现在说,例如,该主题中有10条消息(偏移量0到9),一个消费者在崩溃之前(或我杀死该消费者之前)碰巧消耗了其中的5条消息。然后说我重新启动该使用者进程。我的问题是: 如果将auto.offset.reset设置为smallest,它是否总是从偏移量0开始消耗? 如果将auto.offset.reset设置为largest,它将从偏移量5开始消耗吗? 关于这种情况的行为是否总是确定性的? 如果我的问题不清楚,请随时发表评论。提前致谢。

4
用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"} 主题应该基于user-id吗?viewed?at?分区呢? 我该如何决定?
168 apache-kafka 


7
如何使用Kafka(超过15MB)发送大型邮件?
我使用Java Producer API将字符串消息发送到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); } 错误日志: 4709 [main] WARN kafka.producer.async.DefaultEventHandler - Produce request with correlation id 214 failed …
118 java  apache-kafka 


7
Apache Kafka与Apache Storm
Apache Kafka:分布式消息传递系统 Apache Storm:实时消息处理 我们如何在实时数据管道中使用这两种技术来处理事件数据? 在实时数据管道方面,在我看来,两者的工作完全相同。我们如何在数据管道上同时使用这两种技术?

2
Kafka:消费者API与流API
我最近开始学习Kafka,并遇到了这些问题。 Consumer和Stream之间有什么区别?对我而言,如果有任何工具/应用程序消费来自Kafka的消息,则是Kafka世界中的消费者。 Stream有何不同,因为它也会从Kafka消费或产生消息?为什么需要它,因为我们可以使用消费者API编写自己的消费者应用程序并根据需要对其进行处理,或者将其从消费者应用程序发送到Spark? 我在此方面使用了Google,但没有得到任何好的答案。抱歉,这个问题太琐碎了。

3
Kafka基于键/值对的消息传递的目的是什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 11个月前关闭。 改善这个问题 所有的例子的卡夫卡| 生产者显示ProducerRecord的键/值对不仅具有相同的类型(所有示例均显示<String,String>),而且具有相同的值。例如: producer.send(new ProducerRecord<String, String>("someTopic", Integer.toString(i), Integer.toString(i))); 但是在Kafka文档中,我似乎找不到解释键/值概念(及其潜在目的/效用)的地方。在传统的消息传递中(ActiveMQ,RabbitMQ等),我总是在特定的主题/队列/交换中触发一条消息。但是,Kafka是第一个似乎要求键/值对而不只是常规字符串的消息的经纪人。 所以我问:要求生产者发送KV对的目的/用途是什么?

2
向Kafka发送消息时是否需要密钥?
KeyedMessage<String, byte[]> keyedMessage = new KeyedMessage<String, byte[]>(request.getRequestTopicName(), SerializationUtils.serialize(message)); producer.send(keyedMessage); 目前,我正在发送不带任何键的消息作为键控消息的一部分,它仍然可以使用delete.retention.ms吗?我是否需要发送密钥作为消息的一部分?将密钥作为消息的一部分,这很好吗?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.