Using the Driver¶
Connecting to a Cluster
¶
To take advantage of the higher level features of the
driver
, Goblin
provides the
Cluster
object.
Cluster
is used to create
multi-host clients that leverage connection pooling and sharing. Its interface
is based on the TinkerPop Java driver:
>>> async def print_results(gremlin='1+1'):
... # opens a cluster with default config
... cluster = await driver.Cluster.open('')
... client = await cluster.connect()
... # round robin requests to available hosts
... resp = await client.submit(gremlin=gremlin)
... async for msg in resp:
... print(msg)
... await cluster.close() # Close all connections to all hosts
And that is it. While Cluster
is
simple to learn and use, it provides a wide variety of configuration options.
Configuring Cluster
¶
Configuration options can be set on
Cluster
in one of two ways,
either passed as keyword arguments to
open
, or stored in
a configuration file and passed to the
open
using the kwarg
configfile. Configuration files can be either YAML or JSON format. Currently,
Cluster
uses the following
configuration:
Key | Description | Default |
---|---|---|
scheme | URI scheme, typically ‘ws’ or ‘wss’ for secure websockets | ‘ws’ |
hosts | A list of hosts the cluster will connect to | [‘localhost’] |
port | The port of the Gremlin Server to connect to, same for all hosts | 8182 |
ssl_certfile | File containing ssl certificate | ‘’ |
ssl_keyfile | File containing ssl key | ‘’ |
ssl_password | File containing password for ssl keyfile | ‘’ |
username | Username for Gremlin Server authentication | ‘’ |
password | Password for Gremlin Server authentication | ‘’ |
response_timeout | Timeout for reading responses from the stream | None |
max_conns | The maximum number of connections open at any time to this host | 4 |
min_conns | The minimum number of connection open at any time to this host | 1 |
max_times_acquired | The maximum number of times a single pool connection can be acquired and shared | 16 |
max_inflight | The maximum number of unresolved messages that may be pending on any one connection | 64 |
message_serializer | String denoting the class used for message serialization, currently only supports basic GraphSONMessageSerializer | ‘classpath’ |
For information related to improving driver performance, please refer to the performance section.