柚子快报激活码778899分享:分布式 Kafka复习

http://yzkb.51969.com/

消息中间件的作用:

异步处理:

与并行相比,虽然减少了时间,但是还是得等待其他线程执行完,但是消息中间件对于简单的业务处理,还要引入一个中间件也比较复杂

如果我投递了简历之后需要发送成功邮件以及短信,就可以交给消息中间件

就像数据库、redis数据一致性,需要用到延迟双删,也可以异步处理

应用解耦:

比如用户下单之后,需要去库存系统缩减库存,这时候呢如果通过feign远程调用,这样耦合度就比较高,通过消息中间件去确保最终一致性

流量削峰:

像12306在抢票的时候,并发量极高,就将这些请求放在消息队列中一个个的去处理

日志处理:

将日志放在消息队列中,解决大日志传输的问题。

流处理

Kafka的优点:

天然支持分布式

持久化数据(默认保存七天)

流式处理动态的数据

高性能、高可用、高伸缩性(集群目标)

基本概念:

消息和批次:

消息:由字节数组组成

为了提高效率,会将消息以批次(生产者源码里的缓冲池)的形式写入

序列化和反序列化(JSON或者XML)

主题和分区:

topic:以主题的形式进行分类(类似于数据库中的表),一个主题可以跨越多个服务器,高性能之一,多台服务器磁盘读写比单台更高

partition:一个topic对应多个分区,消息顺序追加

生产者:

消息默认情况下均衡分布在所有分区上,如果需要指定分区,可以自己写分区器或者根据key

直接指定分区:

消费者:

消费者订阅主题,可以订阅不同的主题,可以负责不同分区,但是一个分区只能对应一个消费者,按照消息顺序读写

分区的偏移量都会保存在kafka上consumer_offset这个主题上

Broker和集群:

主要工作接收消息,设置偏移量,磁盘保存

拉模式,响应请求

Brocker会组成一个集群,每个集群中会选出一个集群控制器( Kafka使用 Zookeeper的临时节点来选举控制器,并在节点加入集群或退出集群时通知控制器)。包括进行分区,监控brocker

集群内布通过管道技术进行高效的复制

消息持久化:要么时间7天要么大小1G

常见配置:

brocker id 集群不能重复

listeners:监听列表

zookeeper connect:集群的地址

num partitions:分区数量

日志时间

分区大小

日志片段大小

能接收的最大字节数

硬件对于性能的影响:

磁盘吞吐量影响生产者,写的快性能就好

内存影响消费者,消费者数据一般从内存之

柚子快报激活码778899分享:分布式 Kafka复习

http://yzkb.51969.com/

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: