Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java apache ignite cumpute服务具有亲和力_Java_Microservices_Distributed_Ignite - Fatal编程技术网

Java apache ignite cumpute服务具有亲和力

Java apache ignite cumpute服务具有亲和力,java,microservices,distributed,ignite,Java,Microservices,Distributed,Ignite,我想使用服务在ignite上运行服务/计算jub,但在数据所在的位置运行作业 从客户端,我将调用计算或服务代理,但需要服务在缓存数据附近运行 我注意到您可以使用计算作业中的服务: compute.run(new IgniteRunnable() { @ServiceResource(serviceName = "myCounterService"); private MyCounterService counterSvc; 如果我在集群中的每个节点上部署服务,我可以使用compute

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

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

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

compute.run(new IgniteRunnable() {
  @ServiceResource(serviceName = "myCounterService");
  private MyCounterService counterSvc;
如果我在集群中的每个节点上部署服务,我可以使用compute with near-cach来实现这一点吗

 compute.affinityRun(CACHE_NAME, key, () -> { 
      // call my servie here...
也许有一种方法可以直接调用具有关联性的服务代理来避免使用comupte


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

您可以使用您可以使用不幸的是,无法根据所调用方法的参数来告诉Ignite要使用哪个服务实例

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


因此,如果没有任何状态,那么只需使用计算作业。否则,您可以尝试将所需资源注入计算作业:

不幸的是,无法根据所调用方法的参数来告诉Ignite要使用哪个服务实例

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


因此,如果没有任何状态,那么只需使用计算作业。否则,您可以尝试向计算作业中注入所需的资源:

不,这不是我想要的。我希望所有节点都包含服务,只有靠近数据的节点才接受作业否,这不是我想要的。我希望所有节点都包含服务,只有靠近数据的节点才能接受作业我主要关心的是每次有新对象时都要传递一个大的comupte代码,通过服务,我可以使用服务器节点部署类,并使用代理从客户端远程调用它。我必须以某种方式将comupte和service结合起来…@Gadi实际上,代码不会每次都通过网络发送。它将只部署一次,并且在连续调用期间将使用相同的类。将只发送数据。对于每次持有新密钥的计算作业,这是真的吗?我的计划是通过CacheAPI推送新的缓存条目,然后在此键上运行计算作业->直接在服务器上生成更多缓存对象。你有这样的代码示例吗?@Gadi,是的,每次都会使用相同的类。只有数据会改变。您可以在文档中找到affinityRun的代码示例:这只适用于原语,如果您需要POJO,那么您仍然需要在服务器上预部署它们。Ignite无法序列化我的计算代码。我主要关心的是每次我有一个新对象时传递一个大的comupte代码,通过服务,我可以使用服务器节点部署该类,并使用代理从客户端远程调用它。我必须以某种方式将comupte和service结合起来…@Gadi实际上,代码不会每次都通过网络发送。它将只部署一次,并且在连续调用期间将使用相同的类。将只发送数据。对于每次持有新密钥的计算作业,这是真的吗?我的计划是通过CacheAPI推送新的缓存条目,然后在此键上运行计算作业->直接在服务器上生成更多缓存对象。你有这样的代码示例吗?@Gadi,是的,每次都会使用相同的类。只有数据会改变。您可以在文档中找到affinityRun的代码示例:这只适用于原语,如果您需要POJO,那么您仍然需要在服务器上预部署它们。Ignite无法序列化我的计算代码。