1. 首页
  2. 大数据
  3. Kafka教程

【Kafka教程】(一)Kafka概述、特点、优势、安装

概念

Apache Kafka 是一个分布式可分区、可复制发布订阅 消息系统。数据在 kafka 中持久化,用户可以随时按需读取。另外数据以分布式的方式存储,提高容错性,易于扩展。

发布和订阅

消息的publisher并不直接将message发送给subscriber,它们之间会有broker(消息被发布到的中心点),消息将被发送至broker。

消息队列

“消息队列”是在消息的传输过程中保存消息的容器。但它不仅仅只是一个中间仓库,它实现了生产者与消费者的有效解耦,降低了系统复杂性,功能如下:

  • 应用解耦
    【Kafka教程】(一)Kafka概述、特点、优势、安装
    【Kafka教程】(一)Kafka概述、特点、优势、安装

  • 异步处理
    有的时候 用户不需要立即处理消息 异步机制允许用户把消息放入队列但不立即处理它 想放多少放多少 有需要的时候再处理
    【Kafka教程】(一)Kafka概述、特点、优势、安装
    【Kafka教程】(一)Kafka概述、特点、优势、安装
    【Kafka教程】(一)Kafka概述、特点、优势、安装

  • 流量削峰
    主要用于秒杀场景,流量暴增可能导致应用挂掉,但这种场景并不是天天有,如果因此提高机器性能未免太浪费。
    用户的请求,服务器接收后,首先写入消息队列。假如消息队列长度超过最大数量,则直接抛弃用户请求或跳转到错误页面。
    秒杀业务根据消息队列中的请求信息,再做后续处理。
    【Kafka教程】(一)Kafka概述、特点、优势、安装

  • 日志处理
    比如Kafka,主要就是用于解决大量日志传输的问题,负责日志数据的接收,存储和转发。
    【Kafka教程】(一)Kafka概述、特点、优势、安装

  • 缓冲
    消息队列通过一个缓冲层来帮助任务高效的执行,控制和优化数据流经过系统的速度

优势

  • 多个生产者
    无论 kafka 多个生产者的客户端正在使用很多 topic 还是同一个 topic , Kafka 都能够无缝处理好这些生产者。这使得 kafka 成为一个从多个前端系统聚合数据,然后提供一致的数据格式的理想系统. 例如, 一个通过多个微服务向用户提供内容的站点, 可以为统计 page view 而只设立一个 topic, 所有的服务将 page view 以统一的格式写入这个 topic. 消费程序能够以统一的数据格式来接收 page view 数据, 而不需要去协调多个生产者流
  • 多个消费者
    多个消费者去读取任意的单个消息流而不相互影响;而其他的很多消息队列系统,一旦一个消息被一个客户端消费,那么这个消息就不能被其他客户端消费,这是 kafka 与其他队列不同的地方
  • 基于硬盘的持久化消息存储
    这意味着消费者不需要实时的处理数据,也不会丢失数据。
  • 可扩展性和高性能

安装

KAFKA安装很简单,直接下载tar包解压之后编辑server.properties即可

broker.id=0
host.name=master
log.dirs=/usr/local/kafka_2.11-0.8.2.1/logs
zookeeper.connect=master:2181,slave1:2181,slave2:2181

broker.id:broker表示当前服务器上的Kafka进程。每个节点都应该不一样的id。
host.name:表示主机名。
log.dirs:数据存放目录,很重要。之后要看partition在哪就要去这里。
zookeeper.connect:KAFKA是依赖ZK的。

BDStar原创文章。发布者:Liuyanling,转载请注明出处:http://bigdata-star.com/archives/1463

发表评论

登录后才能评论

联系我们

562373081

在线咨询:点击这里给我发消息

邮件:562373081@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code