看完就知道什么是kafka(一)

95 阅读2分钟

大家好我是傻鱼.

由于互联网应用中经常会用到kafka这个组件,所以这边写一个kafka的总结.

什么是kafka

kafka是一个消息中间件,他用来在不同的应用,服务,中间件之间传递消息使用.

kafka架构.png 如上图中,服务和云服务从一个发送消息至kafka的服务中,kafka的下游可以是数据库,可以是应用,也可以是处理完毕后发回的上游服务.

  • 解耦合

  • 异步处理 例如电商平台,秒杀活动。一般流程会分为:1: 风险控制、2:库存锁定、3:生成订单、4:短信通知、5:更新数据

  • 通过消息系统将秒杀活动业务拆分开,将不急需处理的业务放在后面慢慢处理;流程改为:1:风险控制、2:库存锁定、3:消息系统、4:生成订单、5:短信通知、6:更新数据

  • 流量的控制 :1. 网关在接受到请求后,就把请求放入到消息队列里面 2.后端的服务从消息队列里面获取到请求,完成后续的秒杀处理流程。然后再给用户返回结果。优点:控制了流量 缺点:会让流程变慢

举个常用的例子:在大数据的应用中需要收集一天所有用户访问量的接口情况,并对其做一定的分类处理.又要不影响到主流业务.

面对这样的业务场景.往往会使用kafka讲每次发送接口的内容转换成消息,发送到kafka中,再由后续的消费服务缓慢消费完成统计任务.

初识kafka架构

要了解kafka就先得知道kafka的各种名词的意思

Producer(生产者):是整个链路的最上游,他会生产消息并将消息推送至kafka集群服务中. 这里需要注意的是如何保证消息发送成功.这部分进阶需要关注acks.

Consumer(消费者):整个链路的最下游,他会从kafka集群消费消息.这里需要关注的是整个消费的期望:1.精准一次2.最少一次3.最多一次

kafka基本架构.png

了解完外部结构后,我们看其内部结构:

Topic:主题,每个生产者生产消息之后,都会制定到一个主题.

Partition:每个主题都有0个以上的partition.入图设计的是有一个partition的情况.partition可以理解为为主从数据,broker1的集群挂掉之后,broker2中的topic就会开始替代broker1中的topic进行运作.

kafka内部.png

Topic和Producer,Consumer,Consumer Group的关系:

参考文章:

juejin.cn/post/696310… blog.csdn.net/tototuzuoqu…