kafka作用类似于rabbitMQ
一、添加依赖
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>2.6.5</version>
</dependency>
二、application.yml的配置
spring:
kafka:
bootstrap-servers: 127.0.0.1:9092
producer:
value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
consumer:
auto-offset-reset: earliest
group-id: myGroup
三、
kafkaTemplate发送消息,@KafkaListener接收,注意MenuEntity是序列化的实体类,用的mybatis插件是mybatis-plus,只是个人玩玩,生产建议用原生mybatis最香
@Service
public class MenuServiceImpl extends ServiceImpl<MenuMapper, MenuEntity> implements IMenuService {
private Logger logger= LoggerFactory.getLogger(MenuServiceImpl.class);
@Autowired
KafkaTemplate<String,MenuEntity>kafkaTemplate;
@KafkaListener(id = "add", topics = "menuEntity")
public void listen(String menuEntityStr) {
MenuEntity menuEntity= JSONObject.parseObject(menuEntityStr,MenuEntity.class);
boolean res=this.save(menuEntity);
if(!res){
logger.error(menuEntityStr+"新增menuEntity失败");
}
}
@Override
public ResponseUtils add(HttpServletRequest request,MenuEntity menuEntity){
kafkaTemplate.send("menuEntity","add", menuEntity);
return ResponseUtils.success("添加成功");
}
}