kafka是分布式发布-订阅消息系统,主要功能有:
1、缓冲和削峰:上游数据时有突发流量,导致下游服务器可能扛不住,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafka中,下游服务就可以按照自己的节奏进行,慢慢处理业务。
2、解耦和扩展性:项目开始的时候,并不能确定具体的需求,消息队列可以作为一个接口层,解耦重要的业务流程,只需要遵守约定,针对数据编程即可获取扩展能力
3、冗余:可以采用一对多的方式,一个生产者生产消息,可以被多个订阅topic的服务消费到,供多个毫无关联的业务使用
4、健壮性:消息队列可以堆积请求,所以消费端业务即使短时间死掉,也不会影响主要业务的正常进行
5、异步通信:很多时候,用户不想也不需要立即处理消息,消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。在有需要的时候再去处理它。
kafka版本号:kafka_2.11-2.0.0
zookeeper版本号:apache-zookeeper-3.5.5
kafka集群搭建步骤:
kafka安装之前,需要先安装zooKeeper,详细安装步骤:https://blog.csdn.net/weixin_42558742/article/details/89052702
目前在我虚拟机上192.168.131.166, 192.168.131.167,192.168.131.168三台服务器上搭建kafka集群,相关配置步骤如下图所示:
1、官网上下载kafka版本,解压。 tar -zxvf 包名
2、启动zookeeper,进入到bin目录:执行 sh zkServer.sh start
3、配置kafka配置文件server.properties
broker.id=0
listeners=PLAINTEXT://192.168.131.166:9092
zookeeper.connect=192.168.131.167:2181
三台服务器上述三个配置都需要改,broker.id必须是唯一的
4、三台服务器分别后台启动kafka
命令:sh kafka-server-start.sh -daemon ../config/server.properties
5、 三个节点已经成功注册到zookeeper
以上,kafka集群搭建完成
kafka相关代码demo
生产者
package