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的简介图

2、JMS是什么?

2.1、JMS的基础

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

2.1.1JMS基本流程图

2.2 JMS消息传输模型

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

2.2.3JMS消息传输模型图

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核心组件图

转载于:https://www.cnblogs.com/javacj/p/8796053.html

kafka学习笔记一相关推荐

  1. 大数据 -- kafka学习笔记:知识点整理(部分转载)

    一 为什么需要消息系统 1.解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险.许多 ...

  2. Kafka学习笔记(3)----Kafka的数据复制(Replica)与Failover

    1. CAP理论 1.1 Cosistency(一致性) 通过某个节点的写操作结果对后面通过其他节点的读操作可见. 如果更新数据后,并发访问的情况下可立即感知该更新,称为强一致性 如果允许之后部分或全 ...

  3. Kafka学习笔记(一):什么是消息队列?什么是Kafka?

    目录 一.消息队列的概述 (一)前置知识点 1.集群和分布式 2.队列(Queue)的含义 3.同步与异步的含义 (二)消息队列的含义与特点 二.Kafka (一) 概述 (二) 常用名词含义 导航栏 ...

  4. kafka学习笔记(四) --- 压缩算法面面观

    kafka中,压缩,说白了就是,以较少的CPU开销去换更少的磁盘占用或更少的网络I/O传输. 怎么压缩 kafka的消息格式分为两种,社区分别成为V1版本和V2版本,V2版本是在0.11.0.0中正式 ...

  5. [Big Data - Kafka] kafka学习笔记:知识点整理

    一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余:消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险.许 ...

  6. kafka学习笔记:知识点整理

    一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...

  7. Kafka学习笔记: Kafka 百惑梳理

    1. 消息经常堆积起来,不能消费了,重启服务就能继续消费了. 消息堆积可能原因如下:1. 生产速度大于消费速度,这样可以适当增加分区,增加consumer数量,提升消费TPS:2. consumer消 ...

  8. Kafka学习笔记1

    目录 一.kafka概貌 1.主题与分区 2.压缩与解压缩 3.消费者组 4.位移主题 二.kafka重要参数 1.参数列表 2.如何防止消息丢失 三.幂等生产者与事务生产者 四.TCP连接 通过学习 ...

  9. Kafka学习笔记(八)Kafka消费者

    版权声明:本文为转载文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 原文链接:https://blog.csdn.net/weixin_39468305/articl ...

  10. Kafka学习笔记-Java简单操作

    Maven依赖包: [plain] view plaincopy <dependency> <groupId>org.apache.kafka</groupId> ...

最新文章

  1. 多款激光雷达性能评估
  2. php 图片预览原理,JavaScript_纯JS实现的批量图片预览加载功能,1.实现原理直接见代码,需要一 - phpStudy...
  3. AngularJS Scope(作用域)
  4. android View.isShown() 和 getVisibility() 的区别
  5. linux 启动两个摄像头,Linux:(多摄像头)如何运行指定的摄像头
  6. 邮件协议(SMTP)性能测试总结(Foxmail邮箱)
  7. 10、MySQL常用运算符概述
  8. 大数据WEB阶段Mybatis(一)
  9. dict去重python_python去重,一个由dict组成的list的去重示例
  10. 【Pytorch神经网络实战案例】26 MaskR-CNN内置模型实现目标检测
  11. flume监控一个文件实时采集新增的数据输出到控制台
  12. JavaSE基础——数组概述和定义格式说明
  13. UVa 10082 WERTYU
  14. 在zbox安装ubuntu18
  15. Qt QSetting 读写ini配置文件(简单明了,多图)
  16. 运用C语言指针知识实现对一个二维数组转置
  17. textarea 相关设置
  18. 鸭鸭来袭--官方下载
  19. GCD,快速GCD,扩展GCD
  20. hadoop2.7.2下载

热门文章

  1. 分别使用多线程\多进程\协程+paramiko在华为交换机批量快速进行配置(eNSP模拟器)
  2. iOS开发点滴 - 关闭键盘
  3. shiro实战系列(十一)之Caching
  4. Java语言中的----条件循环
  5. 在chrome中通过getComputedStyle()获取透明度的问题
  6. 报表统计(六) 访问数据库
  7. asp.net2.0自定义控件---鼠标移到按钮上更改背景颜色,移出后恢复
  8. SQL语句更改数据库名,表名,列名
  9. java获取结果集_Java-如何获取结果集上的列名
  10. php自定义函数指定参数类型,php – Doctrine:如何添加带可选参数的自定义函数?...