当前位置:   article > 正文

Kafka简介_kafka和syslog的区别

kafka和syslog的区别

Kafka
在流式计算中,Kafka一般用来缓存数据,spark streaming通过消费Kafka的数据进行计算。

Apache Kafka是一个开源消息系统,由Scala写成。
是由Apache软件基金会开发的一个开源消息系统项目。
Kafka最初是由LinkedIn开发,并于2011年初开源。2012年10月从Apache Incubator毕业。
该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。

Kafka是一个分布式消息队列:生产者、消费者的功能。它提供了类似于JMS的特性,
但是在设计实现上完全不同,此外它并不是JMS规范的实现。 能够轻松实现高吞吐、可扩展、高可用,
并且部署简单快速、开发接口丰富,各大互联网公司已经在生产环境中广泛使用,
目前已经有很多分布式处理系统支持使用Kafka,比如,Spark、Strom、Flume等
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Kafka消息队列

1.传统的消息通信方式
a.Socket通信协议 端到端通信
缺点:1)服务器端和客户端必须同时在线(两端任何一端不在线都无法传输数据);
2)传输大量数据时,数据安全不完备(如果传一个文件会正常接收,
如果传2个G的文件那么会容易出现丢包的情况),对网络要求极高。

b.文件服务器(ftp) ftp的出现是解决soket的缺点, 不用同时在线,解决超大文件上传, 下载问题
 ftp是解决Socket的缺点
 f:指的是文件形式,一般指超大文件,电影等,如果传2G电脑用Socket,容易丢包,socket必须两端同时在线
 ftp的优先是解决socket的缺点
 缺点:1)实时性比较差(socket客户端和服务器端发送消息时时接收到数据,ftp不需要同时在线);
	   2)本地磁盘IO读写(传输文件写到磁盘);
	   
c.共享数据库方式(Database)  (大家都访问同一个库)
	优点: 据库连接池有限的; (一边往数据库里插数据,一边从数据库里获取数据,)

	缺点:系统间访问共享数据库比较难实现:
	      因业务需求很难将数据库共享(系统间的共享数据库很难实现,例如淘宝数据库和美团的数据库);
  
d.JMS(Java Message Services)协议 【JMS.doc】
	JMS(Java Messaging Service)是Java平台上有关面向消息中间件(MOM)的技术规范,
	它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口
	简化企业应用的开发,翻译为Java消息服务。
	通过JMS协议,可以通过不同平台互相发送消息,所以要求每个平台都要对应相应的接口开发程序,
	需要面向业务编程
	缺点:具体相关业务的需求
	
	点对点(一对一模式)
	一旦一个消息被阅读,该消息将被从队列中移走。
	(queue,只要有一个consumer消费,就会从队列中移除,采用拉的方式)
	
	JMS主题(一对多)
	一种支持发送消息给多个订阅者的机制(采用推的方式)。
	
e.KAFKA消息队列
  系统解耦、削峰填谷、定时任务、异步通知等等
  消息队列是在JMS基础上开发出来的,它没有queue队列,和JMS一样有topic,consumer有组,
  每一个topic可以被每一个consumer group的一个counsermer消费
  即如果有两个组A B ,其中A组中有 a1consumer a2consumer a3consumer  
  B组中有b1consumer b2consumer b3consumer, 那么A组中任意某一个consumer消费会从这个组队列中移除,
  B组同理如果想让a1 a2 a3 b1 b2 b3都消费主题,可以分别给它们单独设组,
 (即只要组成员有一个消费就从该组队列移除,类似于queue)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

Kafka

1.kafka是用于构建实时数据管道和流媒体应用。它是水平扩展的,容错的,快速的;

2.相关概念:
Broker:启动kafka的一个实例就是一个broker,默认端口9092.一个kafka集群可以启动多个broker同时对外提供
        服务,broker不保存任何producer和consumer相关的信息
		
Topic:主题,kafka中同一种类型数据集的名称,相当于数据库中的表,productor将同一类型的数据写入同
       一个topic下,consumer从同一个topic消费同一类型的数据。逻辑上同一个数据集只有一个topic,
	   如果设置一个topic有多个partition和多个replication,在物理上同一个topic下的数据集会被分成多份
	   存储到不同的物理机上

Partition:partition是物理上的概念,每个topic包含一个或多个partition, 创建topic时可指定parition
       数量。每个partition对应于一个文件夹, 该文件夹下存储该partition的数据和索引文件
	   理论上partition数越多,系统的整体吞吐率就越高,但是在实际应用中并不是partition越多越好, 
       反而过多的partition在broker宕机需要重新对partition选主, 在这个过程中耗时太久会导致partition
	   暂时无法提供服务,造成写入消息失败。
	   分区命名规则是topcname-inde(eg: testtopic-1  testtopic-2)
		   
 	   为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上,
       一个topic可以分为多个partition,每个partition是一个有序的队列。
	   partition中的每条消息都会被分配一个有序的id(offset)。
	   kafka只保证按一个partition中的顺序将消息发给consumer,
	   不保证一个topic的整体(多个partition间)的顺序		
	   
Producer:消息生产者,负责向kafka中发布消息(推方式)

Consumer Group:消息者所属组,一个Consumer Group可以包含一个或者多个consumer,当一个topic(分区)被一个
        Consumer Grop消费的时候,Consumer Group内只能有一个consumer消费同一条消息,不会出现同一个
		Consumer Group中多个consumer同时消费一条消息造成一个消息被一个Consumer Group消费多次的情况

Consumer:消息消费者,consumer从kafka指定的主题中拉取消息 (拉方式)

Zookeeper中:Zookeeper在kafka集群中主要用于协调管理,Kafka将元数据信息保存在Zookeeper中,通过Zookeeper
        的协调管理来实现整个Kafka集群的动态扩展、各个Broker负载均衡、Productor通过Zookeeper感知Partition
		的Leader、Consumer消费的负载均衡并可以保存Consumer消费的状态信息


Kafka是什么? 在流式计算中,Kafka一般用来缓存数据,spark streaming通过消费Kafka的数据进行计算
在Kafka中,broker一般有多个,组成一个分布式高容错的集群
·主要职责是接受Producer和Consumer的请求,并把消息持久化到本地磁盘
·broker以topic为单位将消息分成不同的分区(partition),每个分区可以有多个副本,通过数据冗余的方式实现容错
·Kafka能够保证同一topic下同一partition内部的消息是有序的,但无法保证partition之间的消息全局有序
·Kafka broker以追加的方式将消息写到磁盘文件中,且每个分区中的消息被赋予了唯一整数标识,称之为"offset"(偏移量)
·broker中保存的数据是有有效期的,默认是7天,过了有效期存放易燃数据将被移除以释放磁盘空间。
  只要数据在有效期内,Consumer可以重复读取而不受限制
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/640202
推荐阅读
相关标签
  

闽ICP备14008679号