【问题标题】:vertx clustering: org.vertx.java.core.json.DecodeException: Failed to decode:Unexpected character (Clustering)vertx集群:org.vertx.java.core.json.DecodeException:解码失败:意外字符(集群)
【发布时间】:2014-07-09 01:53:52
【问题描述】:

一切都很好是一个多合一的 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')

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

有什么想法吗??是的,Json 对象很大(感谢散列值)。

【问题讨论】:

    标签: hazelcast vert.x


    【解决方案1】:

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

    HTH, 卡罗

    【讨论】:

    • 感谢您的赞赏。原来问题是试图通过设定的数字发送一个数字的自定义实现。在 inproc 模式下工作,因为它是一个 memcopy,然后在集群模式下死亡,因为它不知道如何反序列化它!
    猜你喜欢
    • 2020-10-28
    • 2016-07-03
    • 2015-11-12
    • 1970-01-01
    • 2011-04-04
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多