blob: 90b1249ca4435981eb6cf1ea5e562c8a23b46a12 [file] [log] [blame] [view]
---
sidebar_position: 2
---
# Configuration
## Connection Setup
```python
import fluss
config = fluss.Config({"bootstrap.servers": "127.0.0.1:9123"})
conn = await fluss.FlussConnection.create(config)
```
The connection also supports context managers:
```python
with await fluss.FlussConnection.create(config) as conn:
...
```
## Connection Configurations
| Key | Description | Default |
|---------------------------------------|---------------------------------------------------------------------------------------|--------------------|
| `bootstrap.servers` | Coordinator server address | `127.0.0.1:9123` |
| `writer.request-max-size` | Maximum request size in bytes | `10485760` (10 MB) |
| `writer.acks` | Acknowledgment setting (`all` waits for all replicas) | `all` |
| `writer.retries` | Number of retries on failure | `2147483647` |
| `writer.batch-size` | Batch size for writes in bytes | `2097152` (2 MB) |
| `writer.batch-timeout-ms` | The maximum time to wait for a writer batch to fill up before sending. | `100` |
| `writer.bucket.no-key-assigner` | Bucket assignment strategy for tables without bucket keys: `sticky` or `round_robin` | `sticky` |
| `scanner.remote-log.prefetch-num` | Number of remote log segments to prefetch | `4` |
| `remote-file.download-thread-num` | Number of threads for remote log downloads | `3` |
| `scanner.remote-log.read-concurrency` | Streaming read concurrency within a remote log file | `4` |
| `scanner.log.max-poll-records` | Max records returned in a single poll() | `500` |
| `connect-timeout` | TCP connect timeout in milliseconds | `120000` |
| `security.protocol` | `PLAINTEXT` (default) or `sasl` for SASL auth | `PLAINTEXT` |
| `security.sasl.mechanism` | SASL mechanism (only `PLAIN` is supported) | `PLAIN` |
| `security.sasl.username` | SASL username (required when protocol is `sasl`) | (empty) |
| `security.sasl.password` | SASL password (required when protocol is `sasl`) | (empty) |
## SASL Authentication
To connect to a Fluss cluster with SASL/PLAIN authentication enabled:
```python
config = fluss.Config({
"bootstrap.servers": "127.0.0.1:9123",
"security.protocol": "sasl",
"security.sasl.mechanism": "PLAIN",
"security.sasl.username": "admin",
"security.sasl.password": "admin-secret",
})
conn = await fluss.FlussConnection.create(config)
```
## Connection Lifecycle
Remember to close the connection when done:
```python
conn.close()
```