* kafka----一个发布订阅消息系统,中间件;一个分布式、分区、可重复的日志服务
kafka需要了解基础几层结构,生产者订阅者等使用方法,和在高并发、一致性场景使用。
(凡事面试问一致性、高并发都脱离不了消息队列和事务)。

1.常用消息队列框架中间件Kafka
2.基础结构
producer:往kafka发消息的客户端
Consumer:从kafka读消息的客户端
Topic:一个队列
Consumer Group:消费群,发送消息时可以实现广播;可以将一个topic发给多个consumer。
Broker (B):一台kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic。
Partition(P):为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上。
partition保证consumer发送Broker消息的顺序。
2.为什么要分区
可以将日志内容分布在多个服务器上,每个Server都可以保存partition,将topic切分成partition越多保存效率越高
而partition越多意味着容纳consumer越多,有效提升并发消费的能力。
3.高并发一致性场景下的使用
kafka能够保证数据一致性,原因在于,kafka由consumer自己保存当前发送状态,不需要和其他确认。这样会很灵活,能够保证如果需要重新处理消息,可以再从broker获得。
为提高性能,kafka的producer有一种异步发送的操作。producer先将消息放在内存中。

4.kafaka与zookeeper
zookeeper是一种开源、高性能协调应用。用于使kafka实现分布式
主要体现在通过kafka不同集群之间的通信,broker和consumer之间利用zookeeper进行负载均衡。

最新文章

  1. 也谈微信小程序
  2. android应用刷新系统多媒体库(增加or删除多媒体文件)
  3. c#文本框限制输入内容
  4. mysql-5.7.13-win32 安装
  5. paip.提升性能----java 无锁结构(CAS, Atomic, Threadlocal, volatile, 函数式编码, 不变对象)
  6. 蓝桥杯 入门训练 Fibonacci数列(水题,斐波那契数列)
  7. [saiku] 配置spring-security 允许 iframe加载saiku首页
  8. RocketMQ在linux平台下环境搭建
  9. Android 高级UI设计笔记01:使用ExpandableListView组件(ListView的扩展)
  10. js~this的陷阱
  11. <?php echo "我的第一段 PHP 脚本!"; ?>
  12. 关于echarts生成雷达图的一些参数介绍
  13. Spring Data JPA 简单查询--方法定义规则
  14. 【问题解决方案】从 Anaconda Prompt 或 Jupyter Notebook 终端进入Python后重新退出到命令状态
  15. SQLServer常用分页方式
  16. 使用RStudio调试(debug)基础学习(一)
  17. Java学习笔记34(sql基础 :增删改查1)
  18. php和js字符串的acsii码函数
  19. UVA 10976 分数拆分【暴力】
  20. ajax 案例demo

热门文章

  1. Linux CentOS如何汉化系统
  2. matlab练习程序(模糊集图像增强)
  3. java:工具类
  4. 【java开发系列】—— 嵌套类与内部类
  5. Ext,合计保留两位小数
  6. FastDFS 初始
  7. 源码安装mysql5.6.37
  8. June 17th 2017 Week 24th Saturday
  9. 站在巨人肩膀上的牛顿:Kubernetes和SAP Kyma
  10. OC 结构体