SpringBoot Kafka工具类封装
bootstrap需要自己配置一下,其他的直接用就可以。
package com.oal.microservice.util;import com.alibaba.fastjson.JSONObject;
import com.oal.microservice.config.Bootstrap;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.springframework.beans.factory.annotation.Autowired;import java.util.List;
import java.util.Map;
import java.util.Properties;public class KafkaProducerUtils {@Autowiredprivate Bootstrap bootstrap;/**** 私有静态方法,创建Kafka生产者** @author IG* @Date 2017年4月14日 上午10:32:32* @version 1.0.0* @return KafkaProducer*/private KafkaProducer<String, String> createProducer() {Properties props = new Properties();props.put("bootstrap.servers", bootstrap.getServers());props.put("acks", "all");props.put("retries", 0);props.put("batch.size", 0);props.put("linger.ms", 1);props.put("buffer.memory", 33554432);props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");return new KafkaProducer<String, String>((props));}/**** 传入kafka约定的topicName,json格式字符串,发送给kafka集群** @author IG* @Date 2017年4月14日 下午1:29:09* @version 1.0.0* @param topicName* @param jsonMessage*/public void sendMessage(String topicName, String jsonMessage) {KafkaProducer<String, String> producer = createProducer();producer.send(new ProducerRecord<>(topicName, jsonMessage));producer.close();}/**** 传入kafka约定的topicName,json格式字符串数组,发送给kafka集群<br>* 用于批量发送消息,性能较高。** @author IG* @Date 2017年4月14日 下午2:00:12* @version 1.0.0* @param topicName* @param jsonMessages* @throws InterruptedException*/public void sendMessage(String topicName, String... jsonMessages) {KafkaProducer<String, String> producer = createProducer();for (String jsonMessage : jsonMessages) {producer.send(new ProducerRecord<>(topicName, jsonMessage));}producer.close();}/**** 传入kafka约定的topicName,Map集合,内部转为json发送给kafka集群 <br>* 用于批量发送消息,性能较高。** @author IG* @Date 2017年4月14日 下午2:01:18* @version 1.0.0* @param topicName* @param mapMessageToJSONForArray*/public void sendMessage(String topicName, List<Map<Object, Object>> mapMessageToJSONForArray) {KafkaProducer<String, String> producer = createProducer();for (Map<Object, Object> mapMessageToJSON : mapMessageToJSONForArray) {String array = JSONObject.toJSONString(mapMessageToJSON);producer.send(new ProducerRecord<>(topicName, array));}producer.close();}/**** 传入kafka约定的topicName,Map,内部转为json发送给kafka集群** @author IG* @Date 2017年4月14日 下午1:30:10* @version 1.0.0* @param topicName* @param mapMessageToJSON*/public void sendMessage(String topicName, Map<Object, Object> mapMessageToJSON) {KafkaProducer<String, String> producer = createProducer();String array = JSONObject.toJSONString(mapMessageToJSON);producer.send(new ProducerRecord<>(topicName, array));producer.close();}
}
SpringBoot Kafka工具类封装相关推荐
- SpringBoot Redis工具类封装
SpringBoot整合Redis的博客很多,但是很多都不是我想要的结果.因为我只需要整合完成后,可以操作Redis就可以了,并不需要配合缓存相关的注解使用(如@Cacheable).看了很多博客后, ...
- Redis工具类封装讲解和实战
Redis工具类封装讲解和实战 简介:高效开发方式 Redis工具类封装讲解和实战 1.常用客户端 https://redisdesktop.com/download ...
- springboot在工具类中添加service的方法,显示为空的解决方案
springboot在工具类中添加service的方法,显示为空的解决方案 参考文章: (1)springboot在工具类中添加service的方法,显示为空的解决方案 (2)https://www. ...
- IOS开发基础之音频工具类封装AVAudioPlayer
IOS开发基础之音频工具类封装AVAudioPlayer 源码在我的主页下面 ,项目名称是AVAudioPlayer 关键性代码 工具类的封装 // // LJAudioTool.h // AVAud ...
- 【JavaScript学习】JavaScript 常用工具类封装
文章目录 1.JavaScript 常用工具类封装 (1)获得浏览器地址所有参数 (2)将json转为get参数 (3)格式校验工具类 (4)数组操作工具类 (5)表单取值工具类 (6)时间转换工具类 ...
- Android 图片处理工具类封装2
http://www.2cto.com/kf/201312/263638.html Android 图片处理工具类封装 2013-12-10 0个评论 来源:Wiker Yong 的专栏 ...
- Redis工具类封装
Redis工具类封装 使用redis也好几年了,总是拷贝来拷贝去的,这次干脆放在这把,每次来这拷贝,不用在工程里面找来找去了. /*** Redis工具类* @author Huangliniao* ...
- ElasticSearch工具类封装
最近在项目中有看到一种比较实用的ElasticSearch工具类封装方式,特此记录便于日后查阅. 1.controller层 @RequestMapping(value = " ...
- XmlMapper详解及工具类封装
一.XmlMapper说明 1.依赖包引入 <dependency><groupId>com.fasterxml.jackson.dataformat</groupId& ...
- Redis工具类封装RedisUtils
本文参考:https://blog.it-follower.com/posts/2563248908.html SpringBoot项目集成Redis相当简单,只需要pom中加入对应依赖 <de ...
最新文章
- 河北师范大学计算机科学与技术研究生好考吗,河北师范大学计算机科学与技术怎么样...
- Mac-终端hostname变为bogon的问题
- redirect-action
- 【DP】【BFS】迷之阶梯
- 快速搭建Python+Selenium+Sublime 自动化测试环境方法
- 图标截取——背景偏移量技术
- 圣诞节平面设计师排版|首选手写字体素材,简单但非常好用。
- 蓝牙协议栈中的 OSAL
- 短期逾期影响贷款吗?
- bzoj 3884: 上帝与集合的正确用法(欧拉函数)
- ajax内调用WCF服务
- LINUX下的21个特殊符号
- JAVA-JSP内置对象之request获得所有的参数名称
- Windows10最常用的软件推荐V1.7
- 南航计算机学院院长黄志球简历,南航计算机科学与技术学院导师介绍:沈国华...
- 人生如游戏,容错性很关键
- 在网页中打开展示pdf文件
- 计算机硬盘空间不足解决办法,3种方法解决Windows10硬盘空间不够的问题
- 【不看即后悔系列】学习的真相及方法【建议收藏】
- 幸福婚庆策划网管理系统