kafka学习--初识kafka。

本文介绍了消息队列的基本概念,包括点对点和发布/订阅模型,并对比了不同消息队列如Redis和RabbitMQ。重点讲解了Kafka的特性、应用场景、构成及名词解释,如topic、partition、consumer group和offset。Kafka是高吞吐量的分布式消息系统,适合实时数据管道和流处理。文章还提到了Kafka的分布式特性和与ZooKeeper的协调服务,以及消息传输的事务定义。
摘要由CSDN通过智能技术生成

学习背景:

公司最近打算将之前的项目改造成分布式的。但我觉得是个坑。。。 简单来说就是将之前的单体应用(应用程序、数据库)部署多套在不同的地市上。应用给统一的入口,相互之间的数据同步在应用层面进行同步。(其实数据库层面同步比较不坑,那样的话就不用从繁杂的业务里把数据的操作挑出来进行同步了。)。应用层面进行消息同步,所以选择了kafka这个消息中间件。于是就开始了kafka的学习之路。

1、 消息队列(Message Queue)

   kafka是消息队列中的一种。所以,介绍kafka之前先简单的说下现在比较流行的几个消息队列吧

   Message Queue消息传送系统提供传送服务。消息传送依赖于大量支持组件,这些组件负责处理连接服务、消息的路由和传送、持久性、安全性以及日志记录。消息服务器可以使用一个或多个代理实例。


JMS(Java Messaging Service)是Java平台上有关面向消息中间件(MOM)的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发,翻译为Java消息服务。

1.1 消息队列分类

   消息队列分类:点对点和发布/订阅两种:

  1、点对点:

   消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。
   消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息。Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。

  2、发布/订阅:

         消息生产者(发布)将消息发布到topic中,同时有多个消息消费者(订阅)消费该消息。和点对点方式不同,发布到topic的消息会被所有订阅者消费。

1.2 消息队列对比

    1、 RabbitMQ:支持的协议多,非常重量级消息队列,对路由(Routing),负载均衡(Loadbalance)或者数据持久化都有很好的支持。

   2、 ZeroMQ:号称最快的消息队列系统,尤其针对大吞吐量的需求场景,擅长的高级/复杂的队列,但是技术也复杂,并且只提供非持久性的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值