上一篇:SpringBoot怎样整合RabbitMQ? | 带你读《SpringBoot实战教程》之三十六
下一篇:SpringBoot如何实现Solr? | 带你读《SpringBoot实战教程》之三十八
本文来自于千锋教育在阿里云开发者社区学习中心上线课程《SpringBoot实战教程》,主讲人杨红艳,点击查看视频内容。
Kafka概述及安装
Apache Kafka是一个分布式发布 - 订阅消息系统和一个强大的队列,可以处理大量的数据,并使您能够将消息从一个端点传递到另一个端点。 Kafka适合离线和在线消息消费。 Kafka消息保留在磁盘上,并在群集内复制以防止数据丢失。 Kafka构建在ZooKeeper同步服务之上。 它与Apache Storm和Spark非常好地集成,用于实时流式数据分析。
以下是Kafka的几个好处:
- 可靠性 - Kafka是分布式,分区,复制和容错的。
- 可扩展性 - Kafka消息传递系统轻松缩放,无需停机。
- 耐用性 - Kafka使用分布式提交日志,这意味着消息会尽可能快地保留在磁盘上,因此它是持久的。
- 性能 - Kafka对于发布和订阅消息都具有高吞吐量。 即使存储了许多TB的消息,它也保持稳定的性能。Kafka非常快,并保证零停机和零数据丢失。
安装:
Linux系统下安装
首先在官网下载kafka以及zookeeper的安装包
二者直接进行解压缩:
运行kafka必须先运行zookeeper。
进入到zookeeper的bin目录下
运行zkServer.sh,注意需要提前把JDK配置好
命令为./ zkServer.sh start
然后运行./ zkServer.sh status
查看启动状态
显示standalone表示启动成功了。
然后进入kafka的bin目录下
然后启动kafka,注意启动时需引用配置文件 命令为 ./ kafka-server-start.sh ../../config/ sever.properties
出现如下情况,证明启动成功了。
SpringBoot整合Kafka
添加依赖:
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>1.1.1.RELEASE</version>
</dependency>
全局配置application.yml:
spring:
kafka:
producer:
bootstrap-servers: 192.168.25.130:9092
consumer:
group-id: springboot-group1
auto-offset-reset: earliest
新建包:com.qianfeng.kafka
@Component
@EnableScheduling
public class KafkaProducer {
@Autowired
private KafkaTemplate kafkaTemplate;
@Scheduled(cron = "00/1 * * * * ?")
public void send() {
String msg=UUID.randomUUID().toString();
//发送消息
ListenableFuture future = kafkaTemplate.send("tests", msg);
future.addCallback(o -> System.out.println("send-消息发送成功:" + msg), throwable -> System.out.println("消息发送失败:" + msg));
}
}
执行结果: