vertx clustering:org.vertx.java.core.json.DecodeException:无法解码:意外字符(Clustering)

时间:2014-07-09 01:53:52

标签: hazelcast vert.x

一切都很好用是一个Vertx应用程序。但是当使用群集时,在使用Hazelcast群集时在事件总线中获取上述异常(没有流向处理程序的错误)。由于JSON传递的一些数据很大,我假设数据被截断并导致这种情况。从那以后,如果你没有将接收/发送缓冲区大小设置得足够大,那么在HTTP中会发生同样的错误,尽管在Hazelcast中将它们设置为:

System.setProperty("hazelcast.socket.receive.buffer.size", "128000");
System.setProperty("hazelcast.socket.send.buffer.size", "128000");

会修复它没有的东西。错误看起来像:

SEVERE: Unhandled exception
org.vertx.java.core.json.DecodeException: Failed to decode:Unexpected character ('c'    (code 99)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')

at [来源:java.io.StringReader@4d7f405e;行:1,专栏:18]     在org.vertx.java.core.json.impl.Json.decodeValue(Json.java:63)

任何想法?是的Json对象是大的(谢谢散列值)。

1 个答案:

答案 0 :(得分:0)

我已经使用vert.x构建了一个分布在集群中的高性能图像缩放器...我发现的类似限制是大于10mb的图像,我通过事件总线以字节格式发送(老实说不记得了)如果那些被截断或消息没有到达目的地) - 但是因为我不想让这么大的消息穿过集群我已经把数据放在一个SharedMap中然后发送一个只包含该元素的键的jsonmessage地图。如果它是用于计算的,你可以使用相同的行为,如果相反,你需要在群集中“共享”这些json,你可以评估压缩/解压缩 - afaik vert.x仍然不支持不同jvm实例之间的共享数据。 / p>

HTH, 卡罗