kafka学习(1)

目录

kafka是什么?

为什么要用kafka

kafka的特点

kafka结构

Kafka Producer的Ack机制

kafka是什么?

收集nginx日志,将nginx日志的关键字段进行分析,将日志分析清洗后的数据再存入mysql数据库

典型的生产者消费者模型

为什么要用kafka

统一收集日志到kafka可以快速定位故障;方便部署边缘程序,后续需要日

kafka的特点

业务解耦,减少业务的耦合性,尽量模块化业务,更加灵活

流量削峰,把kafka当作缓冲区,缓解数据库流量

消息中间体,两种通讯模式:点对点通讯,发布订阅

kafka结构

broker:

kafka的节点

topic:

主题,消息的分类比如nginx和mysql日志给不同的主题,就是不同的类型

parition:

分区,提高吞吐量,提高并发,多个partition

会造成顺讯混乱,如果对消息顺讯有要求,就只要设计一个partition就可以了

replice:

备份,备份partition,但是不能备份到同一个broker中,交错分布

实现kafka里面的高可用

leader和follower:

有备份实现里partitoin的高可用,但是多个partiyoin之间如何工作呢?

选一个作为leader(主)其他作为follower

如何保障leader和follower的数据一致性呢?

ISR

用ISR集合列表:比如说有五个副本,选一个作为leader其他为follower,一个follower挂掉了,就从列表中删除这个follower,其他继续同步,如果leader挂了,就选一个follower当leader继续进行同步


Kafka Producer的Ack机制

Kafka的Ack机制指producer的消息发送确认机制,其影响kafka集群的吞吐量和消息可靠性。

Ack=0,相当于异步发送,意味着producer不等待broker同步完成,消息发送完毕继续发送下一批信息。提供了最低延迟,但持久性最弱,当服务器发生故障时很可能发生数据丢失。如果leader死亡,producer继续发送消息,broker接收不到数据就会造成数据丢失。

Ack=1,producer要等待leader成功收到消息并确认,才发送下一条message。提供较低的延迟性以及较好的持久性。但是如果partition下的leader死亡,而follower尚未复制数据,数据就会丢失。

Ack=-1,leader收到所有消息,且follower同步完数据,才发送下一条数据。延迟性最差,持久性最好(即可靠性最好)。

三种参数设置性能递减,可靠性递增。

同时,Ack默认值为1,此时吞吐量与可靠性折中。实际生产中可以根据实际需求进行调整。

zookeeper:

旧版本的kafka需要配置zookeeper,现在最新版本的kafka已经脱离zookeeper。

是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

 图有点乱^^


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值