第三章 zookeeper+kafka群集

news/2024/11/15 5:42:59/

消息队列

概念

  • 消息(Message)是指在应用间传送的数据
  • 消息队列(Message Queue)是一种应用间的通信方式解决方法,确保消息的可靠传递

特征

存储

  • 将消息存储在某种类型的缓冲区中,直到目标进程读取这些消息或将其从消息队列中显式移除为止。

异步

  • 消息队列通过缓冲消息可以在应用程序中公开一定程度的异步性,允许源进程发送消息并在队列中累积消息,而目标进程则可以挑选消息进行处理

为什么需要消息队列

  • 解耦、冗余、扩展性、灵活性、峰值处理能力、可恢复性、顺序保证、异步通信

kafka

概念

  • Kafka 是一种高吞吐量的分布式发布/订阅消息系统
  • kafka 是 Apache 组织下的一个开源系统
  • 可以实时的处理大量数据以满足各种需求场景

kafka角色术语

角色

说明

Broker(经纪人)

Kafka 集群包含一个或多个服务器,每个服务器被称为 broker

Topic(主题)

每条发布到 Kafka 集群的消息都有一个分类,这个类别被称为 Topic

Producer(生产者)

负责发布消息到 kafka broker

Consumer(消费者)

kafka broker拉取数据,并消费这些已发布的消息

Partition(分区)

Partition 是物理上的概念,每个 Topic 包含一个或多个 Partition,每个 partition 都是一个有序的队列。partition 中的每条消息都会被分配一个有序的 id(offset)

Consumer Group(消费者组)

可以给每个 Consumer 指定消费组,若不指定消费者组,则属于默认的 group

Message(消息)

通信的基本单位,每个 producer 可以向一个 topic 发布一些消息

kafka架构

zookeeper

概念

  • ZooKeeper 是一种分布式协调技术,所谓分布式协调技术主要是用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种共享资源,防止造成资源竞争(脑裂)的后果。

工作原理

master启动

  • 各节点向 ZooKeeper 中注册节点信息,以编号最小算法选举出一个主节点,另外的节点就是备用节点,由 zookeeper 完成对两个 Master 进程的调度,和了主、备节点的分配和协作。

master故障

  • 如果主节点A发生了故障,这时候它在 ZooKeeper 所注册的节点信息会被自动删除,并会再次发出选举

master恢复

  • 如果主节点恢复了,它会再次向 ZooKeeper 注册自身的节点信息,但注册的节点信息编号会变小,因此不会称为 master,而是另一台节点继续担任 master

zookeeper架构

zookeeper集群主要角色有 server 和 client,其中 server 又分为 leader、follower 和 observer 三个角色

  • Leader:领导者角色,主要负责投票的发起和决议,以及更新系统状态。
  • follower:跟随着角色,用于接收客户端的请求并返回结果给客户端,在选举过程中参与投票。
  • observer:观察者角色,用户接收客户端的请求,并将写请求转发给 leader,同时同步 leader 状态,但是不参与投票。observer 目的是扩展系统,提高伸缩性。
  • client:客户端角色,用于向zookeeper发起请求。

zookeeperkafka中的作用

  • Broker 注册
  • Topic 注册
  • 生产者负载均衡
  • 消费者负载均衡
  • 记录消息分区与消费者的关系
  • 消息消费进度 Offset 记录
  • 消费者注册

http://www.ppmy.cn/news/1508721.html

相关文章

【HarmonyOS NEXT星河版开发学习】小型测试案例11-购物车数字框

个人主页→VON 收录专栏→鸿蒙开发小型案例总结​​​​​ 基础语法部分会发布于github 和 gitee上面(暂未发布) 前言 经过一周的学习,我发现还是进行拆分讲解效果会比较好,因为鸿蒙和前端十分的相识。主要就是表达的方式不同罢了…

设计模式-单例设计模式

单例模式的设计和线程安全 单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点。实现单例模式时,线程安全性是一个重要考虑因素,特别是在多线程环境中。 1. C11 之前的线程安全实现 在 C11 之前&#…

电商平台的推荐算法需要备案吗?

答案是肯定的! 政策要求: 根据我国《互联网信息服务算法推荐管理规定》(以下简称《规定》)第六条,具有舆论属性或社会动员能力的互联网信息服务,包括电商平台的推荐算法,需要进行备案。 电商平…

Openlayers6 图形绘制和修改功能(结合React)

Openlayers常用的API了解的差不多了,就开始进入实战了,首先从绘制基本的图形开始,这里主要介绍一下绘制圆形、矩形和多边形。 通过使用openlayers的ol.interaction.Draw和ol.interaction.Modify模块实现地图上绘制圆形、矩形、多边形并修改编…

C++ 函数语义学——inline 函数回顾和扩展

inline 函数回顾和扩展 inline 函数回顾和扩展 inline 函数回顾和扩展1. inline 函数回顾2. inline 扩展总结 1. inline 函数回顾 inline 函数即有优点又有缺点,优点是它的执行成本一般比常规的函数调用和函数返回所带来的成本低,提高了程序执行效率&am…

05_ Electron 自定义菜单、主进程与渲染进程通信

Electron 自定义菜单、主进程与渲染进程通信 一、定义顶部菜单二、Electron 自定义右键菜单1、使用 electron/remote 模块实现 三、 Electron 主进程和渲染进程通信场景1:渲染进程给主进程发送异步消息场景2:渲染进程给主进程发送异步消息,主…

链表 203.移除链表元素 虚拟头结点

普通方法 头节点要和其他节点分开考虑,因为头节点没有上一个节点,不能通过更改上一个结点的指针来达到删除节点的目的 所以要让下一个节点成为头节点,其余节点,通过更改上一个节点的next指针,指向next.next class S…

如何在 Windows 上设置 MacOS 云主机

在Windows上设置MacOS云主机实际上涉及在Windows环境中模拟或远程管理MacOS系统,因为直接在Windows上运行MacOS作为云主机的主操作系统是不可能的,因为MacOS是为苹果硬件设计的。不过,有几种方法可以实现类似的功能: 1. 使用虚拟机…