Skip to main content
The Location Service stores the routes to registered endpoints and returns them on lookup. It also load balances requests to Peers that share an Address of Record (AOR), with round-robin or least-sessions and optional session affinity. Routes live in memory or in Redis.

Docker image

fonoster/routr-location The image reads its configuration from /etc/routr/location.yaml (CONFIG_PATH).

Ports

Configuration file

The Location Service reads a YAML or JSON file and validates it against a JSON schema at startup.

Redis parameters

The service builds a Redis URL from these keys, so always set both host and port. Example: host=redis,port=6379,password=changeme.

Environment variables

gRPC contract

A Route includes the endpoint’s user, host, port, transport, advertised_host, advertised_port, expires, session_count, and the edge_port_ref of the EdgePort that holds its connection. FindRoutesRequest.backend selects the algorithm (ROUND_ROBIN or LEAST_SESSIONS) and with_session_affinity. See location.proto.

Minimal example

This configuration keeps routes in Redis.
This command runs the Location Service with that file.

Notes

  • The memory provider works only with a single Location Service instance. Use redis to run several instances or to use least-sessions.
  • With the redis provider, always set spec.cache.parameters. The host=localhost,port=6379 fallback applies only when the provider is written in uppercase (REDIS), which the schema does not accept.
  • least-sessions relies on the X-Session-Count header that Peers send when they register.