如何调用Ignite服务的所有已部署实例

时间:2018-01-19 13:46:19

标签: java service ignite

我在Apache Ignite群集中的群集组中部署了某项服务。 群集组大小为3。 服务实例总数= 3。 每个节点的实例= 1。

不管我什么时候想要执行服务,我只能获得一个节点上的服务实例的句柄。

但我想在所有节点上执行服务。 即。在所有三个节点上。

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

根据the documentation,您可以使用节点单例来实现服务的分发级别:

  

Node Singleton

     

您可以部署每个节点的单一服务。 Ignite将保证每个节点上始终存在一个服务实例。每当在群集组中启动新节点时,Ignite将在每个新节点上自动部署一个服务实例。

评论涉及以下代码段:

IgniteServices svcs = ignite.services();
//The .services() method has an overload, to which you can pass a cluster group
svcs.deployNodeSingleton("myNodeSingleton", new MyService());

其替代方案:

svcs.deployMultiple("myNodeSingleton", new MyService(), 0, 1);

我认为通过“服务实例”,您的意思是“运行相同服务实现的实例”。

答案 1 :(得分:2)

听起来你正在寻找远程服务调用。如果是这种情况,您可以使用服务代理:https://apacheignite.readme.io/docs/service-example#service-proxy