Kafka中Producer端封装自定义消息
我们知道KeywordMessage就是被kafka发送和存储的对象。所以只需要模拟出这个就可以发送自定义消息了。
比如我需要将用户的id,user,age,address和访问ip和访问date记录为一个消息。我就自定义一个消息格式(id-user-age-address-ip-date)。
我立马想到自己定义个javaBean.写一个UserInfo类伪代码。
class UserInfo(){
id;
user;
age;
address;
ip;
date;
toString(){
return this.getId()+"-"+this.getUser()+"-"+"..."+this.getDate();
}
}
你以为这样就可以了吗?当然不行啊!
还要按照kafka的消息类型进行封装,在这里我们只需要实现Encoder类即可:继续看看代码就好;
public class KeywordMessage implements kafka.serializer.Encoder<UserInfo>{ public static final Logger LOG=LoggerFactory.getLogger(UserInfo.class); @Override public Message toMessage(Keyword words) { LOG.info("start in encoding..."); return new Message(words.toString().getBytes()); }}/**配置producer必要的参数*/
Properties props = new Properties();必要的一些配置省略。。。/**选择用哪个类来进行序列化,就是我们自定义的消息类*/props.put("serializer.class", "org.kafka.message.UserInfo");ProducerConfig config=new ProducerConfig(props);/**构造测试数据*/UserInfo userInfo = new UserInfo();.setId(1);userInfo.setUser("xiaoming");List<UserInfo> msg=new ArrayList<UserInfo>();msg.add(userInfo);/**构造数据发送对象*/Producer<String, UserInfo> producer=new Producer<String, UserInfo>(config); ProducerData<String,UserInfo> data=new ProducerData<String, UserInfo>("test", msg);producer.send(data);Kafka中Producer端封装自定义消息的更多相关文章
- Kafka源码分析及图解原理之Producer端
一.前言 任何消息队列都是万变不离其宗都是3部分,消息生产者(Producer).消息消费者(Consumer)和服务载体(在Kafka中用Broker指代).那么本篇主要讲解Producer端,会有 ...
- 057 Java中kafka的Producer程序实现
1.需要启动的服务 这里启动的端口是9092. bin/kafka-console-consumer.sh --topic beifeng --zookeeper linux-hadoop01.ibe ...
- flink---实时项目--day02-----1. 解析参数工具类 2. Flink工具类封装 3. 日志采集架构图 4. 测流输出 5. 将kafka中数据写入HDFS 6 KafkaProducer的使用 7 练习
1. 解析参数工具类(ParameterTool) 该类提供了从不同数据源读取和解析程序参数的简单实用方法,其解析args时,只能支持单只参数. 用来解析main方法传入参数的工具类 public c ...
- 【译】Flink + Kafka 0.11端到端精确一次处理语义的实现
本文是翻译作品,作者是Piotr Nowojski和Michael Winters.前者是该方案的实现者. 原文地址是https://data-artisans.com/blog/end-to-end ...
- Kafka设计解析(二十二)Flink + Kafka 0.11端到端精确一次处理语义的实现
转载自 huxihx,原文链接 [译]Flink + Kafka 0.11端到端精确一次处理语义的实现 本文是翻译作品,作者是Piotr Nowojski和Michael Winters.前者是该方案 ...
- Kafka: Producer (0.10.0.0)
转自:http://www.cnblogs.com/f1194361820/p/6048429.html 通过前面的架构简述,知道了Producer是用来产生消息记录,并将消息以异步的方式发送给指定的 ...
- Kafka生产者producer简要总结
Kafka producer在设计上要比consumer简单,不涉及复杂的组管理操作,每个producer都是独立进行工作的,与其他producer实例之间没有关联.Producer的主要功能就是向某 ...
- Kafka之Producer
通过https://www.cnblogs.com/tree1123/p/11243668.html 已经对consumer有了一定的了解.producer比consumer要简单一些. 一.旧版本p ...
- Kafka 之producer拦截器(interceptor)
Kafka 之producer拦截器(interceptor) 一.拦截器原理 Producer拦截器(interceptor)是在Kafka 0.10版本被引入的,主要用于实现clients端的定制 ...
随机推荐
- PLSQL Developer新手使用教程(图文教程)
PLSQL Developer是Oracle数据库开发工具,很牛也很好用,PLSQL Developer功能很强大,可以做为集成调试器,有SQL窗口,命令窗口,对象浏览器和性能优化等功能,下面简单的介 ...
- c# datetime与 timeStamp时间戳 互相转换
将时间格式转化为一个int类型 // ::26时间转完后为:1389675686数字 为什么使用时间戳? 关于Unix时间戳,大概是这个意思,从1970年0时0分0秒开始到现在的秒数.使用它来获得的是 ...
- Ajax初窥
Ajax四个步骤 1. 创建Ajax对象2. 连接到服务器3. 发送请求4. 接收返回值 0x01 创建AJAX对象 方法1(非IE6.0) Var oAjax = new XMLHttpReques ...
- discuz论坛折腾记录
1.邮箱验证 自带的是用php sendmail,好在可以用smtp 如果用企业邮箱,一般都是ssl,需要设置为,参考此帖 STMP服务器 - QQ 企业邮ssl://smtp.exmail.qq.c ...
- python idea 利用树莓派做家庭报警系统
1 利用树莓派做家庭报警系统idea 功能如下: 1.程序家侧人不在家(7:00-6:00) 2.树莓派搭配摄像头,对这门进行图像识别,如果变化,门开了,就报警: 3.报警的方式是给我发短信,采信,或 ...
- Hadoop 回收站
一.回收站简介: 在HDFS里,删除文件时,不会真正的删除,其实是放入回收站/trash,回收站里的文件可以快速恢复. 可以设置一个时间阀值,当回收站里文件的存放时间超过这个阀值或是回收站被清空时,文 ...
- C语言 · 第二大整数
算法提高 第二大整数 时间限制:1.0s 内存限制:512.0MB 问题描述 编写一个程序,读入一组整数(不超过20个),当用户输入0时,表示输入结束.然后程序将从这组整数中,把第二 ...
- openwrt使用list
openwrt中用到双向无头链表,实际应用时应在外部定义实体链表头,后续可直接应用链表函数(宏定义已将链表头排除在外): static struct list_head timeouts = LIST ...
- if no 和 if not
x = None if x is not None: print("kong") if not x is not None: print("kong") # i ...
- laravel 控制器
1:如何快速的创建一个控制器 用cmd进入当前的项目名文件夹里面执行如下语句: php artisan make:controller HgjController 2:编辑Hgj中的index方法 ...