【博学谷学习记录】超强总结,用心分享|消息队列与Kafka(一)

【博学谷学习记录】超强总结,用心分享|消息队列与Kafka(一)

一、消息队列

1.1 什么是消息队列?

消息: 消息就是数据,只不过这个数据具有流动的状态
队列: 存储数据的容器, 只不过这个容器具有FIFO(先进先出)特性;
消息队列: 数据在队列中, 从队列的一端传递到另一端的过程, 数据在整个队列中产生了一种流动状态。

1.2 消息队列产生背景

在这里插入图片描述

1.3 常见的消息队列的产品

常见消息队列的产品:
1、ActiveMQ: 出现时间比较早的一款消息队列的中间件组件 , 目前整个社区活跃度比较低, 此软件的使用人群也在不断的降低;
2、RabbitMQ: 目前在Java领域中使用非常频繁的一款消息队列的中间件产品, 其社区活跃度比较高的, 支持多种语言的开发;
3、RocketMQ: 是由阿里推出一款消息队列的中间件产品, 目前主要是在阿里系范围内被广泛时间,客户端支持的语言主要是Java;
4、Kafka: 是一款大数据领域下的消息队列的中间件产品, 主要应用在大数据领域方向上, 在后端 以及业务领域使用较少(用基本都是非重要数据传输上使用);
5、 Pulsar: 最近一两年新起的一款消息队列的中间件产品, 也是Apache顶级开源项目, 目前主要是有StreamNative公司进行维护。

1.4 消息队列的作用

1、同步操作转换为异步操作;
2、应用的解耦合;
3、流量削峰: 在一些秒杀场景中, 遇到突然的庞大的并发量, 但是一般就是一瞬间的事情, 过后就没有了;
4、消息驱动系统。

1.5 消息队列的两种消费模式

​在Java中, 提供了消息队列的协议: JMS(Java Message Server) Java消息服务, sun公司系统所有的消息队列支持Java客户端的时候, 都按照JMS协议规范制定客户端(类似于提供JDBC协议)

  • 点对点: 数据被生产到容器后, 最终这个数据只能被一个消费者来消费数据
  • 发布订阅: 数据被生产到容器后,可以被多个消费者所消费

二、Kafka

2.1 介绍

kafka是Apache旗下的一款开源免费的消息队列的中间件产品 最早是有领英公司开发的, 后期贡献给Apache, 目前也是Apache旗下的顶级开源项目. 采用的语言为scala, Kafka2依然要依赖于zookeeper。

官方网站: https://www.kafka.apache.org

2.2 特点

1、可靠性:分布式,分区。复制和容错;
2、可扩展性:kafka消息传递系统轻松缩放,无需停机;
3、耐用性:kafka使用分布式提交日志,意味着消息会尽可能快速的保存在磁盘上,因此是持久的;
4、性能:kafka对于发布和订阅消息都具有高吞吐量,即使存储了TB级的消息,kafka也能非常稳定,保证零停机和零数据丢失;
5、在实时领域中, 主要是用于流式的数据处理工作。

2.3 kafka的集群架构

在这里插入图片描述

相关名词:
	Kafka cluster: Kafka的集群
	broker: Kafka的节点
	producer: 生产者
	consumer: 消费者
	Topic: 话题 主题  理解为就是一个逻辑容器
		shard: 分片 一个topic可以被分为N个分片, 分片的数量和节点数据没有关系
		replicas: 副本 可以对每一个分片构建N个副本, 副本的数量最多和节点的数据一致(包含本身)
	zookeeper: 管理kafka集群, 并存储Kafka的相关元数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值