Skip to content

1.0 Usage of ServiceManager

Anders Mikkelsen edited this page Dec 23, 2017 · 4 revisions

ServiceManager

After publish services and API's are available for consumption anywhere on the same cluster as the publisher, and locally. The ServiceManager will auto unregister all published and consumed services and APIs on shutdown of vertx.

Services

Publish:

Publishing is as easy as supplying the interface you wish to publish, and an object of a class that implements that interface. The default name is the getSimpleName() of the type, but you can supply a custom address as well.

ServiceManager.getInstance().publishService(HeartBeatService.class, heartBeatService);
ServiceManager.getInstance().publishService(HeartBeatService.class, "SOME_ADDRESS", heartBeatService);

or

ServiceManager.getInstance().publishService(HeartBeatService.class, heartBeatService, resultHandler);
ServiceManager.getInstance().publishService(HeartBeatService.class, "SOME_ADDRESS", heartBeatService, resultHandler);
Consume:

Consuming is preformed easily by supplying the Interface, this will deliver a service object asynchronously.

ServiceManager.getInstance().consumeService(HeartBeatService.class, resultHandler);
ServiceManager.getInstance().consumeService(HeartBeatService.class, "SOME_ADDRESS", resultHandler);
UnPublish:
ServiceManager.getInstance().unPublishService(HeartBeatService.class, Record service);
ServiceManager.getInstance().unPublishService("SOME_ADDRESS", Record service);

or

ServiceManager.getInstance().unPublishService(HeartBeatService.class, Record service, resultHandler);
ServiceManager.getInstance().unPublishService("SOME_ADDRESS", Record service, resultHandler);

API's

Publish:
ServiceManager.getInstance().publishApi(httpRecord);

or

ServiceManager.getInstance().publishApi(httpRecord, resultHandler);
Consume:
ServiceManager.getInstance().consumeApi(nameOfRecord, resultHandler);
UnPublish:
ServiceManager.getInstance().unPublishApi(record, resultHandler);