搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 软件开发信息交流 > kafka核心原理总结

kafka核心原理总结

软件开发信息交流 2017-11-02

  新霸哥发现在新的技术发展时代,消息中间件也越来越受重视,很多的企业在招聘的过程中着重强调能够熟练使用消息中间件,所有做为一个软件开发爱好者,新霸哥在此提醒广大的软件开发朋友有时间多学习。


  消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流。关于消息中间件的一下介绍就介绍到这里了,感兴趣的可以继续了解,下面新霸哥将和大家介绍一下kafka的一下相关知识。


  kafka已经被很多的中小公司使用,消息发送接受,有用过的朋友可能就很清楚了,kafka是一个支持分区的、分布式、多副本的,是一个基于zookeeper协调的分布式消息系统,我们看中的就是其中的一个最大的特性就是可以实时的处理大量数据以满足各种需求场景。


  kafka核心特性


  高效性设计是其优于其他消息中间件的一个主要特性,还有一个重要特性就是消息可靠性,能够对消息集合压缩,还有备份机制。能够支持上千个客户端同时读写,kafka集群支持热扩展。


  kafka核心组件


  (1)replication(副本)、partition(分区)


  一个topic能有非常多个副本,如果服务器配置足够好,可以配很多个,副本的个数决定了有多少个broker存放写入的数据;简单的来说副本是以partition为单位的,


  存放副本也可以这样简单的理解,备份若干个partition、但是只能有一个partition被选为Leader用于读写。在这里新霸哥提醒刚入门的朋友partition(分区)


  数量设置最好大于consumer数量,其实,这样设计的思想就是保证每个消费者都有一个partition。


  (2)producer(生产者)


  kafka中的producer能直接发送消息到Leader的 partition,可以看出producer能决定将消息推送到哪些partition。


  也能使用批处理(Batch)推送消息,提高效率。在这里新霸哥给大家一个重要的提示那就是这里有一个重要的参数acks(0、-1、1)


  (3)consumer(消费者)


  kafka中的同一个group的consumer不可以同时消费同一个partition,对于同一个group的consumer,


  kafka就可以认为是一个队列消息服务,各个consumer均衡的消费相应partition中的数据,有些时候会遇到当消费者数大于分区数时,


  一般会出现leader consumer和follower consumer,leader consumer处理所有的读写请求,


  特殊情况下leader consumer挂掉时,follower consumer会成为新的leader consumer。


  kafka的一些核心原理技术就先介绍到这里了,更多的关于Kakfa的设计思想的一些相关的技术,新霸哥后面会继续放出。


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《kafka核心原理总结》的版权归原作者「软件开发信息交流」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注软件开发信息交流微信公众号

软件开发信息交流微信公众号:javaandcp

软件开发信息交流

手机扫描上方二维码即可关注软件开发信息交流微信公众号

软件开发信息交流最新文章

精品公众号随机推荐