This feature is available with Conduktor Scale Plus and Conduktor Exchange only.
Overview
The cache is designed to improve the performance of record retrieval in a Kafka by caching records. It intercepts produce and fetch requests, caching produced records and serving fetched records from the cache, if available.Benefits
Benefits include:- Improved performance. By serving fetched records from the cache, subsequent fetch requests can be served faster, reducing the overall latency and improving the response time for clients.
- Reduced load on Kafka cluster. With the cache Interceptor in place, the Kafka cluster experiences reduced load during fetch requests since a portion of the requests can be satisfied from the cache directly, reducing the number of requests hitting the cluster.
- Enhanced scalability. The cache Interceptor provides an additional layer of scalability by distributing the workload between the cache and the Kafka cluster. It can handle a higher volume of fetch requests without overwhelming the Kafka cluster.
Configuration options
| Config | Type | Default | Description |
|---|---|---|---|
| topic | String | .* | Topic regex, topic that match this regex will have the Interceptor applied. If no value is set, it will be applied to all topics. |
| cacheConfig | Cache config | Configuration for cache. |
CacheConfig
| Config | Type | Description |
|---|---|---|
| type | enum (IN_MEMORY, ROCKSDB) | Default: ROCKSDB. |
| rocksdbConfig | Rocksdb config | Configuration for RocksDB cache. |
| inMemConfig | InMem config | Configuration for in-memory cache. |
RocksdbConfig
| Config | Type | Default | Description |
|---|---|---|---|
| dbPath | String | caching_storage | Path to RocksDB database. |
| cacheSize | long | 104857600 | RocksDB cache size in bytes (default: 100 MB). |
InMemConfig
| Config | Type | Default | Description |
|---|---|---|---|
| cacheSize | int | 10000 | Maximum number of entries in the in-memory cache. |
| expireTimeMs | long | 300000 | Cache expiration time in milliseconds (5 minutes). |
Example
- curl
- Conduktor CLI