一,消息中间件技术选型
消息中间件有:ActiveMQ,RabbitMQ,RocketMQ,Kafka,一般在 RabbitMQ 和 Kafka 间进行选择;
ActiveMQ: 在别处看的,说没有经过大规模吞吐的测试,社区不活跃;
RocketMQ: 社区有黄掉的风险,碰到问题容易找不到技术资料;
RabbitMQ:代码开源,支持稳定,社区活跃度高,但它是用erlang语言编写的,对java工程师的阅读不怎么友好;
Kafka:社区活跃度很高;在大数据领域的实时计算,日志采集等领域是业内标准;
二、kafka的使用
据说kafka依赖zookeeper,所以安装kafka前先安装zookeeper;
2.1、服务器端----安装zookeeper 和 kafka
2.2、服务器端----创建主题
2.3、客户端----pom.xml添加依赖
2.4、客户端----添加kafka配置
2.3、客户端----生产者:向主题发送消息
2.4 客户端----消费者:消费消息
三、kafka的基本概念
概念英文 | 概念中文 | 作用 |
Broker | 中间商,掮客 | 即Kafka的服务器,用户存储消息,Kafa集群中的一台或多台服务器统称为 broker |
topic | 主题 | 每一类的消息称之为一个主题(Topic) |
parttion | 分区 | 为了提高吞吐量,每个消息主题又会有多个分区 |
group | 消费者分组 | 在Kafka中,多个消费者可以共同消息一个Topic下的消息,每个消费者消费其中的部分消息,这些消费者就组成了一个分组,拥有同一个分组名称,通常也被称为消费者集群。 |
Offset | 偏移量 | 消息存储在Kafka的Broker上,消费者拉取消息数据的过程中需要知道消息在文件中的偏移量,这个偏移量就是所谓的Offset。 |