kafka初步学习

zhangrw zhangrw     2023-01-16     335

关键词:

消息系统

什么是消息系统?

消息系统负责将数据从一个应用程序传输到另一个应用程序,因此应用程序可以专注于数据,但不担心如何共享它。分布式消息传递给予可靠消息队列的概念。消息在客户端应用程序和消息传递系统之间异步排队。

有俩种类型的消息模式可以使用:一种是点对点,另一种是发布-订阅(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的强耐久性在流处理的上下文中也非常有用。

rocketmq的初步认识,topicnameserverbroker相关概念的解释

针对我学过kafka,然后半年过去了,基本什么概念都没,kafka的任何知识都忘了的学习状况,决定多多记录自己在学习新知识的各种见解,即使几个月以后回首望去,感觉这些知识太基础了也在所不惜。绝... 查看详情

初步认识kafka

 Kafka是用于日志处理的分布式消息队列,Kafka使用scala语言开发的。  各个开源分布式处理系统Cloudera、ApacheStorm、Spark都支持与Kafka集成。其日志处理的一个场景:Kafka采集日志以后,经过spark分布式计算,将日志数据导入... 查看详情

初步学习nuxt3

初步学习Nuxt3初步学习Nuxt3 查看详情

kafkazookeeper配置初步

1.软件需求CentOS7.2X64jdk-8u121-linux-x64.rpmzookeeper-3.4.9.tar.gzkafka_2.11-0.10.1.0.tgzsetuptools-33.1.1.zip kafka-python-1.3.2.tar.gz2.安装zookeeper、kafka1).zookeeper#tar-zxfzookeeper-3.4.9.tar.gz# 查看详情

强化学习初步学习

IterativePolicyEvaluation     HowtoImproveaPolicy              ValueIteration   查看详情

周志华《机器学习初步》绪论

周志华《机器学习初步》绪论Datawhale2022年12月组队学习✌文章目录周志华《机器学习初步》绪论一.机器学习二.典型的机器学习过程三.计算学习理论PAC模型思考两个问题问题性质角度计算要求的角度四.基本术语五.归纳偏好六.NFL... 查看详情

vue初步学习

 Vue简单的总结一Vue简单的总结二Vue简单的总结三Vue简单的总结四(项目流程)Vue简单的总结五 查看详情

mybatis初步学习

1、准备工作jar包:  mybatis-3.4.4.jar,下载地址:https://github.com/mybatis/ignite-cache/releases  mysql-connector-java-5.1.40-bin.jar,下载地址:https://dev.mysql.com/downloads/connector/j/项目目录结构:数据库建标语句/*如果已经存在此数据库,先删 查看详情

初步线程学习1

线程演示:1packagethread;23/**4*兔子的线程5*@authorsuperdrew6*/7publicclassRabbitThreadextendsThread{8publicvoidrun(){9setName("兔子线程");10while(true){11System.out.println("兔子领先了....加油!!!!"+getName()+""+getPriori 查看详情

初步学习多线程3

java源码展示:兔子线程:RabbitThread.javapackagethread;/***兔子的线程*@authorsuperdrew*/publicclassRabbitRunnableimplementsRunnable{publicvoidrun(){while(true){System.out.println("兔子领先了....加油!!!!"+Thread.currentThre 查看详情

js初步学习

[使用JS的三种方式]1、HTML标签中内嵌JS(不提倡使用):<buttononclick="javascript:alert(‘小碧池!你真点啊!‘)">有本事点我呀!!!</button> 2、HTML页面中直接使用JS:<scripttype="text/javascript">//JS代码</script> 3、... 查看详情

uwp的初步学习

                     查看详情

spring源码学习的初步体会

Spring源码学习的初步体会:深入学习和巩固java的基础知识,其中的java知识范围全部,可以边研究源码边巩固复习基础知识体会其中用到的设计思想:其中包含的设计原则和设计模式.加深对spring的理解,在业务开发中使用spring更... 查看详情

初步学习多线程2

线程代码展示:兔子线程实现Runnable接口:packagethread;/***兔子的线程*@authorsuperdrew*/publicclassRabbitThreadimplementsRunnable{publicvoidrun(){while(true){System.out.println("兔子领先了...加油!!!!!"+Thread.currentThread().getN 查看详情

java初步学习helloword

java初步学习helloword发表于2012-08-1608:05:12by 月小升 1.下载javaJDKhttp://www.oracle.com/technetwork/java/javase/downloads/index.html2.安装JDK3.打开命令行输入java按下Enter你会看到Usage:java[-options]class[args...](to 查看详情

02后端初步学习笔记

后端初步学习笔记1.MySQL常用指令cmd/powershell部分mysqld--install/--remove?安装/移除mysql服务netstart/stopmysql?启动/关闭mysql服务mysql-uroot-p?以root用户登陆mysql?mysql部分showdatabases;?查看数据库use库名称;?使用某个数据库showtables;?查看这个库里... 查看详情

git之初步学习

我的GitHub地址是:https://github.com/hbuxiaopipi  Git的初步学习首先让我明白了一个道理:学好英语非常关键。浏览英文网页和使用英文软件对于我这种英语渣渣来讲真是难于登天,但最终我还是借助各种翻译软件和翻译平台再... 查看详情

javascript学习js的初步了解

1、javascript的简介:     *javascript是一种基于对象和事件驱动的语言,主要应用于客户端。         --基于对象:             **提供了很多对象,可以直接使用。         -... 查看详情