如何使用带有二进制对象的点燃数据流,数据未加载到集群

How to use ignite data streamer with binary objects, data not loaded to cluster

我有一个基于 Java Pojo 的服务器缓存。

IgniteCache<Long, Asset> assets

配置

 CacheConfiguration<Long, Asset> CACHE = new CacheConfiguration()
    .setName(Asset.NAME)
        .setCacheMode(CacheMode.PARTITIONED)
        .setBackups(0)
        .setStoreKeepBinary(true)
        .setIndexedTypes(Long.class, Asset.class);
  }

我想使用使用 BinaryObjects 的客户端流媒体加载数据,因此我不依赖于 Pojo -> Asset

客户端没有异常,但我没有看到在集群上创建任何数据

    final IgniteDataStreamer<Long, BinaryObject> streamer = ignite.dataStreamer("Asset");
    streamer.perNodeBufferSize(10);
    streamer.allowOverwrite(false);
    streamer.keepBinary();

      long id = faker.random().nextLong(1000);
      BinaryObjectBuilder builder = binary.builder("Asset");

      builder.setField("id", id, Long.TYPE);
      builder.setField("name", "John Doe", String.class);
      builder.setField("timezone", TimeZone.getDefault(), TimeZone.class);
      final BinaryObject build = builder.build();
      streamer.addData(id, build);

没有数据加载到缓存。

pojo 和二进制对象之间是否存在不匹配?

我做错了什么?

注意:使用真实资产对象进行流式处理效果很好。

您需要 flush() 主播。这将强制它将排队的数据发送到服务器。在我的复制器中工作。

或者,将比 buffer size

更多的条目放入流中

您还可以设置 auto flush frequency,强制流光按设定的时间间隔刷新。