MemoryDiscovery

Discovery service that keeps connections in memory.

Implements: IDiscovery, IReconfigurable

Description

The MemoryDiscovery class allows you to create discovery services that keep connections in memory.

Configuration parameters

  • [connection key 1]:
  • : connection parameters for key 1
  • [connection key 2]:
  • : connection parameters for key N

Constructors

Creates a new instance of discovery service.

MemoryDiscovery(config: ConfigParams = None)

  • config: ConfigParams - (optional) configuration with connection parameters.

Instance methods

configure

Configures component by passing configuration parameters.

configure(config: ConfigParams)

  • config: ConfigParams - configuration parameters to be set.

read_connections

Reads connections from configuration parameters. Each section represents an individual Connection params

read_connections(connections: ConfigParams)

  • connections: ConfigParams - configuration parameters to be read

register

Registers connection parameters into the discovery service.

register(context: Optional[IContext], key: str, connection: ConnectionParams): ConnectionParams

  • context: IContext - (optional) a context to trace execution through a call chain.
  • key: str - a key to uniquely identify the connection parameters.
  • connection: ConnectionParams - a connection to be registered.
  • returns: ConnectionParams - the registered connection parameters.

resolve_all

Resolves all connection parameters by their key.

resolve_all(context: Optional[IContext], key: str): List[ConnectionParams]

  • context: IContext - (optional) a context to trace execution through a call chain.
  • key: str - a key to uniquely identify the connections.
  • returns: List[ConnectionParams] - a list with resolved connections.

resolve_one

Resolves a single connection parameters by its key.

resolve_one(context: Optional[IContext], key: str): ConnectionParams

  • context: IContext - (optional) a context to trace execution through a call chain.
  • key: str - a key to uniquely identify the connection.
  • returns: ConnectionParams - a resolved connection.

Examples

config = ConfigParams.from_tuples(
    "key1.host", "10.1.1.100",
    "key1.port", "8080",
    "key2.host", "10.1.1.100",
    "key2.port", "8082"
)

discovery = MemoryDiscovery()
discovery.configure(config)

connection = discovery.resolve_one("123", "key1")
# Result: host=10.1.1.100;port=8080

See also