Microservices in nyssr.net are services that have only a message API. They are located in JARs that are loaded as a plugin. Unlike REST microservices, there are usually dozens or more services on one server, the node. This makes it easier to build distributed applications with very many small microservices.
Microservices register with a microservice registry on the network. To do this, they use the microservice ID, such as "UserDatabase", or even UUIDs, as well as their target address. You can freely choose on which node you install a microservice. The best place is often the one which is close to the users of the service. You can install the same microservice multiple times. The Microservice Registry ensures an even load of the services in the network by load balancing.
Users can easily address microservices. At the beginning it is enough to specify the microservice ID in the message envelope. If the target address is known, it can be entered directly in the message envelope. In any case, no configuration is required.
Since the Microservice Registry is also only a network service, it also has only one Message API. However, the registry internally announces its presence via network broadcasts. There is a plugin for each node that collects these announcements. This plugin offers two services:
- The IMicroServiceRegistryCollector collects the addresses of the microservice registries (there can be more than one) and makes them available.
- The IHelperForLocalMicroServices simplifies the registration of own microservices.
Helpers usually avoid the need to use the microservice registry API. However, we list them below for completeness.