欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

入门指南:掌握Kafka消息队列的基本使用技巧

最编程 2024-01-23 20:58:25
...

特点:

可靠性:分布式,分区,赋值和容错等

可扩展性:kafka消息传递系统秦颂缩放无需停机,可以添加新的服务器资源,不需要对服务器关闭重启,可以自动识别添加

耐用性:分布式提交日志,消息会尽可能快速的保存再磁盘上,因此它是持久的

高性能:kafka对于发布和订阅都具有高吞吐量,同时存储了许多tb级消息,也有稳定的性能,kafka非常快并且保证零停机和零数据丢失

1,概念术语

  • Producer 生产者
    • 也就是发送消息的一方。生产者负责创建消息,然后将其投递到Kafka
  • Consumer 消费者
    • 也就是接收消息的一方。消费者连接到Kafka上并接收消息,进而进行相应的业务逻辑处理。
  • Consumer Group(CG)消费者组
    • 由多个 consumer 组成。
    • 消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费
    • 消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
  • broker 服务代理节点(中间人)
    • kafka集群运行后,每台服务器上的kafka称为一个broker节点
    • 处理消费者和生成者的请求
      • 生产者需要保存数据到kafka,就需要请求broker
      • 消费者需要从kafka中获取数据,也需要请求broker
    • 多个broker会选取产生一个控制器,类似zk中的leader角色
      • 管理broker,监控broker的变化
      • 参与分区副本的领导者选举
      • 处理消费者和生成者的请求
      • 由zk从broker中选举出控制器
        • 本质哪台服务器先启动了kafka,生成了broker节点,该节点就作为控制器
  • Topic 主题
    • kakfa是对消息数据的处理
    • 消息数据会有不同的分类
    • 使用主题对消息数据进行分类,然后分别存储
    • 主题创建成功后,会将主题信息写入zk中,所有的broker就可以从zk中获取有哪些主题
    • 生产者写入数据时可以指定写入的主题,人为对数据按照主题分类
    • 消费者读取数据时也可以指定主题,从对应的主题下获取数据
  • Partition 分区(分片)
    • 分区是kafka存储数据的最小单元,消息数据最终是存储在分区上的
    • 一个主题在存储时可以指定多个分区
    • 当有多个分区时,分区被分配到不同broker上
    • 分区所存储的数据是在系统的磁盘上进行存储。每个分区会创建不同目录,然后将数据写入该目录下的文件中
    • 文件中存储的数据是有有效期的,默认的有效期是168小