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入门的主要内容,如果未能解决你的问题,请参考以下文章

kakfa从入门到放弃: kafka入门,环境搭建,命令行操作

kakfa从入门到放弃: golang编程操作kafka

kakfa从入门到放弃: golang编程操作kafka

kakfa从入门到放弃: golang编程操作kafka

kakfa从入门到放弃: 基础操作

kakfa从入门到放弃: 相关概念,幂等性&事务