KafKa:削峰,异步,解耦
废话不多说,直接撸起袖子来一套!
http://kafka.apache.org/
![6e66b7e8542562eda85a0d85743c951e.png](https://i-blog.csdnimg.cn/blog_migrate/48c2e7bc50e803180faee33f4820f8e5.jpeg)
![792a139031a08ef3b740da0c8cf2fb59.png](https://i-blog.csdnimg.cn/blog_migrate/63162af705d8f16e8bb757d0ae2688cf.jpeg)
Linux中 找个地方直接wget 下载
sudo wget https://www.apache.org/dyn/closer.cgi?path=/kafka/2.3.0/kafka_2.11-2.3.0.tgz
解压
sudo tar zxf kafka_2.11-2.3.0.tgz
进入到bin目录
cd kafka_2.11-2.3.0/bin
修改server.properties:
- 打开红框中2段注释
- 第1段注释打开即可,无需修改
- 第2段注释填写本机(服务器)IP即可
- 保存
![b2c6ebc96b0a1b94c9b6567d7dc2e5bc.png](https://i-blog.csdnimg.cn/blog_migrate/17556e496b142883a3e86225ed3790f6.jpeg)
先启动kafka自带的zookeeper
sudo nohup ./zookeeper-server-start.sh ../config/zookeeper.properties &
查看是否启动成功
sudo netstat -lnp |grep 2181
![323df0e76e5b54d14fc10d7516bbc148.png](https://i-blog.csdnimg.cn/blog_migrate/cd0c76cde6e94f0e93c6da95f29a0f06.jpeg)
zookeeper启动成功
再启动kafka
sudo nohup ./kafka-server-start.sh ../config/server.properties &
查看是否启动成功
sudo netstat -lnp |grep 2181
![204235312b4d4fc222209b68af5057ab.png](https://i-blog.csdnimg.cn/blog_migrate/02046eb674902ffa4b84d7fe882af73a.jpeg)
kafka启动成功
到这里呢,kafka就已经在我的ubuntu上部署完成了,接下来我们进行SpringBoot的整合。
整合SpringBoot 2
导入Pom依赖
org.springframework.kafka spring-kafka
配置yml或properties 这里我演示yml
spring: kafka: bootstrap-servers: kafka所在服务器IP:9092 producer: key-serializer: org.apache.kafka.common.serialization.StringSerializer value-serializer: org.apache.kafka.common.serialization.StringSerializer consumer: group-id: test enable-auto-commit: true auto-commit-interval: 1000 key-deserializer: org.apache.kafka.common.serialization.StringDeserializer value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
无需配置类,无需配置类,无需配置类!
编写消费者:
package com.example.demo.queue;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.kafka.annotation.KafkaListener;import org.springframework.stereotype.Service;@Servicepublic class KafkaConsumer { public static Logger logger = LoggerFactory.getLogger(KafkaConsumer.class); @KafkaListener(topics = {"001"}) public void listen(String message) { logger.info("接受到消息:{}