Kafka&ZooKeeper
文章平均质量分 51
蛋焊工
搬砖小学生
展开
-
Kafka高性能原因
1、分区 分区的设计使得Kafka消息的读写性能可以突破单台broker的I/O性能瓶颈2、日志分段存储为了防止日志(Log)过大,Kafka引入了日志分段(LogSegment)的概念,将日志切分成多个日志分段。消息是按照什么形式或怎么方式存储到segment段呢?实际中有config/server.properties文件的配置如下:##日志滚动的周期时间,到达指定周期时间时,强制生成一个新的segmentlog.roll.hours=72##segment的...原创 2021-08-11 00:24:46 · 218 阅读 · 0 评论 -
Kafka消费端多线程消费丢数据的问题
现在做一个假设消费程序开了A B两个线程。每一个线程都是一个完整的Consumer实例。每个实例一次取100条消息A 取了1-100B 取了101-200现在B线程处理完成,然后提交offerset。但A线程还没处理完成。或者A线程挂了。那么下次取数据就时候就变成了从201开始取。前面的1-100数据就丢了如果我只开启一个Consumer实例。多线程处理消息也有这个问题如我只开了一个A Consumer实例。一次取了20个消息其中一个线程处理的是18。这个线程最先处理完成并提交。其他的线程还没处原创 2021-08-10 18:35:37 · 536 阅读 · 0 评论 -
Kafka与RocketMQ区别
一、数据可靠性RocketMQ支持异步实时刷盘,同步刷盘,同步Replication,异步Replication Kafka使用异步刷盘方式,异步Replication总结:RocketMQ的同步刷盘在单机可靠性上比Kafka更高,不会因为操作系统Crash,导致数据丢失。 同时同步Replication也比Kafka异步Replication更可靠,数据完全无单点。二、性能对比Kafka单机写入TPS约在百万条/秒,消息大小10个字节 RocketMQ单机写入TPS单实例约7万条/.原创 2021-08-06 20:41:42 · 6387 阅读 · 0 评论 -
Zookeeper的数据一致性(Consistency)?
Consistency GuaranteesZooKeeper is a high performance, scalable service. Both reads and write operations are designed to be fast, though reads are faster than writes. The reason for this is that in the case of reads, ZooKeeper can serve older data, whic.原创 2021-07-09 12:39:09 · 299 阅读 · 0 评论 -
Zookeeper的发布订阅用推/拉模式?
zk实现的方式是推拉结合,Client注册自己需要关注的节点,一旦节点的数据发生变更,那么Server会向对应的客户端发送Watcher事件通知,客户端接收到这个消息后,需要主动到服务端pull获取最新的数据。...原创 2021-07-08 18:47:37 · 881 阅读 · 0 评论 -
ZooKeeper惊群与脑裂
举一个很简单的例子,当你往一群鸽子中间扔一块食物,虽然最终只有一个鸽子抢到食物,但所有鸽子都会被惊动来争夺,没有抢到食物的鸽子只好等待下一块食物到来。这样,每扔一块食物,都会惊动所有的鸽子,即为惊群。对于操作系统来说,多个进程/线程在等待同一资源是,也会产生类似的效果,其结果就是每当资源可用,所有的进程/线程都来竞争资源。1、Zookeeper的惊群现象ZooKeeper 的节点通常可以作为分布式锁来使用。比如可以多个服务对同时竞争申请一个节点 “/zk/lock”,创建成功的服务获取到这个锁,其他原创 2021-07-08 18:32:37 · 727 阅读 · 0 评论 -
Zookeeper的临时节点和永久节点
Zookeeper中节点分为两种:临时节点和永久节点。 临时节点有一个节点: 当创建临时节点的程序停掉之后,这个临时节点就会消失。Zookeeper四种节点 Persistent是临时节点、 Persistent_sequential是临时有序节点。如00000、000001..... Ephemeral是永久节点、 Ephemeral_sequential是永久有序节点。...原创 2021-07-08 17:43:07 · 2441 阅读 · 2 评论 -
Zookeeper三种角色
1、zk的三种角色:Zookeeper 集群中Server有三种角色,Leader、Follower 和 Observer Leader:负责投投票的发起与决议,更新系统状态,写数据 Follower:用于接收客户端请求并用来返回结果,在选主过程中参与投票 Observer:可以接受客户端连接,将写请求转发给leader节点,但是不参与投票过程,只同步leader状态,主要存在目的就是为了提高读取效率 引进Observer角色作用:Zookeeper需保证高可用和强一致原创 2021-07-08 16:51:23 · 2562 阅读 · 0 评论 -
ZooKeeper集群搭建以及Leader选举过程
单机zk会带来那些问题?zk宕机后不会影响现有consumer和provider之间的调用,但是新的provider想要注册到注册中心上是不行的,因为zk已经宕机了。因此单点zk一旦宕机就会影响新的provider的注册和新的consumer去订阅可用列表。因此我们需要将zk搭建成集群的,那么问题又来了,搭建集群时搭建几台呢?建议是搭建奇数台,最少搭建三台,搭建偶数可以吗?是可以的,但是在...原创 2019-07-09 12:02:53 · 1011 阅读 · 1 评论 -
kafka的高可用架构原理
每一个topic都有多个Partition,每个Partition负责存储这个Topic一部分的数据。在kafka集群中,每个Partition都有多个副本,其中一个副本叫做leader,其他的副本叫做follower,如下图。假设一个Topic拆分为了3个Partition,分别是Partition0,Partiton1,Partition2,此时每个Partition都有2个副本。...原创 2019-07-08 14:54:02 · 1984 阅读 · 0 评论 -
Kafka在Windows下启动报错Will not attempt to authenticate using SASL (unknown error)
在Windows下kafka启动方式为 进入kafka目录输入 .\bin\windows\kafka-server-start.bat .\config\server.properties 启动报错如下:[2018-12-14 11:21:27,899] INFO [ZooKeeperClient] Waiting until connected. (kafka.zookeeper...原创 2018-12-14 13:51:10 · 6966 阅读 · 3 评论