You辉编程_kafka

一、什么是kafka?

是分布式(项目部署于多个服务器)的基于发布/订阅模式的消息队列,主要用于处理活跃的数据,如:登录、浏览、点击、分享等用户行为产生的数据,说白了就是一个消息系统(消息队列)。

进一步理解:

1.消息队列

消息(Message):网络中的两台计算机或者两个通讯设备之间传递的数据,如:文本、音频等。

队列(Queue):直接把它想象成羽毛球筒,羽毛球先进先出,是一种特殊的线性表,特殊之处在于,只能在头部删除元素,在尾部添加元素。

消息队列(MQ):保存消息的队列,相当于消息传输过程中的一个容器,主要有两个作用,一个是给外部提供存入消息的接口,另一个是提供取出消息的接口。

保存消息的队列,是消息在传输过程中的容器。主要提供生产和消费接口供外部调用,进行数据的存储和获取。

二、MQ的分类

1.主要有两大类:点对点(Peer-to-Peer)、发布/订阅(Publish/Subsribe)。

2.共同点:生产消息发送到队列中,消费者从队列中读取并消费消息。

3.不同点:

(1)点对点

组成:消息队列、发送者(Sender)、接受者(Receiver)。

注:一个生产者生产的消息只能有一个消费者消费,一旦被消费了,消息就不会存在于消息队列中。

(2)发布/订阅

组成:消息队列、发布者(Publisher)、订阅者(Subscriber)、主题(Topic)

注:每个消息可以有多个消费者,彼此互不影响,如:我在微信公共号发了一篇文章,关注我的人都能看到,即消息被多个人接受到(订阅者)。

三、常见的消息系统

ActiveMQ:实现了JMS(Java Message Service)规范,支持性较好,性能相对不高。

RabbitMQ:可靠性高、安全。

Kafka:分布式、高性能、跨语言。

RockeMQ:阿里开源的消息中间件,纯Java实现。

四、kafka特性

1.高吞吐量、低延迟:每秒可以处理几十万条消息,其延迟只有几毫秒,每个主题可以分多个分区,消费组对其分区进行消费。

2.可扩展:集群支持热扩展。

3.持久性、可靠性:可以持久化到本地磁盘,支持数据备份防止数据丢失。

4.容错性:允许节点中节点失败。

5.高并发:支持数千个客户端同时读写。

五、kafka的组成

1.Broder:kafka集群中包含多个kafka服务节点,每个kafka服务节点就是一个broker。

2.Topic:主题(相当于消息的类型),用来存储不同类别的消息(kafka消息数据村存放于硬盘)。

3.Partition:分区,每个Topic可以包含一个或多个分区,分区的数据量是在创建主题时决定的,

目的在于进行分布式存储。

4.Replication:副本,每个分区可以有多个副本,分布在不同的Broker上,会选出一个副本呢作为Leader,所有请求都会通过Lea

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值