Kafka 常见问题

1.Kafka 的设计时什么样的呢? Kafka 将消息以 topic 为单位进行归纳 将向 Kafka topic 发布消息的程序成为 producers. 将预订 topics 并消费消息的程序成为 consumer. Kafka 以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个 broker. producers 通过网络将消息发送到 Kafka 集群,集群向消费者提供消息 2.

- 阅读全文 -

kafka的零拷贝技术

kafka一直以高吞吐量著称,在其高性能的背后,是多方面协作的结果,架构、分布式partition存储、ISR数据同步、以及高效利用磁盘/操作系统特性。而零拷贝技术正是kafka能够高效利用磁盘/操作系统特性核心。零拷贝零拷贝并不是不需要拷贝,而是减少不必要的拷贝次数。 传统IO流程 传统IO 将磁盘文件,拷贝到操作系统内核缓冲区将内核缓冲区的数据,拷贝到应用程序的buffer将应用程序buffe

- 阅读全文 -

分布式事务

事务的概念事务:事务是由一组操作构成的可靠的独立的工作单元,具备ACID的特性,并由类似begin transaction和end transaction语句或者函数界定。ACID特性:原子性,一致性,隔离性,持久性原子性(atomicity):一个事务为不可分割的工作单位,要么都做,要么都不做一致性(consistency):事务必须是使数据库从一个一致性状态变成另一个一致性状态。隔离性(iso

- 阅读全文 -

消息队列重复消费、顺序消费

使用了消息队列,如何保证消息不重复消费?这个问题等价于如何保证消息消费时的幂等性?我们先来看看是如何产生重复消费的。消息中间件有rabbitmq、rocketmq、kafka等,都可能出现重复消费,拿kafka举例吧,公司的系统用的kafka最近出现过这个问题。kafka有offset的概念,就是消息偏移量。消费时就是根据这个偏移量来判断是否消费过的。当消息对应的业务处理完了之后,就需要往kafk

- 阅读全文 -

聊聊消息队列

为啥要使用消息队列呢?现在常用的就是微服务架构,分布式部署,业务场景越来越复杂,单机的技术栈和中间件已经不适用了,使用起来对系统很不友好,所以引入消息队列中间件。都在哪些场景用到消息队列?消息队列总结下来有三个作用:异步,解耦,削峰异步异步是指通信双方不需要共同的时钟,发送方不需要等待接收方回应,接收方也不知道发送方什么时候发送的。举个例子来介绍消息队列在系统中的异步作用比如下单系统,最开始可能就

- 阅读全文 -