kafka:分布式消息服务。
对应官网有详细的介绍http://kafka.apache.org/
原理简单分析
kafka原理如上图所示:producer将消息推送到kafka服务上,然后consumer再拉取消息
而重点是kafka修改了原来JMS的模型,将原来点对点发送消息机制(queue)去掉了,而换来了group_id的概念,每一个group中有多个consumer
那么,现在producer发送消息到topic,但每一个group中只有一个consumer能消费到消息,那又如何做到点对点,广播式发送消息呢?
点对点:kafka实现,由于每一个group中只有一个consumer才能消费消息,那么将每一个group中能够消费的consumer抽取出来组成一个单独的组,不就能实现点对点了
广播式:既然每一个组都能消费到消息,这也就是广播式
kafka其实用到了两个极端
环境搭建与测试
1.下载kafka安装包,并解压
2.修改解压后的文件夹名,打卡kafka文件夹,包括一些常见的文件夹
3.启动zookeeper
由于kafka需要使用到zookeeper作为注册中心,所以需要安装zookeeper,但是单机版kafka已经内嵌了zookeeper,我们只需要启动zookeeper服务就行了。
打开zookeeper配置文件可以看到,其实配置文件里边就只放了一个数据目录和一个zookeeper客户端端口
4.启动kafka服务
打卡kafka服务启动的配置文件
broker.id=0 在kafka集群环境中,每一个kafka服务都需要有一个唯一的身份证号
zookeeper.connect=localhost:2181 在集群环境中,连接zookeeper的ip
5.启动kafka topic,并创建topic
replication:表示producer消息副本多少
partition:表示每个topic消息,分为多少分(主要是在集群环境中进行分片)
topic:发送消息到具体的主题
6.启动producer发送消息
启动后,光标会闪动
7.启动consumer,会立即接收到消息
就此初步完成简单的kafka消息发送接收