消息队列中间件MQ之Kafka

现代的互联网分布式系统,只要稍微大一些,就一定逃不开3类中间件:远程调用(RPC)框架、消息队列、数据库访问中间件。Kafka 是消息队列中间件的代表产品,用 Scala 语言实现。
首先,Kafka 中有一些基本的概念需要熟悉 :

  • Topic,指消息的类别,每个消息都必须有;
  • Producer,指消息的产生者,或者,消息的写端;
  • Consumer,指消息的消费者,或者,消息的读端;
  • Producer Group,指产生者组,组内的生产者产生同一类消息;
  • Consumer Group,指消费者组,组内的消费者消费同一类消息;
  • Broker,指消息服务器,Producer 产生的消息都是写到这里,Consumer 读消息也是从这里读;
  • Zookeeper,是 Kafka 的注册中心,Broker 和 Consumer 之间的协调器,包含状态信息、配置信息和一些 Topic 的信息;
  • Partition,指消息的水平分区,一个 Topic 可以有多个分区;
  • Replica,指消息的副本,为了提高可用性,将消息副本保存在其他 Broker 上;
    特别说明,Broker 是指单个消息服务进程,一般情况下,Kafka 是集群运行的,Broker 只是集群中的一个服务进程,而非代指整个 Kafka 服务,可以简单将 Broker 理解成服务器(Server)。Kafka 引入的术语都比较常见,从字面上理解相对直观。Kafka 的大致结构图是这样,

Kafka
Kafka 是 Pull 模式的消息队列,即 Consumer 连到消息队列服务上,主动请求新消息,如果要做到实时性,需要采用长轮询,Kafka 在0.8的时候已经支持长轮询模式。上图中 Consumer 的连接箭头方向可能会让读者误以为是 Push 模式,特此注明。更多关于 Kafka 设计的文章可以参考官方文档,或者一些比较好的博客文章。

参考:
说说 MQ 之 Kafka
说说 MQ 之 Kafka(一)


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 using1174@foxmail.com

文章标题: 消息队列中间件MQ之Kafka

文章字数: 500

本文作者: Jun

发布时间: 2018-10-30, 12:07:00

最后更新: 2018-10-30, 12:14:48

原始链接: http://yoursite.com/2018/10/30/息队列中间件MQ之Kafka/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏