kafka初步学习
消息系统
什么是消息系统?
消息系统负责将数据从一个应用程序传输到另一个应用程序,因此应用程序可以专注于数据,但不担心如何共享它。分布式消息传递给予可靠消息队列的概念。消息在客户端应用程序和消息传递系统之间异步排队。
有俩种类型的消息模式可以使用:一种是点对点,另一种是发布-订阅(pub-sub)消息系统。
大多数消息模式遵循pub-sub
点对点消息系统
点对点系统中,消息被保留在队列中。一个或多个消费者可以消费队列中的消息,但是特定消息只能由最多一个消费者消费。一旦消费者读取队列中的消息,它就从该队列中消失(如果没有消费者呢?)。该系统的典型示例是订单处理系统,其中每个订单将由一个订单处理系统处理,但多个订单处理器也可以同时工作。
发布—订阅消息系统
发布—订阅消息系统中,消息被保留在主题中。与点对点消息系统不同的是,消费者可以订阅一个或多个主题并使用该主题中的所有消息。在发布—订阅消息系统中,消息生产者被称为发布者,消息使用者被称为订阅者。一个现实生活中的例子是电视,它发布不同的渠道,如运动,电影,音乐等,任何人都可以订阅自己的频道集,并获得他们的订阅时可用。
如果订阅者过多的消息队列会发生什么?
消息系统的应用场景
1.应用解耦
2.流量削峰
3.消息通讯
kafka
什么是kafka?
kafka是最初由Linkedin公司开发的,使用Scala语言编写,分布式的、分区的、多副本的、多订阅者的日志系统(分布式MQ系统),可以用于web/nginx日志,搜索日志,监控日志,访问日志等。
kafka目前支持多种客户端语言:java、python、c++、php等等。
Apache Kafka是一个分布式发布-订阅消息系统和一个强大的队列,可以处理大量的数据,并使您能够将消息从一个端点传递到另一个端点。kafka适合离线和在线消息消费。kafka消息保留在磁盘上,并在群集内复制以防数据丢失。Kafka构建在ZooKeeper同步服务之上。它与Apache Storm和Spark非常好的集成,用于实时流式数据分析。
kafka的好处
可靠性 - Kafka是分布式的,分区,复制和容错的。
可扩展性 - Kafka消息传递系统轻松缩放,无需停机。
耐用性 - kafkas使用分布式提交日志,这意味着消息会尽可能快的保留在磁盘攀上,因此它是持久的。
性能 - Kafka对于发布和订阅消息都具有高吞吐量。及时存储了许多TB的消息,他也保持稳定的性能。
Kafka非常快,并保证零停机和零数据丢失。
kafka的应用
指标 - Kafka通常用于操作监控数据。这涉及聚合来自分布式应用程序的统计信息,以产生操作数据的集中馈送。
日志聚合解决方案 - Kafka可用于跨组织从多个服务手机日志,形式它们以标准格式给多个服务器。
流处理 - 流行的框架(如S他日吗和Spark Streaming)从主题中读取数据,对其进行处理,并将处理后的数据写入新主题,供用户和应用程序使用。Kafka的强耐久性在流处理的上下文中也非常有用。
kafka初步学习的更多相关文章
- json2.js的初步学习与了解
json2.js的初步学习与了解,想要学习json的朋友可以参考下. json2.js的初步学习与了解 1.)该js的下载地址是:http://www.json.org/json2.js 2.)在页面 ...
- 老周的ABP框架系列教程 -》 一、框架理论初步学习
老周的ABP框架系列教程 -- 一.框架理论初步学习 1. ABP框架的来源与作用简介 1.1 简介 1.1.1 ABP框架全称为"ASP.NET Boilerplate ...
- 初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助
初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助,如果有bug或者更好的优化方案,也请批评与指正,谢谢,代码如下: var fs = require('f ...
- EF Codefirst 初步学习(二)—— 程序管理命令 更新数据库
前提:搭建成功codefirst相关代码,参见EF Codefirst 初步学习(一)--设置codefirst开发模式 具体需要注意点如下: 1.确保实体类库程序生成成功 2.确保实体表类库不缺少 ...
- 初步学习python
自计算机诞生以来,也伴随着计算机语言的诞生,现在,全世界的编程语言有600多种,但流行的编程语言也就20多种. Java和C一直占据着前两名.但是近年来伴随着人工智能的发展,Python发展迅猛,以其 ...
- Git的初步学习
前言 感谢! 承蒙关照~ Git的初步学习 为什么要用Git和Github呢?它们的出现是为了用于提交项目和存储项目的,是一种很方便的项目管理软件和网址地址. 接下来看看,一家公司的基本流程图: 集中 ...
- 语法分析器初步学习——LISP语法分析
语法分析器初步学习——LISP语法分析 本文参考自vczh的<如何手写语法分析器>. LISP的表达式是按照前缀的形式写的,比如(1+2)*(3+4)在LISP中会写成(*(+ 1 2)( ...
- 状态保持以及AJAX的初步学习
嘿嘿,今天学习的有点迷茫哦,主要学习把验证码使用在登录页面时间的一些逻辑,学习这个时间并没有那么的迷惑哦,可是自己写程序时间倒是有点反应迟钝,不过还好总是在最后搞清楚啦,另外就是一步一步的学习是接近项 ...
- LinQ的初步学习与总结
嘿嘿,说起来ORM和LinQ,就感觉离我好遥远的,在学校是没有学习的,所以总感觉学习了LinQ就是大神,现在嘛,终于也体会一点,感觉LinQ只是初步学习,没有太难,当然以后使用在项目中就没有这样的简单 ...
随机推荐
- python+selenium之框架设计
一.自动化测试框架 1.什么是自动化测试框架 简单来说,自动化测试框架就是由一些标准,协议,规则组成,提供脚本运行的环境.自动化测试框架能够提供很多便利给用户高效完成一些事情,例如,结构清晰开发脚本, ...
- 一个asp.net小项目总结
写这篇文章之前先吐槽一下,最近换了一个公司,是给一个国企做外包,有两个月了,感觉这里的气氛有点不爽,还有点怀念以前的公司.具体听我说来,这里有几个团队,.net,java,手机开发,.net只有6个人 ...
- 为什么S/4HANA的销售订单创建会触发生产订单的创建
调用S/4HANA销售订单创建函数SD_SALES_DOCU_MAINTAIN创建一个销售订单时,会触发生产订单的创建. 销售订单的每个行项目对应一个独立的生产订单,SD_SALES_DOCU_MAI ...
- oracle中的分区表
oracle中的分区表在系统中使用的频率不小,在一些数据量大的系统中更是频繁出现. 提到分区表,首先就要理解下什么是分区.其实所谓的分区简单来说就是分区域,分区表就是将一张表分区域存放. 那么分区域中 ...
- 关于TCHAR和string对象的c.str()一些注意事项
1.TCHAR 根据预处理器的设置,如果是_MBCS, 那么TCHAR = char: 如果 如果设置的是UNICODE和_UNICODE,那么TCHAR=wchar_t.就等于根据当前环境会选择不同 ...
- [译] 怎样(以及为什么要)保持你的 Git 提交记录的整洁
最近在掘金翻译了一篇文章,主要讲的是 Git 提交记录的维护,确实很有用,感兴趣的同学可以去看一下.链接如下: [译] 怎样(以及为什么要)保持你的 Git 提交记录的整洁 截图:
- 理解Underscore的设计架构
在一个多月的毕业设计之后,我再次开始了Underscore的源码阅读学习,断断续续也写了好些篇文章了,基本把一些比较重要的或者个人认为有营养的函数都解读了一遍,所以现在学习一下Underscore的整 ...
- 使用View填充ViewPager
ViewPager在app开发中十分常见.今天以一个例子详细解读下ViewPager的基础知识. 一.什么是ViewPager 可以这样理解,ViewPager就相当于一个容器,它的里面可以装view ...
- [改错_19/04/01] 学习Java.IO 对象数据流时出现 Exception in thread "main" java.io.EOFException ...at cn.sxt.test.Test_DataStream.main(Test_DataStream.java:31) 错误 .
过程描述:编译可以通过,就是每次运行时出现如下的图片,百思不得其解. 错误原因: byte[] datas=baos.toByteArray(); 放在了oos.writeInt(14);oos.fl ...
- Linux学习总结(四)-两种模式修复系统,单用户,救援模式
一单用户模式 我们举例,比如忘记root 用户密码我们就可以进入单用户模式重置,该单用户模式,类似windos 安全模式开机界面快速按e 进入grub光标定位到 linux16 下一行ro crash ...