apache用亲和力点燃cumpute服务

时间:2018-03-26 07:30:16

标签: java microservices distributed ignite

我想使用服务运行服务/计算jub,但运行数据所在的作业。

从客户端

我将调用计算或服务代理,但需要服务在缓存数据附近运行。

我注意到你可以使用计算工作中的服务:

compute.run(new IgniteRunnable() {
  @ServiceResource(serviceName = "myCounterService");
  private MyCounterService counterSvc;

如果我在群集中的每个节点上部署服务,我可以使用带有near cach的计算来执行此操作吗?

 compute.affinityRun(CACHE_NAME, key, () -> { 
      // call my servie here...

也许有一种方法可以直接调用具有亲和力的服务代理,以避免使用comupte?

P.S。原因是服务会产生更多的缓存数据,我希望避免在节点和客户端之间来回传输大数据。

2 个答案:

答案 0 :(得分:2)

不幸的是,没有办法根据被调用方法的参数告诉Ignite,使用哪个服务实例。

当您需要在其中存储某些状态时,服务很好。否则计算工作同样有效。此外,计算作业在内部用于调用服务的方法。

因此,如果您没有任何状态,那么只需使用计算作业。否则,您可以尝试将所需资源注入计算作业:https://apacheignite.readme.io/docs/resource-injection

答案 1 :(得分:0)