Despite the fact that Hazelcast is a data distribution (particularly, peer-to-peer) platform for Java, its group communication mechanics can be utilized for remote procedure calls in a similar fashion to JGroups remote procedure calls. Further, to ease this workflow, Hazelcast provides distributed executor service to execute
Runnable instances on the remote cluster members. Now, let's glue things together for making remote procedure calls on Hazelcast cluster members.
Assuming that you have some familiarity with executor services, check out below
SimpleRPC class, which makes use of the Hazelcast executor service to invoke a
Call instance on every cluster member.
SimpleRPC is a singleton, whose instance is accessible via its
getInstance() method, foreign classes can easily invoke its
callMe() instance method. Now let's implement the
Call class, which is anticipated to encapsulate the necessary mechanics to make a call to
SimpleRPC.getInstance().callMe() on each cluster member.