Spring boot 整合KAFKA实现消息队列?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
一、添加依赖和添加配置项
1.1、在 Pom 文件中添加依赖
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
1.2、添加配置项
spring:
kafka:
bootstrap-servers: 12.168.3.62:9092 # 指定kafka 代理地址,可以多个
producer:
retries: 2 # 写入失败时,重试次数。当retris为0时,produce不会重复。
batch-size: 1000 #每次批量发送消息的数量,produce积累到一定数据,一次发送
buffer-memory: 33554432 # produce积累数据一次发送,缓存大小达到buffer.memory就发送数据
acks: 0 #procedure要求leader在考虑完成请求之前收到的确认数,用于控制发送记录在服务端的持久化,如果设置为零,则生产者将不会等待来自服务器的任何确认。
key-serializer: org.apache.kafka.common.serialization.StringSerializer #指定消息key和消息体的编解码方式
value-serializer: org.apache.kafka.common.serialization.StringSerializer
二、代码编写
2.1、添加一个消息类
package com.jsh.mgt.kafkaTemplate.kafka;
import java.util.Date;
import lombok.Data;
/**
* @since 2020/5/21 14:13
*/
@Data
public class Message {
private Long id; //id
private String msg; //消息
private Date sendTime; //时间戳
}
2.2、设置消息生产者
package com.jsh.mgt.kafkaTemplate.Controllers;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.jsh.mgt.kafkaTemplate.kafka.Message;
import java.util.Date;
import java.util.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
/**
* @since 2020/5/21 11:19
*/
@RestController
public class KafkaController {
@Autowired
private KafkaTemplate<String,Object> kafkaTemplate;
private Gson gson = new GsonBuilder().create();
@GetMapping("/kafka/{msg}")
public Object test(@PathVariable("msg") String msg) {
Message message = new Message();
message.setId(System.currentTimeMillis());
message.setMsg(UUID.randomUUID().toString()+ "-"+msg);
message.setSendTime(new Date());
kafkaTemplate.send("topic-create",gson.toJson(message));
return "ok";
}
}
看完上述内容,你们掌握Spring boot 整合KAFKA实现消息队列的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。