Kafka学习笔记

本文深入探讨Apache Kafka,一个分布式消息发布订阅系统。内容包括消息中间件的基本概念、Kafka的核心组件(如Partition和Consumer Group)以及实际操作中的小Demo,展示如何在Centos环境下通过Docker安装并使用Kafka。
摘要由CSDN通过智能技术生成

Kafka学习笔记

Apache Kafka是一个分布式消息发布订阅系统。它最初由LinkedIn公司基于独特的设计实现为一个分布式的提交日志系统( a distributed commit log),之后成为Apache项目的一部分。Kafka系统快速、可扩展并且可持久化。它的分区特性,可复制和可容错都是其不错的特性
介绍Kafka前,先来回顾一下消息中间件(MQ)的知识~~

1.消息中间件介绍

  1. 消息中间件相比大家应该不陌生,一般我们也习惯称之为MQ。它其实没有很高大上,也是一个基于语言开发出的系统,例如像:RocketMQ是阿里巴巴基于Java开发的
  2. 作用有三:应用解耦、异步处理、限流削峰
  3. 在市面上,常用的MQ有:ActiveMQ,RabbitMQ,RocketMQ,Kafka
    MQ详解及四大MQ比较 - 云+社区 - 腾讯云

2.消息中间件的概念

  1. 三大核心组件
    Broker:消息服务器,作为server提供消息核心服务
    Provider:消息提供者
    Consumer:消息消费者
    集群模式
  2. 两大通信模式
    发布-订阅模式(也是我工作中所使用的)
    点对点模式

Kafka的概念

  1. Partition(分区):前面我们提到,可以把Topic理解为一个数据集合,那么一个Topic可以分成多个Partition(区),其中每个区的消息是有序的
    在这里插入图片描述

    若你需要所有消息都是有序的,那么你最好只用一个分区。
    另外partition支持消息位移读取,消息位移有消费者自身管理 在这里插入图片描述

  2. Consumer Group(消费者组):一群消费者的集合。向Topic订阅消费消息的单位是Consumers=ConsumerGroup,只不过Group可以是一个Consumer,也可以是多个

    在我的微服务项目开发中,一般把Consumer Group设置成 以 微服务 为单位在这里插入图片描述
    关于此图的详细介绍,可以参考官方翻译: https://scala.cool/2018/03/learning-kafka-1/

Kafka的小Demo

  1. 首先第一步需要安装环境啦,我是使用 Centos + docker + Portainer(Docker UI管理工具)去安装

    Kafka需要安装 Zookeeper,Kafka和 Kafka Manager(UI管理页面)
    安装也比较简单,步骤可参考:docker下安装kafka和kafka-manager - 简书

  2. 在Kafka Manager里创建 Cluster(因为Kafka是天然分布式的,都是以集群为单位创建和部署的),然后可以去创建一个 Topic
    在这里插入图片描述
    在这里插入图片描述
  3. 配置Yaml,再分别搭建 Provider 和 Consumer
spring:
  # Kafka BeanConfig
  kafka:
    bootstrap-servers: 192.XXX.XXX.X:9082 # Kafka Broker address
    # Kafka Producer Config
    producer:
      acks: 1 
      retries: 3 # retry-count
      key-serializer: org.apache.kafka.common.serialization.StringSerializer 
      value-serializer: org.springframework.kafka.support.serializer.JsonSerializer 
    # Kafka Consumer Config
    consumer:
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值