SpringBoot入门建站全系列(二十八)整合Kafka做日志监控
SpringBoot入门建站全系列(二十八)整合Kafka做日志监控
一、概述
Apache Kafka是一个分布式发布 - 订阅消息系统和一个强大的队列,可以处理大量的数据,并使您能够将消息从一个端点传递到另一个端点。 Kafka适合离线和在线消息消费。 Kafka消息保留在磁盘上,并在群集内复制以防止数据丢失。 Kafka构建在ZooKeeper同步服务之上。 它与Apache Storm和Spark非常好地集成,用于实时流式数据分析。
所以说,Kafka还是一个MQ,这时候,你肯定会想到ActiveMQ、RabbitMQ、RocketMQ等,在《Web基础配置篇(十): ActiveMQ与RabbitMQ的安装配置及使用》 一篇中,已经大概讲述了他们之间的区别,这里还是要简单说明一下:
- ActiveMQ是java写的消息队列,ActiveMq几个月才发一次版本,社区已经不活跃了;
- RabbitMQ是基于erlang开发,国人很少学erlang的,但社区还是蛮活跃的,而且性能极其好,延时很低;
- RocketMQ是java写的,阿里的,网上都说怕它哪天gg了,中小型公司用起来就麻烦了,但是性能蛮好的;
- Kafka是基于scala的,主要是面向大数据的,大的优点,就是吞吐量高。
所以,网上一般的推荐就是,中小型公司可以选择RabbitMQ,因为怕阿里不维护RocketMQ了,就没有能力去维护RocketMQ;大型软件公司可以选择rocketMq,因为有钱,所以有人维护。至于kafka,根据业务场景选择,大数据领域中以及日志采集,肯定是kafka了。
前面文章已经有整合过ActiveMQ和RabbitMQ:
《SpringBoot入门建站全系列(十七)整合ActiveMq(JMS类消息队列)》和SpringBoot入门建站全系列(十八)整合RabbitMQ(AMQP类消息队列)
本篇整合kafka,使用Spring kafka对kafka进行操作,后续会使用spring-integration-kafka进行整合。
代码可以在SpringBoot组件化构建https://www.pomit.cn/java/spring/springboot.html中的Kafka组件中查看,并下载。
地址: 品茗IT-同步发布
如果大家正在寻找一个java的学习环境,或者在开发中遇到困难,可以加入我们的java学习圈,点击即可加入,共同学习,节约学习时间,减少很多在学习中遇到的难题。
二、配置
本文假设你已经引入spring-boot-starter-web。已经是个SpringBoot项目了,如果不会搭建,可以打开这篇文章看一看《SpringBoot入门建站全系列(一)项目建立》。
需要提前搭好Kafka,Web基础配置篇(十四): Kafka单机、集群的安装配置及使用 这里有Kafka的安装方法。
2.1 Maven依赖
使用activemq可以使用spring-boot-starter-activemq,方便快捷,一般springboot对大多数开源项目都做了整合,提供了专用的stater。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
相关文章