Hi, Vladimir

The answer is in API docs: "Gets *locally deployed service* with specified
name." [1]

That means {IgniteServices#service(String name)} returns only locally
deployed instance or null.

{IgniteServices#serviceProxy(…)} returns proxy to call instances across the
cluster. Might be used for load-balancing.

[1]
https://github.com/apache/ignite/blob/56975c266e7019f307bb9da42333a6db4e47365e/modules/core/src/main/java/org/apache/ignite/IgniteServices.java#L569

On Tue, Feb 25, 2020 at 3:51 PM Vladimir Steshin <vlads...@gmail.com> wrote:

> Hello, Igniters.
>
> Previous e-mail was with wrong topic 'daradu...@gmail.com' :)
>
> I got a question what exactly IgniteServices#service(String name) is
> supposed to return: reference to the object or a proxy for some reason like
> IgniteServices#serviceProxy(…)? Vyacheslav D., can you tell me your opinion?
>
> public interface MyService {
>
>                public void foo();
>
> }
>
> public class MyServiceImpl implements Service, MyService {
>
>                @Override public void foo(){ … }
>
>                public void bar(){ … };
>
> }
>
>
> // Is it required to support
>
> MyServiceImpl srvc = ignite.services().service(“myService”);
>
> srvc.foo();
>
> srvc.bar();
>
>
>
> // Or is the only correct way:
>
> MyService srvc = ignite.services().service(“myService”);
>
> srvc.foo();
>
>

-- 
Best Regards, Vyacheslav D.

Reply via email to