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

  消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流。关于消息中间件的一下介绍就介绍到这里了,感兴趣的可以继续了解,下面新霸哥将和大家介绍一下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的设计思想的一些相关的技术,新霸哥后面会继续放出。

最新文章

  1. CentOS 7网卡网桥、绑定设置
  2. 服务器三大体系SMP、NUMA、MPP介绍
  3. 新学习到的vi的一些命令
  4. 如何在安裝SELinux的环境执行Quartus II
  5. 开源安卓播放器:Dolphin Player 简单分析
  6. [转]Windows7 64bit下配置Apache+PHP+MySQL
  7. java中强,软,弱,虚引用 以及WeakHahMap
  8. [OIDC in Action] 3. 基于OIDC(OpenID Connect)的SSO(添加Github OAuth 2.0的支持)
  9. Ubuntu 18.04 系统配置 NPM环境和mysql数据库问题解决
  10. CSS选择器中的特殊性
  11. java打包发布程序.jar(Eclipse)
  12. BZOJ4811 [Ynoi2017]由乃的OJ 树链剖分
  13. redis 在Linux下的安装与配置
  14. 8.1、包,__init__.py,
  15. 《Linux内核设计与实现》 第三周 读书笔记
  16. Android 控件: Webview 的一些知识点
  17. Insert Delete GetRandom O(1)
  18. dubbo 常见错误 通配符的匹配很全面, 但无法找到元素 'dubbo:application' java.lang.reflect.MalformedParameterizedTypeException 通配符的匹配很全面, 但无法找到元素 'dubbo:application' 的声明。 Unsupported major.minor version 52.0 (unable to l
  19. Django分页的实现
  20. Chapter 5 Order Inversion Pattern

热门文章

  1. 本地oracle可以通过localhost连接,无法通过ip地址连接解决方法,oracle远程连接配置
  2. 生成ip地址表的不同姿势--脚本生成和echo命令生成
  3. JS中在当前日期上追加一天或者获取上一个月和下一个月
  4. Django之模型的高级用法
  5. JavaScript中的普通函数和构造函数
  6. koa2-connect-history-api-fallback 使用
  7. Node、Document关系的探究
  8. charles安装&破解
  9. ubuntu安装软件失败,出现404错误,更新软件源
  10. android webkit 初始化流程