-
Notifications
You must be signed in to change notification settings - Fork 18
Registry server
Registry server is a central service that gathers and provides information about all instances of services running in the system. Te principal goal of the registry server is to allow location-transparent communication between different applications in the distributed system.
Basically, registry server provides two elementary functions:
- Service produces can register themselves in the registry with appropriate address
- Service consumers can look-up instances of the service in the registry. And all that with virtually no shared configuration between the two applications.
This diagram shows how it works: ![sericeProvider->serviceRegistry, client->ServiceRegistry, client->serviceProvider](http://yuml.me/diagram/scruffy/class/[Service Provider{bg:orange}]-1:I am FooService at http:...>[Registry Server], [FooClient] 2:I need FooService ->[Registry Server], [Registry Server] 3:Find it at http:... ->[FooClient], [FooClient{bg:orange}]-4:POST http:... >[Service Provider])
Shortly speaking, the client does not need to know the address of the service provider, it is only dependent on its contract.
But the service registry can be used for other purposes as well. These include:
Ratel provides two implementations of the registry server:
- lightweight, single node, in-memory Ratel server.
- Fault-tolerant, highly available Apache Zookeeper server.
In mission-critical, highly-available systems, we recommend usage of the Zookeeper server. The Ratel server is recommended for not-so-critical deployments or testing. Configuration page contains details on how to use either of the registry servers with Ratel library.