kafka 通俗
把broker比作是一幢摩天大楼,一个10节点的kafka集群就是10幢摩天大楼,而且这些大楼都长得一模一样。
分区就相当于大楼里的一层。一个分区就相当于一整层哦。
原先大楼是空的。
现在用户创建了一个topic,就相当于是订酒店的意思。
比如先创建了一个主题叫做“跑男”,要求是1个分区,10个副本。
这什么意思呢?就相当于说我只要一层楼就行,但是要求是10幢楼各出一层。相当于“跑男”这个剧组包下了10个大楼里的同一层。比如说都是第7层。好了,现在这10幢楼的每一幢的第7层都被“跑男”主题包下了。这种情况,相当于是“邓超和他的9个小弟”,当外界有消息发过来的时候,都会去找邓超住的那幢大厦,把消息告诉邓超,其他小弟只是简单抄下来邓超收到的消息。也就是如果邓超住在1号大楼,收发消息的人都会往1号楼跑,不会去问其他楼的小弟。其他小弟不对外界开放,只是同步邓那边的消息。
如果现在又来了一个主题叫做“极限挑战”,要求是10个分区,10个副本。
这什么意思呢?就相当于是说我要10层楼,不是一幢大厦的10层楼,我要你们所有10幢大厦里所有的第11层到第20层都给我们。其实相当于给了100层了,10*10=100嘛。那其实这100层怎么分配呢,可能开始的时候,“极限挑战”的10个主角人员都入住在了1号大楼。2号楼到10号楼都住的小弟。那就出现了所有外界消息到了都会跑去1号楼,要么去11层,要么去12层,要么去13层。。。。比刚才“跑男”好多了,有10个主角都可以说了算。这10个主角接收和处理的其实都是“极限挑战”主题的事情。这里我们看到了1个分区和10个分区相比的好处。10个分区可以同时处理更多的请求,接收更多消息。但是发现没有,主角竟然都住在同一幢大楼,这是很危险的,万一某一天这个大楼关门了,那就所有消息都进不来了,没有一个能处理的人了。其他楼纵然开放,住的都是小弟,小弟说了不算数,也不接收处理消息的。
所以最好的方式是,主角分散到不同的大楼,比如1号楼的第11层是第一个主角,2号楼的第12层是第二个主角,3号楼的第13层是第三个主角。。。。这样的话,就算10幢楼里有9幢楼都关闭了,只要还有一幢大楼存活,他就可以继续处理“极限挑战”主题的所有事务,只是压力暂时会比较大,等其他大楼恢复了,压力就均摊到10个大楼上去了。那到这里,我们好像还没有见识到10个副本是为什么,好像只要有主角就够了嘛,要小弟做什么呢?小弟其实就是简单同步主角的收到的消息。他简单存起来。不处理也不对外服务。1号主角之前收到的信息和其他主角是不一样的,如果现在1号楼突然永久关闭了的话,那么上哪里获取1号主角之前究竟收到了什么信息呢?答案是从小弟那里。比如1号楼关门了,原来的消息也出不来,这时候2号楼的主角可以去2号楼的第11楼找一下之前1号楼主角的小弟。3号楼的主角可用去3号楼的第11层找一下之前1号楼主角的小弟。。。。2号楼到10号楼的第11层都是住着原先1号楼主角的小弟。从那里可以知道之前1号楼的主角处理过哪些消息。
kafka 通俗的更多相关文章
- 消息队列 Kafka 的基本知识及 .NET Core 客户端
前言 最新项目中要用到消息队列来做消息的传输,之所以选着 Kafka 是因为要配合其他 java 项目中,所以就对 Kafka 了解了一下,也算是做个笔记吧. 本篇不谈论 Kafka 和其他的一些消息 ...
- kafka:一个分布式消息系统
1.背景 最近因为工作需要,调研了追求高吞吐的轻量级消息系统Kafka,打算替换掉线上运行的ActiveMQ,主要是因为明年的预算日流量有十亿,而ActiveMQ的分布式实现的很奇怪,所以希望找一个适 ...
- Kafka及 .NET Core 客户端
消息队列 Kafka 的基本知识及 .NET Core 客户端 消息队列 Kafka 的基本知识及 .NET Core 客户端 前言 最新项目中要用到消息队列来做消息的传输,之所以选着 Kafka ...
- Kafka/Metaq设计思想学习笔记 转
转载自: http://my.oschina.net/geecoodeer/blog/194829 本文没有特意区分它们之间的区别,仅仅是列出其中笔者认为好的设计思想,供后续设计参考. 目前笔者并没有 ...
- kafka学习(一)-背景及架构设计
概念和术语 消息,全称为Message,是指在生产者.服务端和消费者之间传输数据. 消息代理:全称为Message Broker,通俗来讲就是指该MQ的服务端或者说服务器. 消息生产者:全称为Mess ...
- 分布式消息系统kafka
kafka:一个分布式消息系统 1.背景 最近因为工作需要,调研了追求高吞吐的轻量级消息系统Kafka,打算替换掉线上运行的ActiveMQ,主要是因为明年的预算日流量有十亿,而ActiveMQ的分布 ...
- kafka集群搭建(windows环境下)
一.简介 Kafka 是一个实现了分布式的.具有分区.以及复制的日志的一个服务.它通过一套独特的设计提供了消息系统中间件的功能.它是一种发布订阅功能的消息系统. 1.名词介绍 Message 消息,就 ...
- Kafka的基本概念与安装指南(单机+集群同步)
最近在搞spark streaming,很自然的前端对接的就是kafka.不过在kafka的使用中还是遇到一些问题,比如mirrormaker莫名其妙的丢失数据[原因稍后再说],消费数据offset错 ...
- 消息中间件选型分析——从Kafka与RabbitMQ的对比来看全局
一.前言 消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息排队模型,它可以在分布式环境下提供应用解耦 ...
随机推荐
- 看图知义,Winform开发的技术特点分析
整理一下自己之前的Winform开发要点,以图文的方式展示一些关键性的技术特点,总结一下. 1.主体界面布局 2.权限管理系统 3.工作流模块 4.字典管理 5.通用的附件管理模块 6.系统模块化开发 ...
- 【项目实践】一文带你搞定Spring Security + JWT
以项目驱动学习,以实践检验真知 前言 关于认证和授权,R之前已经写了两篇文章: [项目实践]在用安全框架前,我想先让你手撸一个登陆认证 [项目实践]一文带你搞定页面权限.按钮权限以及数据权限 在这两篇 ...
- TeamView WaitforConnectFailed错误原因
更新到最新版本并重启如下服务 检查TCP IPV4是否选中
- Flutter 布局类组件:弹性布局(Flex)
前言 弹性布局允许子组件按照一定比例来分配父容器空间,Flutter中的弹性布局主要通过Flex和Expanded来配合实现. Flex Flex组件可以沿着水平或垂直方向排列子组件,如果你知道主轴方 ...
- 剑指offer 树的基本操作:四种遍历方式
前序遍历 递归版 编程思想 即借助系统栈,效率较低.二叉树的前序遍历规则:1. 访问根结点: 2. 遍历左子树: 3. 遍历右子树 编程实现 //树的定义 struct TreeNode { int ...
- 二进制格式 PLY 模型文件的读取与渲染
PLY 文件头部信息: ply format binary_little_endian 1.0 comment VCGLIB generated element vertex 13469 proper ...
- JavaScript中的原型、原型链、原型模式
今天,咱来聊聊JavaScript中的原型跟原型链 原型跟原型模式 这一块的知识,主要是设计模式方面的. 首先,我们知道JavaScript是面向对象的.既然是面向对象,那它自然也有相应的类跟对象等概 ...
- oralce move和shrink释放高水位
转自:https://blog.51cto.com/fengfeng688/1955137 move和shrink的共同点: 收缩段,消除部分行迁移,消除空间碎片,使数据更紧密 shrink用法: 语 ...
- Windows10下Canvas对象获得屏幕坐标不正确的原因排查与处理
因为Canvas没有直接将画布内容保存为图片的方法,所以很多时候是通过获得Canvas画布的坐标,然后通过截图的方式来将画布内容保存为本地图片. 如何取得Canvas画布的坐标呢,比较简单实用的方式如 ...
- C# 关机/重启/注销计算机
一.调用 shutdown.exe 执行操作 调用 shutdown.exe 执行计算机关机.重启.注销操作,还可以设置多长时间后执行操作,代码如下: 1 /// <summary> 2 ...