pub struct StreamParameters {
pub partitions: Vec<EventTypePartition>,
pub max_uncommitted_events: Option<StreamMaxUncommittedEvents>,
pub batch_limit: Option<StreamBatchLimit>,
pub stream_limit: Option<StreamLimit>,
pub batch_flush_timeout_secs: Option<StreamBatchFlushTimeoutSecs>,
pub batch_timespan_secs: Option<StreamBatchTimespanSecs>,
pub stream_timeout_secs: Option<StreamTimeoutSecs>,
pub commit_timeout_secs: Option<StreamCommitTimeoutSecs>,
}Expand description
Parameters for starting a new stream on a subscription
See also Nakadi Manual
§Environment
When initialized/updated from the environment the following environment variable
are used which by are by default prefixed with “NAKADION_” or a custom prefix “
- “STREAM_MAX_UNCOMMITTED_EVENTS”
- “STREAM_BATCH_LIMIT”
- “STREAM_LIMIT”
- “STREAM_BATCH_FLUSH_TIMEOUT_SECS”
- “STREAM_BATCH_TIMESPAN_SECS”
- “STREAM_TIMEOUT_SECS”
- “STREAM_COMMIT_TIMEOUT_SECS”
Fields§
§partitions: Vec<EventTypePartition>List of partitions to read from in this stream. If absent or empty - then the partitions will be automatically assigned by Nakadi.
max_uncommitted_events: Option<StreamMaxUncommittedEvents>The maximum number of uncommitted events that Nakadi will stream before pausing the stream. When in paused state and commit comes - the stream will resume.
batch_limit: Option<StreamBatchLimit>Maximum number of Events in each chunk (and therefore per partition) of the stream.
stream_limit: Option<StreamLimit>Maximum number of Events in this stream (over all partitions being streamed in this connection)
batch_flush_timeout_secs: Option<StreamBatchFlushTimeoutSecs>Maximum time in seconds to wait for the flushing of each chunk (per partition).
batch_timespan_secs: Option<StreamBatchTimespanSecs>Useful for batching events based on their received_at timestamp. For example, if batch_timespan is 5
seconds then Nakadi would flush a batch as soon as the difference in time between the first and the
last event in the batch exceeds 5 seconds. It waits for an event outside of the window to signal the
closure of a batch.
stream_timeout_secs: Option<StreamTimeoutSecs>Maximum time in seconds a stream will live before connection is closed by the server.
If 0 or unspecified will stream for 1h ±10min.
commit_timeout_secs: Option<StreamCommitTimeoutSecs>Maximum amount of seconds that Nakadi will be waiting for commit after sending a batch to a client. In case if commit does not come within this timeout, Nakadi will initialize stream termination, no new data will be sent. Partitions from this stream will be assigned to other streams. Setting commit_timeout to 0 is equal to setting it to the maximum allowed value - 60 seconds.
Implementations§
Source§impl StreamParameters
impl StreamParameters
Sourcepub fn from_env() -> Result<Self, Error>
pub fn from_env() -> Result<Self, Error>
Initializes all fields from environment variables prefixed with “NAKADION_”
Sourcepub fn from_env_prefixed<T: AsRef<str>>(prefix: T) -> Result<Self, Error>
pub fn from_env_prefixed<T: AsRef<str>>(prefix: T) -> Result<Self, Error>
Initializes all fields from environment variables prefixed with “[prefix]_”
The underscore is omitted if prefix is empty
Sourcepub fn from_env_type_names() -> Result<Self, Error>
pub fn from_env_type_names() -> Result<Self, Error>
Initializes all fields from environment variables without any prefix
Sourcepub fn fill_from_env(&mut self) -> Result<(), Error>
pub fn fill_from_env(&mut self) -> Result<(), Error>
Updates all not yet set fields from environment variables prefixed with “NAKADION_”
Sourcepub fn fill_from_env_type_names(&mut self) -> Result<(), Error>
pub fn fill_from_env_type_names(&mut self) -> Result<(), Error>
Updates all not yet set fields from environment variables without any prefix
Sourcepub fn fill_from_env_prefixed<T: AsRef<str>>(
&mut self,
prefix: T,
) -> Result<(), Error>
pub fn fill_from_env_prefixed<T: AsRef<str>>( &mut self, prefix: T, ) -> Result<(), Error>
Updates all not yet set fields from environment variables prefixed with “[prefix]_”
The underscore is omitted if prefix is empty
pub fn apply_defaults(&mut self)
Sourcepub fn partitions(self, partitions: Vec<EventTypePartition>) -> Self
pub fn partitions(self, partitions: Vec<EventTypePartition>) -> Self
List of partitions to read from in this stream. If absent or empty - then the partitions will be automatically assigned by Nakadi.
Sourcepub fn max_uncommitted_events<T: Into<StreamMaxUncommittedEvents>>(
self,
value: T,
) -> Self
pub fn max_uncommitted_events<T: Into<StreamMaxUncommittedEvents>>( self, value: T, ) -> Self
The maximum number of uncommitted events that Nakadi will stream before pausing the stream.
When in paused state and commit comes - the stream will resume.
Sourcepub fn batch_limit<T: Into<StreamBatchLimit>>(self, value: T) -> Self
pub fn batch_limit<T: Into<StreamBatchLimit>>(self, value: T) -> Self
Maximum number of Events in each chunk (and therefore per partition) of the stream.
Sourcepub fn stream_limit<T: Into<StreamLimit>>(self, value: T) -> Self
pub fn stream_limit<T: Into<StreamLimit>>(self, value: T) -> Self
Maximum number of Events in this stream (over all partitions being streamed in this connection)
Sourcepub fn batch_flush_timeout_secs<T: Into<StreamBatchFlushTimeoutSecs>>(
self,
value: T,
) -> Self
pub fn batch_flush_timeout_secs<T: Into<StreamBatchFlushTimeoutSecs>>( self, value: T, ) -> Self
Maximum time in seconds to wait for the flushing of each chunk (per partition).
Sourcepub fn batch_timespan_secs<T: Into<StreamBatchTimespanSecs>>(
self,
value: T,
) -> Self
pub fn batch_timespan_secs<T: Into<StreamBatchTimespanSecs>>( self, value: T, ) -> Self
Useful for batching events based on their received_at timestamp.
For example, if batch_timespan is 5
seconds then Nakadi would flush a batch as soon as the difference in time between the first and the
last event in the batch exceeds 5 seconds. It waits for an event outside of the window to signal the
closure of a batch.
Sourcepub fn stream_timeout_secs<T: Into<StreamTimeoutSecs>>(self, value: T) -> Self
pub fn stream_timeout_secs<T: Into<StreamTimeoutSecs>>(self, value: T) -> Self
Maximum time in seconds a stream will live before connection is closed by the server..
Sourcepub fn commit_timeout_secs<T: Into<StreamCommitTimeoutSecs>>(
self,
value: T,
) -> Self
pub fn commit_timeout_secs<T: Into<StreamCommitTimeoutSecs>>( self, value: T, ) -> Self
Maximum amount of seconds that Nakadi will be waiting for commit after sending a batch to a client.
In case if commit does not come within this timeout, Nakadi will initialize stream termination, no new data will be sent. Partitions from this stream will be assigned to other streams. Setting commit_timeout to 0 is equal to setting it to the maximum allowed value - 60 seconds.
Sourcepub fn effective_commit_timeout_secs(&self) -> u32
pub fn effective_commit_timeout_secs(&self) -> u32
Returns the configured value or the Nakadi default
Sourcepub fn effective_max_uncommitted_events(&self) -> u32
pub fn effective_max_uncommitted_events(&self) -> u32
Returns the configured value or the Nakadi default
Sourcepub fn effective_batch_limit(&self) -> u32
pub fn effective_batch_limit(&self) -> u32
Returns the configured value or the Nakadi default