c#连接kafka_C# 使用kafka 消费者-生产者订阅

本文介绍了Kafka的基本概念和特性,包括Broker、Topic、Partition、Producer和Consumer。阐述了Kafka的高性能和可扩展性,并解析了消息格式和工作原理。在Windows环境下,使用.NET类库Confluent.Kafka搭建了Kafka的生产者和消费者应用,详细展示了C#代码示例,探讨了数据处理中的去重和不丢失问题。
摘要由CSDN通过智能技术生成

一:kafka介绍

kafka(官网地址:http://kafka.apache.org)是一种高吞吐量的分布式发布订阅的消息队列系统,具有高性能和高吞吐率。

1.1 术语介绍

Broker

Kafka集群包含一个或多个服务器,这种服务器被称为broker

Topic

主题:每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)

Partition

分区:Partition是物理上的概念,每个Topic包含一个或多个Partition.(一般为kafka节点数cpu的总核数)

Producer

生产者,负责发布消息到Kafka broker

Consumer

消费者:从Kafka broker读取消息的客户端。

Consumer Group

消费者组:每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。

1.2 基本特性

可扩展性

在不需要下线的情况下进行扩容

数据流分区(partition)存储在多个机器上

高性能

单个broker就能服务上千客户端

单个broker每秒种读/写可达每秒几百兆字节

多个brokers组成的集群将达到非常强的吞吐能力

性能稳定,无论数据多大

Kafka在底层摒弃了Java堆缓存机制,采用了操作系统级别的页缓存,同时将随机写操作改为顺序写,再结合Zero-Copy的特性极大地改善了IO性能。

1.3 消息格式

一个topic对应一种消息格式,因此消息用topic分类

一个topic代表的消息有1个或者多个patition(s)组成

一个partition应该存放在一到多个server上,如果只有一个server,就没有冗余备份,是单机而不是集群;如果有多个server,一个server为leader(领导者),其他servers为followers(跟随者),leader需要接受读写请求,followers仅作冗余备份,leader出现故障,会自动选举一个follower作为leader,保证服务不中断;每个server都可能扮演一些part

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值