我被要求评估RabbitMQ而不是Kafka,但发现很难找到一个比Kafka做得更好的原因.有谁知道它在吞吐量,耐用性,延迟或易用性方面是否真的更好?
虽然我之前遇到过Kafka,但我最近才意识到Kafka可能会被用作CQRS,eventstore(的基础).
Kafka支持的要点之一:
诚然,我不是100%精通CQRS /事件采购,但这看起来非常接近eventstore应该是什么.有趣的是:我真的找不到关于Kafka被用作事件存储的那么多,所以也许我必须遗漏一些东西.
那么,卡夫卡缺少什么东西才能成为一个好的活动商店?会有用吗?用它生产?对洞察力,链接等感兴趣
基本上,系统的状态是根据系统收到的事务/事件保存的,而不是仅仅保存系统的当前状态/快照,这是通常所做的.(将其视为会计总帐:所有交易最终都会累加到最终状态)这允许各种很酷的事情,但只需阅读所提供的链接.
我在本地计算机上将一条太大的消息推入了一个kafka消息主题,现在我收到一个错误:
kafka.common.InvalidMessageSizeException: invalid message size
Run Code Online (Sandbox Code Playgroud)
增加fetch.size这里并不理想,因为我实际上并不想接受那么大的消息.有没有办法在卡夫卡中清除主题?
在使用新服务(例如非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-id?viewed?at?分区怎么样?
我该如何决定?
我对卡夫卡比较新.我已经做了一些实验,但有一些事情我不清楚消费者抵消.从我到目前为止所理解的情况来看,当消费者开始时,它将开始读取的偏移量由配置设置决定auto.offset.reset(如果我错了,请纠正我).
现在说,例如主题中有10条消息(偏移0到9),并且消费者在它关闭之前(或者在我杀死消费者之前)恰好消耗了其中的5条消息.然后说我重启那个消费者流程.我的问题是:
如果auto.offset.reset设置为smallest,它是否总是从偏移量0开始消耗?
如果auto.offset.reset设置为largest,是否将从偏移量5开始消耗?
关于这种情况的行为总是确定的吗?
如果我的问题中的任何内容不清楚,请不要犹豫.提前致谢.
我正在尝试使用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
有人可以帮忙,因为我无法在任何地方找到任何解决方案吗?
我开始学习Kafka用于企业解决方案.
在我的阅读中,我想到了一些问题:
每个消费者组在代理上是否有相应的分区,或者每个消费者都有一个分区?
作为经纪人创建的分区,因此不关心消费者?
由于这是一个每个分区都有一个偏移量的队列,因此消费者有责任指定它想要读取哪些消息吗?是否需要保存其状态?
从队列中删除邮件时会发生什么? - 例如:保留时间为3小时,然后时间过去了,两侧的偏移量如何处理?
在Kafka中,我想只使用单个代理,单个主题和一个具有一个生产者和多个消费者的分区(每个消费者从代理获得自己的数据副本).鉴于此,我不希望使用Zookeeper的开销; 我不能只使用经纪人吗?为什么动物园管理员必须?
partitioning producer-consumer broker apache-kafka apache-zookeeper
我使用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) Apache Kafka:分布式消息传递系统
Apache Storm:实时消息处理
我们如何在实时数据管道中使用这两种技术来处理事件数据?
就实时数据管道而言,在我看来,两者都是相同的.我们如何在数据管道上使用这两种技术?
apache-kafka ×10
java ×2
apache-storm ×1
broker ×1
cqrs ×1
dddd ×1
partitioning ×1
producer ×1
purge ×1
rabbitmq ×1