一、什么是Kafka
Kafka是一个Pub-Sub的消息系统,无论是发布还是订阅,都须指定Topic。
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者大规模的网站中的所有动作流数据
二、JMS:Java Message Service Java消息服务
1、用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信
2、JMS提供者
消息中间件,如:Kafka,RabbitMQ,RoketMQ,ActiveMQ,HornetQ
3、JMS客户
JMS程序,负责发送消息和接收处理消息
4、JMS生产者
产生并发送消息的程序
5、JMS消费者
接收并处理消息的程序
6、JMS队列
存储消息,对应于点对点消息
7、JMS主题
存储消息,对应于发布订阅消息
8、JMS消息 两种JMS消息类型
(1)、点对点(Point to Point):消息分发给一个单独的使用者,绑定一个队列javax.jms.Queue
(2)、发布/订阅(Publish/Subscribe):消息发布到一个主题,多个使用者可以订阅该主题javax.jms.Topic
9、KAFKA消息中间件的特点
消息队列中间件保证消息不丢失,并且至少消费一次
三、安装SCALA
1、将课程提供的scala-2.11.12.tgz使用WinSCP拷贝到node1的/usr/local目录下。
2、对scala-2.11.12.tgz进行解压缩:tar -zxvf scala-2.11.12.tgz。
3、对scala目录进行重命名:mv scala-2.11.12 scala
4、配置scala相关的环境变量
vi .bashrc
export SCALA_HOME=/usr/local/scala
export PATH=PATH:SCALA_HOME/bin
source .bashrc
5、查看scala是否安装成功:scala -version
6、按照上述步骤在node2和node3机器上都安装好scala。使用scp将scala和.bashrc拷贝到node2和node3上即可。
7、检测:scala -version
四、安装KAFKA
1、将课程提供的kafka_2.11-0.10.0.0.tgz使用WinSCP拷贝到node1的/usr/local目录下。
2、对kafka_2.11-0.10.0.0.tgz进行解压缩:tar -zxvf kafka_2.11-0.10.0.0.tgz。
3、对kafka目录进行改名:mv kafka_2.11-0.10.0.0 kafka
4、配置kafka
vi /usr/local/kafka/config/server.properties
依次增长的整数,0、1、2、3、4,集群中Broker的唯一id
broker.id=1
port=9092
zookeeper.connect=node1:2181,node2:2181,node3:2181
五、KAFKA集群配置
1、按照上述步骤在node2和node3分别安装kafka。用scp把kafka拷贝到node2和node3行即可。
2、唯一区别的,就是server.properties中的broker.id,要设置为1和2
六、启动KAFKA集群
1、在三台机器上分别执行以下命令:nohup bin/kafka-server-start.sh config/server.properties &
2、使用jps检查启动是否成功
七、测试
创建 topic
bin/kafka-topics.sh --zookeeper node10:2181,node11:2181,node12:2181 --topic TestTopic --replication-factor 1 --partitions 1 --create
生产者
bin/kafka-console-producer.sh --broker-list node10:9092,node11:9092,node12:9092 --topic TestTopic
消费者
bin/kafka-console-consumer.sh --zookeeper node10:2181,node1a1:2181,node12:2181 --topic TestTopic --from-beginning