zookeeper+kafka消息队列部署

消息队列的概念

    • 什么是消息队列
      • 消息是指在应用间传送的数据
      • 消息队列是一种应用间的通信方式解决方法,确保消息的可靠传递
      • 专门为消息做缓存的
    • 消息队列的特征
      • 存储
        • 将消息存储在某个类型的缓冲区中,指导目标进读取这些消息或者将其从消息队列中显示移除为止
      • 异步
        • 消息队列通过缓冲消息可以在应用程序当中公开一定程度的异步性,允许源进程发送消息并在队列当中累积消息,而且目标进程可以挑选消息并进行处理
    • 为什么需要消息队列
      • 解耦
      • 冗余
      • 扩展性
      • 灵活性
      • 峰值处理能力
      • 可恢复性
      • 顺序保证
      • 异步通信

什么是kafka

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

kafka角色术语

  • (1)Broker:Kafka集群包含一个或多个服务器,每个服务器被称为broker(经纪人)。
  • (2)Topic:每条发布到Kafka集群的消息都有一个分类,这个类别被称为Topic(主题)。(3)Producer:指消息的生产者,负责发布消息到kafka broker。
  • (4)Consumer:指消息的消费者,从kafka broker拉取数据,并消费这些已发布的消息。(5)Partition:Partition是物理上的概念,每个Topic包含一个或多个Partition,每个partition都是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset)
  • (6)Consumer Group:消费者组,可以给每个Consumer指定消费组,若不指定消费者组,则属于默认的group。
  • (7)Message:消息,通信的基本单位,每个producer可以向一个topic发布一些消息。

kafka架构

zookeeper+kafka消息队列部署_第1张图片

zookeeper基础概念

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

zookeeper工作原理

master启动

各节点想zookeeper中注册节点信息,以编号最小算法选举出一个主节点,另外的节点就是备份节点,由zookeeper完成对两个master进程的调度、以及对于主备节点的分配和协作

master故障

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

master恢复

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

zookeeper架构

zookeeper+kafka消息队列部署_第2张图片

Leader:领导者角色,主要负责投票的发起和决议,以及更新系统状态

follower:跟随着角色,用于接收客户端的请求并返回结果给客户端,在选举过程中参与投票。

observer:观察者角色,用户接收客户端的请求,并将写请求转发给leader,同时同步leader状态,但是不参与投票。Observer目的是扩展系统,提高伸缩性

client:客户端角色,用于向zookeeper发起请求

zookeeper在kafka中的作用

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

你可能感兴趣的:(zookeeper,kafka,分布式)