我正在使用最新版本的骆驼和Netty与Spring,并且具有以下定义:
<bean id="transformIncoming" class="com.hugin.camel.transform.IncomingMessageTransformer"/>
<from uri="netty4:tcp://127.0.0.1:8888?allowDefaultCodec=false&encoder=#byteArrayEncoder"/>
<route>
<transform>
<method ref="transformIncoming" method="process"></method>
</transform>
我定义了一个类来处理传入的tcp请求:
@Component
public class IncomingMessageTransformer implements Processor {
public void process(Exchange in) throws Exception {
Message inm = in.getIn();
byte[] buf = inm.getBody(byte[].class);
我的问题是,不管传入消息的大小,buf变量永远不会超过1024字节,因此我的请求被截断。
根据组件定义,receiveBufferSize应该是65536字节。我如何处理大的请求?
< code>receiveBufferSize属性仅在UDP使用者中用于配置< code>SO_RCVBUF套接字选项。它不用于TCPendpoint。
您不应该依赖 Camel 来实现您的协议:如果没有适当的解码器,则会为每个 tcp 帧发送一条消息,并且您无法保证帧大小。
您应该在Netty中实现您的协议,并生成然后由camel处理的对象。Netty拥有通过tcp流重组协议所需的所有工具。
我是Kafka的新手。我在网上读了很多关于Kafka制作人和Kafka消费者的说明。我成功地实现了前者,它可以向Kafka集群发送消息。然而,我没有完成后一个。请帮我解决这个问题。我看到我的问题像StackOverflow上的一些帖子,但我想更清楚地描述一下。我在虚拟盒子的Ubuntu服务器上运行Kafka和Zookeeper。使用1个Kafka集群和1个Zookeeper集群的最简单配置(几乎是
我不知道是怎么回事,我的java客户机消费者用@KafkaListener注释后没有收到任何消息。当我通过命令行创建消费者时,它可以工作。同样,Producer也能按预期工作(同样在java中)。有人能帮我理解这种行为吗? application.yml 生产者配置: 消费者配置: 制作人 Spring控制器: 这是我的控制台输出,正如您所看到的,它发送一条消息,但该方法不接收任何内容。如果我没有
我是Kafka的新手,我有一个使用Java Apache Camel库实现的Kafka消费者。我发现的问题是-消费者花了很长的时间(>15分钟)来处理很少的消息-这对于我们的用例来说是很好的。 需要一些配置帮助,因为相同的消息会在15分钟后重新发送,如果在15分钟内没有处理(我相信线程控制不会返回)。我想这可能是默认间隔,不确定这是哪一个属性。 那么,我必须在哪里修复配置 生产者级别,以便它不重新
Kafka消费者不接收在消费者开始之前产生的消息。 ConsumerRecords始终为空 虽然,如果我启动我的消费者比生产者比它接收消息。(Kafka-客户端版本2.4.1)
我是Kafka的新手,运行一个简单的Kafka消费者/生产者的例子,就像在Kafka消费者和KafkaProducer上给出的那样。当我从终端运行消费者时,消费者正在接收消息,但我不能使用Java代码监听。我也在StackoverFlow上搜索了类似的问题(链接: Link1,Link2),并尝试了解决方案,但似乎没有什么对我有用。kafka版本:和相应的maven依赖在pom中使用。 Java生
我可以在命令行上针对Kafka位置安装发送和接收消息。我也可以通过Java代码发送消息。这些消息显示在Kafka命令提示符中。我还有一个Kafka消费者的Java代码。代码昨天收到了消息。但是今天早上没有收到任何消息。代码没有更改。我想知道属性配置是否不太正确。这是我的配置: 制片人: 生产记录设置为 消费者: 对于Java代码: 少了什么?