最近开发中,用到了这2种模式。线程模式处理数据的速度和内存可控,数据处理不及的话,都存储在kafka种;消息模式并行处理,压力过大时内存可能不方便控制。
消息模式:
private EventConsumer CreateKafkaConsumer()
{
string strKafkaBrboker = "127.0.0.1";
int intKafkaPort = 9092;
string strKafkaGroupId = "kafka_test_group";
string strKafkaConsumeTopic = "mytopic";
var config = new Config() { GroupId = strKafkaGroupId, EnableAutoCommit = false };
EventConsumer objKafkaConsumer = null;
try
{
System.Diagnostics.Debug.WriteLine(string.Format("创建kafka服务器:{0}:{1}消费者对象...", strKafkaBrboker, intKafkaPort));
objKafkaConsumer = new EventConsumer(config, strKafkaBrboker + ":" + intKafkaPort.ToString());
objKafkaConsumer.OnMessage += ObjKafkaConsumer_OnMessage;
objKafkaConsumer.OnConsumerError += ObjKafkaConsumer_OnConsumerError;
objKafkaConsumer.OnError += ObjKafkaConsumer_OnError;
System.Diagnostics.Debug.WriteLine(string.Format("创建kafka服务器:{0}:{1}消费者对象成功!", strKaf