kafka学习笔记一

时间:2022-12-26 11:55:35

kafka的简介

http://kafka.apache.org/

1、kafka是什么?

说明:a、Apache Kafka是一个开源的消息系统,由Scala写成。由Apache软件基金
       会开发的一个消息开源系统项目;
     b、Kafka最初是由LinkedIn开发,并于2011年初开源。2012年10月从Apache Incubator
        毕业。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台;
     c、Kafka是一个分布式消息队列:生产者、消费者的功能。它提供了类似于JMS的特性,但在
        设计实现上完全不同,此外它并不是JMS规范的实现;
     d、Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,接受消息者称为
        Consumer,此外Kafka集群由多个kafka实例组成,每个实例(server)成为broker;
     e、无论是Kafka集群,还是producer和consumer都依赖于zookeeper集群保存一些meta
        信息,来保证系统的可用性。

1.1、kafka的简介图

kafka学习笔记一

2、JMS是什么?

2.1、JMS的基础

a、JMS是java提供的一套技术规范;
b、用来异构系统集成通信,缓解系统瓶颈,提高系统的伸缩性增强系统的用户体验,是的系统的
   模块化和组件化变得可行并更加灵活;
c、生产消费者模式(生成者、服务器、消费者)。

2.1.1JMS基本流程图

kafka学习笔记一

2.2 JMS消息传输模型

a、点对点模式(一对一,消费者主动拉取数据,消息收到后消息清楚)。点对点模型通常是一个基于
   拉取或轮询的消息传输模型,这种模型从队列中请求信息,而不是将消息推送到客户端。这个模
   型的特点是发送队列的消息被一个且只有一个接受者接受处理,即使多个消息监听者也是如此;
b、发布/订阅模式(一对多,数据生产后推送给所有的订阅者)发布订阅规则是一个基于推送的消息
   传送模型。发布订阅模型可以有多种不同的订阅者,临时订阅者只在主动监听主题时才接受消息
   ,而持久订阅者则监听主题的所有的消息,即当前订阅者不可用,处于离线状态。

2.2.3JMS消息传输模型图

kafka学习笔记一

2.3 JMS核心组件

a、Destination:消息发送的目的地,也就是前面说的Queue和Topic;
b、Message:被发送的消息;
c、Producer:消息的生产者,要发送一条消息,必须由生产者来发送;
d、MessageConsumer:与生产者相对应,这是消息的消费者或接受者,通过他来接受消息。

2.3.1对消息(Message)补充说明

StreamMessage:java数据流消息,用标准流操作来顺序的填充和读取;
MapMessage:一个Map类型的消息,key为String类型,而value为java的基本类型;
TextMessage:普通字符串消息,包含一个String;
ObjectMessage:对象消息,包含一个可序列化的java对象;
BytesMessage:二进制数组消息,包含一个byte[];
XMLMessage:一个XML类型的消息。
总结:最常用的是TextMessage和ObjectMessage。

2.3.2JMS核心组件图

kafka学习笔记一