首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将ignite数据流与二进制对象、未加载到集群的数据一起使用

问如何将ignite数据流与二进制对象、未加载到集群的数据一起使用
EN

Stack Overflow用户
提问于 2021-05-10 17:43:17
回答 1查看 53关注 0票数 0

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

代码语言:javascript
复制
IgniteCache<Long, Asset> assets

配置

代码语言:javascript
复制
 CacheConfiguration<Long, Asset> CACHE = new CacheConfiguration()
    .setName(Asset.NAME)
        .setCacheMode(CacheMode.PARTITIONED)
        .setBackups(0)
        .setStoreKeepBinary(true)
        .setIndexedTypes(Long.class, Asset.class);
  }

我希望通过使用BinaryObjects的客户端拖缆加载数据,这样就不需要依赖Pojo ->资产

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

代码语言:javascript
复制
    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和二进制对象之间是否存在不匹配?

我做错了什么?

注意:使用真实的Asset对象进行流式处理可以很好地工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-11 04:26:18

您需要对拖缆执行flush()操作。这将强制它将排队的数据发送到服务器。在我的复制品里工作过。

或者,将比buffer size更多的条目放入流中

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67468187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档