kafka的相关要点总结

1.kafka每个节点叫做broker,producer向kafka发送消息时,是将消息发送给指定的topic。同时每个topic下面还细问分partition,具体到每条消息细分到哪个partition,是根据消息的key参数以及配置的partition规则来的,由于多个partition的存在,所以针对同一个topic,其吞吐量更高,并发性也越强
2.partition中消息都是直接追加写到尾部的,这种顺序记录的方式其实比随机访问内存还快,从而使得读取消息也是能够顺序读取,速度也很快。
3.每个partition中又细分为segment,这是存储消息的最小物理单位,也是为了便于定时清理过期消息数据
4.kafka中有LEO(LogEndOffset:日志最后位置)和HW(highWaterMark:副本同步位置)的概念,其中LEO为每个partition的log最后一条日志的位置,HW为consumer能够看到的此partition的位置。一般来说,HW是要等到所有kafka follower都确认同步好partition后的partition的位置。LEO有可能不会等于HW的。
5.kafka并没有利用zookeeper来选举leader,而是利用zookeeper来记录每个partition的信息的,记录的信息有:每个consumer对应消费的partition的offset,consumer group中消费partition对应的consumer id,每个分片partition的副本同步状态等等
6.kafka选举:kafka leader负责所有的write和read(这点跟zookeeper好像不一样,zookeeper的leader负责write,follower可以read)候选kafa必须是已经同步了kafka lead所有commit的消息的follower中选举出来,这样能保证消息丢失的最小化
7.kafka的消息传送:默认都是以sync方式发送,也可以手动设置为async形式发送,虽然提高了效率,但是增大了丢失消息的风险。producer发送消息时,原则是是exactly once,但是还是存在at least once的可能:比如producer与kafka的网络中断,producer无法收到kafka的ack确认消息,会重试多次,这里就造成了at least once.
8.kafka会保证topic下面的每个消息只被consumer group下面的一个consumer消费,一个consumer会对应到一个topic下面的一个或者多个partition,一个partition只会被一个consumer group下面的consumer对应消费
Spring集成Kafka是指在Spring框架中使用Kafka消息队列的相关项目。Kafka是一个高性能、分布式的消息队列系统,可以处理大规模的实时数据流。 在Spring中集成Kafka可以通过使用Spring Kafka或者Spring Cloud Stream来实现。Spring Kafka是Spring与Kafka的低级别集成,提供了对Kafka原生API的封装,可以方便地发送和接收Kafka消息。通过配置KafkaTemplate和KafkaListener注解,可以在Spring应用中以简单的方式使用Kafka。 Spring Cloud Stream是基于Spring Boot的扩展项目,用于构建消息驱动的微服务应用程序。它提供了高级别的抽象,隐藏了底层消息系统的细节,并支持多种消息中间件,包括Kafka。通过配置绑定器和消息通道,可以在Spring Cloud Stream中轻松地集成Kafka。开发人员只需要关注业务逻辑,而不用担心底层消息系统的实现。 使用Spring集成Kafka项目可以带来以下好处: 1. 可靠性:Kafka提供了高可靠性和持久性的消息传递机制,可以确保消息不丢失。 2. 异步处理:通过将消息发送到Kafka队列中,可以实现异步处理,提高系统的性能和吞吐量。 3. 扩展性:Kafka是一个分布式系统,可以轻松地进行扩展和水平伸缩,适用于处理大规模的数据流。 4. 实时性:Kafka的低延迟特性可以满足实时数据处理的需求,可以实时地传递和处理大量的数据。 总之,通过Spring集成Kafka相关项目,可以简化Kafka消息队列的使用,并在Spring应用中实现高可靠性、高性能的消息传输和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值