我得到Message size too large的例外,当我尝试发送邮件是超过1个MB的大小。当我尝试生成消息时,错误出现在我的客户端应用程序中。经过一番谷歌搜索后,我发现应该更改设置以增加最大消息大小。嗯,我在/kafka/config/server.properties文件中做到了。我添加了接下来的 2 个设置:
message.max.bytes=15728640
replica.fetch.max.bytes=15728640
Run Code Online (Sandbox Code Playgroud)
另外,我添加fetch.message.max.bytes=15728640到/kafka/config/consumer.properties文件中。所有其他设置保持默认。
我重新启动了 kafka 服务器,但仍然出现相同的错误。
PS Kafka 版本是 1.1.0。
这就是我产生消息的方式:
String json = gson.toJson(msg);
ProducerRecord<String, String> record = new ProducerRecord<>(kafkaProducerConfig.getTopic(), json);
long startTime = System.currentTimeMillis();
try {
RecordMetadata meta = producer.send(record).get(5, TimeUnit.SECONDS);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
} catch (TimeoutException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
我有15这个主题的分区,我在制作时没有提到分区键,默认分配的分区是什么?
我试图了解以下两个融合消费者配置的默认值如何协同工作。
max.poll.interval.ms - 根据汇合文档,默认值为 300,000 毫秒
session.timeout.ms - 根据汇合文档,默认值为 10,000 毫秒
heartbeat.interval.ms - 根据汇合文档,默认值为 3,000 毫秒
假设我在配置中使用这些默认值。现在我有一个问题。
例如,假设消费者每 3,000 毫秒发送一次心跳,我的第一次轮询发生在时间戳 t1,然后第二次轮询发生在 t1 + 20,00 毫秒。那么它会因为超过“session.timeout.ms”而导致重新平衡吗?或者当消费者确实按照预期时间戳发送心跳时,它会正常工作吗?
根据我的理解,非静态方法的同步将在对象级别被阻止,并且静态方法上的同步将在类实例级别被阻止.
基于此,请在下面找到我对各种场景的理解:
非静态同步方法访问然后其他非静态同步方法也阻塞
非静态同步方法访问然后非静态非同步方法不阻塞.
static synchrnize方法访问然后阻止该类实例的其他同步(静态和非静态)方法.
静态同步方法访问然后其他非静态非同步方法不会阻塞.
静态同步方法访问然后其他静态非同步方法不阻止.
静态同步方法访问然后阻止所有对象实例的非静态同步方法.
非静态synchrnize方法访问然后静态同步方法不阻塞
请帮我核实一下.