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