kakfa从入门到放弃: kafka入门
Posted 浅弋、璃鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kakfa从入门到放弃: kafka入门相关的知识,希望对你有一定的参考价值。
文章目录
一、简介:
1. 消息队列:
消息队列, 英文名: Message Queue, 常缩写为: MQ;
消息队列是一种用来存储消息的队列;
很多时候消息队列不是一个永久性的存储, 是作为临时存储的
// 1. 创建一个保存字符串的队列
strQueue := make(chan string, 20)
// 2. 往消息队列里放入消息
strQueue <- "hello"
// 3. 从消息队列里取出数据
fmt.Println(<- strQueue)
2. 消息队列中间:
消息队列中间件就是用来存储消息的软件(组件);
常用的消息中间件: kafka, RabbitMQ, ActiveMQ, RocketMQ, ZeroMQ等;
3. 消息队列的应用场景:
-
异步处理:
- 可以将一些比较耗时的操作放在其他系统中, 通过消息队列将需要进行处理的消息进行存储, 其他系统可以消费消息队列中的数据;
- 比较常见: 发送短信, 发送邮件;
-
系统解耦:
- 原先一个微服务通过接口(http)调用另一个微服务, 此时耦合很严重, 只要接口发生变化就会导致不可用;
- 使用消息队列可以将系统进行解耦合, 现在第一个微服务可以将消息放到消息队列中, 另一个服务从消息队列中取出数据再进行处理;
-
流量削峰;
- 消息队列是低延迟, 高可靠, 高吞吐的, 可以应对大量并发;
- 消息队列是低延迟, 高可靠, 高吞吐的, 可以应对大量并发;
-
日志处理: (大数据领域常见)
- 用户行为分析:
- 用户行为分析:
4. 生产者, 消费者模型:
5. 消息队列的两种模式:
5.1 点对点模式
消息发送者生产消息发送到消息队列中, 然后消息接收者从消息队列中取出来并且消费消息. 消息被消费后, 消息队列不再有存储, 所以消息接收者不可能消费到已经被消费的消息;
点对点模式的特点:
- 每个消息只有一个接收者(Consumer), 一旦被消费后, 消息就不再在消息队列中;
- 发送者和接收者之间没有依赖, 发送者发送消息后, 不管有没有接收者, 都不会影响到发送者发送下一条消息;
- 接收者在成功接收消息后需向队列应答成功, 一遍消息队列删除当前接收的消息;
5.2 发布订阅模式
发布/订阅模式特点:
- 每个消息可以有多个订阅者;
- 发布者和订阅者之间有时间上的依赖; 针对某个主题(topic)的订阅者, 它必须创建订阅者之后, 才能消费发布者的消息;
- 为了消费消息, 订阅者需要提前订阅该角色, 并保持在线运行;
以上是关于kakfa从入门到放弃: kafka入门的主要内容,如果未能解决你的问题,请参考以下文章