kafka(一)简介

介绍:

Kafka是一种高吞吐量的分布式发布-订阅消息系统,使用Scala+Java编写的

Kafka集群通过集群的方式提供服务,通过O(1)的磁盘数据结构提供消息的持久化,保证系统的可用性和扩展性

主要的应用常见如下:

1:Messaging 作为常规的消息系统

2:Websit activity tracking kafka可以作为"网站活性跟踪"的最佳工具;可以将网页/用户操作等信息发送到kafka中.并实时监控或者离线统计分析等

3:Log Aggregation kafka还可以作为"日志收集中心"。应用程序(Tomcat,Nginx,JAVA日志等)可以将操作日志"批量""异步"的发送到kafka集群中,而不是保存在本地或者DB中;kafka可以批量提交消息/压缩消息等,这对producer端而言,几乎感觉不到性能的开支.此时consumer端可以使hadoop,ELK等其他系统化的存储日志并进行分析。

名词解释:

  • Broker:kafka集群由一个或多个Broker组成。
  • Topic:这是一个逻辑概念。kafka对消息保存时根据Topic进行归类。
  • Partition:通常称之为“分区”,这是一个物理概念。每个topic将被分成一到多个partition(分区),每个partition在存储层面就是一个append log文件,通常以000000000000000000XX.log命名。kafka只保证按一个partition中的顺序将消息发给consumer,不保证一个topic的整体(多个partition间)的顺序。
  • offset:通常称为“偏移量”,任何发布到Partition的消息都会被直接追加到log文件的尾部,每条消息在文件中的位置称为offset(偏移量),offset为一个long型数字,它可以唯一标记一条消息。
  • Producer:生产者。Producer将消息发布到指定的Topic,也可以指定Partition。
  • Consumer:消费者。Consumer采用pull的形式从Producer拉取消息。
  • Consumer Group:通常称之为“消费组”,每个 consumer 都属于一个特定的 consumer group(若不指定 group name 则kafka会给一个默认的group name)。一个 topic可以有多个consumer group,topic的消息会分发到所有的Consumer Group,但每个consumer group只会把消息发给该consumer group中的一个 consumer。如果所有的consumer都具有相同的group, 即单播,消息将会在consumers之间负载均衡;如果所有的consumer都具有不同的group,那这就是"发布-订阅",每条消息将会广播给所有的consumer。
  • Replication:备份机制,每个分区partition都有自己的镜像分区来保证高可用,该分区和备份分区不在同一台物理机上。
  • Controller:kafka集群控制器,主要作用有:选举每一个topic的Leader和ISR;同步元数据信息包括broker和分区的元数据信息;broker增删监听与处理;topic变化监听与处理;分区变化监听与变化处理; broker优雅退出等。

总结:一个kafka集群是由多个Broker组成

          一个Producer产生的消息会归类到一个Topic中

          一个Topic会有多个Partition并分布在不同的Broker中

          一个Consumer可以消费多个Producer的消息,但是一个Partition的消息只能被一个Consumer消费

拓扑图:

作者:慕菲烟云 欢迎转载,与人分享是进步的源泉!

如果觉得本文对您有所帮助,您可以点赞收藏,会有持续内容不断更新中。

内容有不对的地方欢迎批评指正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕菲烟云

坚持原创,希望大家多多交流

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值