ProducerConf#

class ProducerConf#
Header-file:

#include <datasystem/stream/stream_config.h>

Namespace:

datasystem

生产者的配置信息。

公共成员

int64_t delayFlushTime = 5#

Send后最多延时相应时长后触发刷新缓冲区。 - delayFlushTime = 0:代表立即刷新 - delayFlushTime > 0,表示延迟刷新的时长,单位为毫秒

int64_t pageSize = 1024 * 1024ul#

代表生产者对应的缓冲Page大小, 单位字节。page写满后会触发刷新缓冲区。默认1MB, 必须大于0而且是4K的倍数。最大不能超过16MB。

uint64_t maxStreamSize = 100 * 1024 * 1024ul#

指定流在worker上最大能使用的共享内存大小, 单位字节。默认100MB, 范围[64KB, worker共享内存的大小],必须是page size的两倍或以上。

bool autoCleanup = false#

当一条流没有producer和consumer时是否自动清理。默认为false,不会自动清理。

uint64_t retainForNumConsumers = 0#

为N个消费者保留数据,已经关闭的消费者也会被统计。最大值16. - 默认值0,如果消费者不存在时,生产者发送的数据不会保留。 - N大于0,在第N个消费者消费数据前,生产者发送的数据会保留。

  • 注意:1、如果流启用了autoCleanup,生产者发送数据并关闭,然后再创建消费者的场景,不保留数据。2、worker如果发生主动缩容,即使设置了retainForNumConsumers,在没有创建远端consumer的情况下,也会导致数据丢失。

bool encryptStream = false#

配置流在worker推送数据时对数据进行加密。默认值为false,不启用加密。

uint64_t reserveSize = 0#

配置流预留共享内存空间。 - 默认值为0,这时预留的共享内存空间默认为pageSize。 - reserveSize配置值需要是pageSize的整数倍,最大值为maxStreamSize。

StreamMode streamMode = StreamMode::MPMC#

配置流的模式,默认值(MPMC), 详见 :cpp:class`StreamMode` 。