Kafka笔记

本文介绍了Kafka作为一个分布式流处理平台的功能,包括PUBLISH & SUBSCRIBE、PROCESS和STORE。详细阐述了Kafka的发布订阅机制、消息处理和存储,并通过实例解释了其工作原理。同时提到了Kafka的重要配置项、启动流程以及使用Java API进行实战操作。
摘要由CSDN通过智能技术生成

 

之前我想要把数据结构写完,再来写这些乱七八糟的东西。不过最近一段时间工作比较忙,加上未来涉及到中间件的使用,回头还是先把中间件的理解先放在前面吧,数据结构这块不会烂尾的。

kafka 是什么

官网上指出”A Distributed Streaming Platform”,一个分布式的流处理平台

  • PUBLISH & SUBSCRIBE 发布和订阅
  • PROCESS 处理
  • STORE 贮存

流处理具体是什么含义相信大家都理解,毕竟一个java工程师对Linux和C一定是很熟悉的。
那么kafka三大功能都是什么含义呢?

PUBLISH & SUBSCRIBE

e.g.
我们开车通常会听广播,那广播是从广播电台统一发布
那我们接受广播,只需要打开收音机,订阅广播即可听到这个声音
那么这个关系,就是发布和订阅的关系,一端发出,一端订阅

对应到kafka中的概念,就是

  • Producer 生产发布
  • Consumer 消费订阅

PROCESS

编写可扩展的流处理应用程序,用于实时事件响应的场景。一开始我们看到kafka定位为“一个分布式的流处理平台”
既然是流处理,那处理必然是一个很关键的一点
e.g. 一个秒杀活动,并发量特别大,并发量大的时候,可能会有大量用户同时提交付款,但我们的服务器可能无法承载这么多并发,那我们采用延时订阅等方式,以达到可以处理历史数据的应用程序

STORE

安全的将流式的数据存储在一个分布式,有副本备份,容错的集群。
这个概念比较简单了,意思是这个数据是有备份的,你有几个集群,这个数据就会被备份几份,比如说你有总容量600G的3台主机建立了3个kafka集群,那么实际有效存储只有200G,这是因为每个数据都会被同时备份到另外两台主机中,以保证数据不会丢失,利用空间换取稳定。同时这个集群是一个容错的集群,后期我会做这个容错测试,让自己也能更放心大胆的用kafka。
在这里延伸两个名词

  • Topic Kafka将消息种子(Feed)分门别类,每一类的消息称之为一个主题(Topic).
  • Broker 已发布的消息保存在一组服务器中,称之为Kafka集群。集群中的每一个服务器都是一个代理(Broker). 消费者可以订阅一个或多个主题(topic),并从Broker拉数据,从而消费这些已发布的消息。

那么以上就是kafka的官网概念回顾。总体来讲只要接触过集群,分布式,微服务的概念,理解这些应该是非常非常简单的
总之kafka有四个小概念,Producer,Consumer,Topic,Broker
那么根据这四个概念,我们简单建立一个消息系统模型

工厂A 每分钟生产馒头5个 —为工厂A建立 Topic FactoryA
工厂B 每分钟生产窝头1个 —为工厂B建立 Topic FactoryB
那么两个工厂每分钟都会发布一个消息到各自的主题(Topic)中
为了保证工厂发布渠道的稳定性,那两个工厂合资创建了3个销售渠道Broker0,Broker1,Broker2
因为工厂每分钟总共就生产出固定的馒头,不会因为某个销售渠道卖的多而增加产量,所有这三个渠道之间的库存数据(待消费数据)是同步的
此时客户来了,客户可能只想吃馒头,那他只订阅FactoryA,那么FactoryB的数据就不会给这个客户,而客户也并不关心是哪个销售渠道提供的,他只关心最后送来的东西是工厂A生产的馒头,就OK了。
如果客户比较能吃(服务器承载量大),那他可以订阅两个Topic,一起处理

这种就是我们的消息系统的实际应用场景
ps: 官网上提供了很完整的下载,启动,测试的方法,这个笔记中不做记录,想练回头看下官网的Quick Start即可,同时安利一个中文版的国内网站,翻译的有些偏差,不过也非常棒,减少了我的一些阅读障碍

kafka重要配置项

############################# Server Basics ###########################
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值