Class KafkaOptionsExtension
- Namespace
- MASES.EntityFrameworkCore.KNet.Infrastructure.Internal
- Assembly
- MASES.EntityFrameworkCore.KNet.dll
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public class KafkaOptionsExtension : IDbContextOptionsExtension, IKafkaSingletonOptions, ISingletonOptions
- Inheritance
-
KafkaOptionsExtension
- Implements
- Inherited Members
- Extension Methods
Constructors
KafkaOptionsExtension()
Initializer
public KafkaOptionsExtension()
KafkaOptionsExtension(KafkaOptionsExtension)
Initializer
protected KafkaOptionsExtension(KafkaOptionsExtension copyFrom)
Parameters
copyFrom
KafkaOptionsExtension
Properties
ApplicationId
The application id
public virtual string ApplicationId { get; }
Property Value
BootstrapServers
The bootstrap servers of the Apache Kafka cluster
public virtual string BootstrapServers { get; }
Property Value
ClusterId
Internal property
public virtual string ClusterId { get; }
Property Value
ConsumerConfig
The optional ConsumerConfigBuilder used when UseCompactedReplicator is true
public virtual ConsumerConfigBuilder ConsumerConfig { get; }
Property Value
DatabaseName
Database name means whe prefix of the topics associated to the instance of KafkaDbContext
public virtual string DatabaseName { get; }
Property Value
DefaultConsumerInstances
Default consumr instances used in conjunction with UseCompactedReplicator
public virtual int? DefaultConsumerInstances { get; }
Property Value
- int?
DefaultNumPartitions
Default number of partitions associated to each topic
public virtual int DefaultNumPartitions { get; }
Property Value
DefaultReplicationFactor
Default replication factor associated to each topic
public virtual short DefaultReplicationFactor { get; }
Property Value
Info
Information/metadata about the extension.
public virtual DbContextOptionsExtensionInfo Info { get; }
Property Value
KeySerDesSelectorType
The optional Type to use for key serialization selection
Default value is DefaultKEFCoreSerDes.Key<T>, any custom Type shall implement ISerDesSelector<T>
public virtual Type KeySerDesSelectorType { get; }
Property Value
OnChangeEvent
The optional handler to be used to receive notification when the back-end triggers a data change.
public virtual Action<EntityTypeChanged> OnChangeEvent { get; }
Property Value
Remarks
Works if UseCompactedReplicator is true
ProducerConfig
The optional ProducerConfigBuilder
public virtual ProducerConfigBuilder ProducerConfig { get; }
Property Value
StreamsConfig
The optional StreamsConfig used when UseCompactedReplicator is false
public virtual StreamsConfigBuilder StreamsConfig { get; }
Property Value
TopicConfig
The optional TopicConfigBuilder used when topics shall be created
public virtual TopicConfigBuilder TopicConfig { get; }
Property Value
UseByteBufferDataTransfer
Setting this property to true the engine prefers to use ByteBuffer data exchange in serializer instances
public virtual bool UseByteBufferDataTransfer { get; }
Property Value
UseCompactedReplicator
Use KNetCompactedReplicator<K, V> instead of Apache Kafka Streams
public virtual bool UseCompactedReplicator { get; }
Property Value
UseDeletePolicyForTopic
Use delete cleanup policy when a topic is created
public virtual bool UseDeletePolicyForTopic { get; }
Property Value
UseEnumeratorWithPrefetch
Setting this property to true the engine prefers to use enumerator instances able to do a prefetch on data speeding up execution
public virtual bool UseEnumeratorWithPrefetch { get; }
Property Value
Remarks
Used only if UseCompactedReplicator is false and UseKNetStreams is true, not available in EFCore 6.
UseKNetStreams
Use KNet version of Apache Kafka Streams instead of standard Apache Kafka Streams
public virtual bool UseKNetStreams { get; }
Property Value
UseNameMatching
Set to false to avoid match of IEntityTypes using Name
public virtual bool UseNameMatching { get; }
Property Value
UsePersistentStorage
Use persistent storage when Apache Kafka Streams is in use
public virtual bool UsePersistentStorage { get; }
Property Value
ValueContainerType
The optional Type to use as value container
Default value is DefaultValueContainer<TKey>, any custom Type shall implement IValueContainer<T>
public virtual Type ValueContainerType { get; }
Property Value
ValueSerDesSelectorType
The optional Type to use for value serialization selection
Default value is DefaultKEFCoreSerDes.ValueContainer<T>, any custom Type shall implement ISerDesSelector<T>
public virtual Type ValueSerDesSelectorType { get; }
Property Value
Methods
ApplyServices(IServiceCollection)
Adds the services required to make the selected options work. This is used when there is no external IServiceProvider and EF is maintaining its own service provider internally. This allows database providers (and other extensions) to register their required services when EF is creating an service provider.
public virtual void ApplyServices(IServiceCollection services)
Parameters
services
IServiceCollectionThe collection to add services to.
Clone()
protected virtual KafkaOptionsExtension Clone()
Returns
Initialize(IDbContextOptions)
Initializes the singleton options from the given IDbContextOptions.
public void Initialize(IDbContextOptions options)
Parameters
options
IDbContextOptions
ProducerOptions()
Build Properties for producers
public virtual Properties ProducerOptions()
Returns
ProducerOptionsBuilder()
Build ProducerConfigBuilder for producers
public virtual ProducerConfigBuilder ProducerOptionsBuilder()
Returns
StreamsOptions(IEntityType)
Build StreamsConfigBuilder from options
public virtual StreamsConfigBuilder StreamsOptions(IEntityType entityType)
Parameters
entityType
IEntityType
Returns
StreamsOptions(string)
Build Properties for applicationId
public virtual Properties StreamsOptions(string applicationId)
Parameters
applicationId
string
Returns
Validate(IDbContextOptions)
Gives the extension a chance to validate that all options in the extension are valid. Most extensions do not have invalid combinations and so this will be a no-op. If options are invalid, then an exception should be thrown.
public virtual void Validate(IDbContextOptions options)
Parameters
options
IDbContextOptionsThe options being validated.
WithApplicationId(string)
The application id
public virtual KafkaOptionsExtension WithApplicationId(string applicationId)
Parameters
applicationId
string
Returns
WithBootstrapServers(string)
The bootstrap servers of the Apache Kafka cluster
public virtual KafkaOptionsExtension WithBootstrapServers(string bootstrapServers)
Parameters
bootstrapServers
string
Returns
WithCompactedReplicator(bool)
Use KNetCompactedReplicator<K, V> instead of Apache Kafka Streams
public virtual KafkaOptionsExtension WithCompactedReplicator(bool useCompactedReplicator = true)
Parameters
useCompactedReplicator
bool
Returns
WithConsumerConfig(ConsumerConfigBuilder)
The optional ConsumerConfigBuilder used when UseCompactedReplicator is true
public virtual KafkaOptionsExtension WithConsumerConfig(ConsumerConfigBuilder consumerConfigBuilder)
Parameters
consumerConfigBuilder
ConsumerConfigBuilder
Returns
WithDatabaseName(string)
Database name means whe prefix of the topics associated to the instance of KafkaDbContext
public virtual KafkaOptionsExtension WithDatabaseName(string databaseName)
Parameters
databaseName
string
Returns
WithDefaultConsumerInstances(int?)
Default consumr instances used in conjunction with UseCompactedReplicator
public virtual KafkaOptionsExtension WithDefaultConsumerInstances(int? defaultConsumerInstances = null)
Parameters
defaultConsumerInstances
int?
Returns
WithDefaultNumPartitions(int)
Default number of partitions associated to each topic
public virtual KafkaOptionsExtension WithDefaultNumPartitions(int defaultNumPartitions = 1)
Parameters
defaultNumPartitions
int
Returns
WithDefaultReplicationFactor(short)
Default replication factor associated to each topic
public virtual KafkaOptionsExtension WithDefaultReplicationFactor(short defaultReplicationFactor = 1)
Parameters
defaultReplicationFactor
short
Returns
WithKeySerDesSelectorType(Type)
The optional Type to use for key serialization selection
Default value is DefaultKEFCoreSerDes.Key<T>, any custom Type shall implement ISerDesSelector<T>
public virtual KafkaOptionsExtension WithKeySerDesSelectorType(Type serializationType)
Parameters
serializationType
Type
Returns
WithOnChangeEvent(Action<EntityTypeChanged>)
The optional handler to be used to receive notification when the back-end triggers a data change.
public virtual KafkaOptionsExtension WithOnChangeEvent(Action<EntityTypeChanged> onChangeEvent)
Parameters
onChangeEvent
Action<EntityTypeChanged>
Returns
Remarks
Works if UseCompactedReplicator is true
WithProducerConfig(ProducerConfigBuilder)
The optional ProducerConfigBuilder
public virtual KafkaOptionsExtension WithProducerConfig(ProducerConfigBuilder producerConfigBuilder)
Parameters
producerConfigBuilder
ProducerConfigBuilder
Returns
WithStreamsConfig(StreamsConfigBuilder)
The optional StreamsConfig used when UseCompactedReplicator is false
public virtual KafkaOptionsExtension WithStreamsConfig(StreamsConfigBuilder streamsConfigBuilder)
Parameters
streamsConfigBuilder
StreamsConfigBuilder
Returns
WithTopicConfig(TopicConfigBuilder)
The optional TopicConfigBuilder used when topics shall be created
public virtual KafkaOptionsExtension WithTopicConfig(TopicConfigBuilder topicConfigBuilder)
Parameters
topicConfigBuilder
TopicConfigBuilder
Returns
WithUseByteBufferDataTransfer(bool)
Setting this property to true the engine prefers to use ByteBuffer data exchange in serializer instances
public virtual KafkaOptionsExtension WithUseByteBufferDataTransfer(bool useByteBufferDataTransfer = false)
Parameters
useByteBufferDataTransfer
bool
Returns
WithUseDeletePolicyForTopic(bool)
Use delete cleanup policy when a topic is created
public virtual KafkaOptionsExtension WithUseDeletePolicyForTopic(bool useDeletePolicyForTopic = false)
Parameters
useDeletePolicyForTopic
bool
Returns
WithUseEnumeratorWithPrefetch(bool)
Setting this property to true the engine prefers to use enumerator instances able to do a prefetch on data speeding up execution
public virtual KafkaOptionsExtension WithUseEnumeratorWithPrefetch(bool useEnumeratorWithPrefetch = true)
Parameters
useEnumeratorWithPrefetch
bool
Returns
Remarks
Used only if UseCompactedReplicator is false and UseKNetStreams is true, not available in EFCore 6.
WithUseKNetStreams(bool)
Use KNet version of Apache Kafka Streams instead of standard Apache Kafka Streams
public virtual KafkaOptionsExtension WithUseKNetStreams(bool useKNetStreams = true)
Parameters
useKNetStreams
bool
Returns
WithUseNameMatching(bool)
The optional handler to be used to receive notification when the back-end triggers a data change.
public virtual KafkaOptionsExtension WithUseNameMatching(bool useNameMatching = true)
Parameters
useNameMatching
bool
Returns
Remarks
Works if UseCompactedReplicator is true
WithUsePersistentStorage(bool)
Use persistent storage when Apache Kafka Streams is in use
public virtual KafkaOptionsExtension WithUsePersistentStorage(bool usePersistentStorage = false)
Parameters
usePersistentStorage
bool
Returns
WithValueContainerType(Type)
The optional Type to use as value container
Default value is DefaultValueContainer<TKey>, any custom Type shall implement IValueContainer<T>
public virtual KafkaOptionsExtension WithValueContainerType(Type serializationType)
Parameters
serializationType
Type
Returns
WithValueSerDesSelectorType(Type)
The optional Type to use for value serialization selection
Default value is DefaultKEFCoreSerDes.ValueContainer<T>, any custom Type shall implement ISerDesSelector<T>
public virtual KafkaOptionsExtension WithValueSerDesSelectorType(Type serializationType)
Parameters
serializationType
Type