《kafka权威指南》

Customer.java
public class Customer {private int customId;private String customerName;public Customer(int customId, String customerName) {this.customId = customId;this.customerName = customerName;}public int getCustomId() {return customId;}public void setCustomId(int customId) {this.customId = customId;}public String getCustomerName() {return customerName;}public void setCustomerName(String customerName) {this.customerName = customerName;}
}

CustomerSerializer.java
import org.apache.commons.lang.SerializationException;
import org.apache.kafka.common.serialization.Serializer;import java.nio.ByteBuffer;
import java.util.Map;/*** 自定义序列化器* */
public class CustomerSerializer implements Serializer<Customer> {public void configure(Map<String, ?> configs, boolean isKey) {//不做任何配置
    }/*** Customer对象被序列化成:* 1. 表示customerId的4字节整数* 2. 表示customerName长度的4字节整数(如果customerName为空,则长度为0)* 3. 表示customerName的N个字节** */public byte[] serialize(String topic, Customer data) {try{byte[] serializedName;int stringSize;if(data == null)return null;else{if(data.getCustomerName() != null){serializedName = data.getCustomerName().getBytes("UTF-8");stringSize = serializedName.length;} //ifelse{serializedName = new byte[0];stringSize = 0;}ByteBuffer buffer = ByteBuffer.allocate(4 + 4 + stringSize);buffer.putInt(data.getCustomId());buffer.putInt(stringSize);buffer.put(serializedName);return buffer.array();} //else} catch (Exception e){e.printStackTrace();throw new SerializationException("Error when serizlizing custromer to byte[]" +e);}}public void close() {}
}

转载于:https://www.cnblogs.com/luckygxf/p/9065579.html

kafka自定义序列化器相关推荐

  1. spring序列化_使用@JsonIdentityInfo的Spring自定义序列化器

    spring序列化 介绍 Spring中从JSON到JSON的序列化/反序列化已广泛用于基于Spring的现代应用程序中. 它基于杰克逊. Jackson可以轻松地将任何POJO序列化为JSON,反之 ...

  2. 使用@JsonIdentityInfo的Spring自定义序列化器

    介绍 Spring中从JSON到JSON的序列化/反序列化已广泛用于基于Spring的现代应用程序中. 它基于杰克逊. Jackson可以轻松地将任何POJO序列化为JSON,反之亦然. 这段代码写得 ...

  3. 60-40-020-序列化-自定义序列化

    1.视界 1. 案例说明 有一个 Java 实体类 Customer,定义如下: package com.bonc.rdpe.kafka110.beans;/*** @Title Customer.j ...

  4. Redis序列化、RedisTemplate序列化方式大解读,介绍Genericjackson2jsonredisserializer序列化器的坑

    前言 上一篇已经介绍了优雅的操作Redis: [小家Spring]Spring Boot中使用RedisTemplate优雅的操作Redis,并且解决RedisTemplate泛型注入的问题.本篇着重 ...

  5. 客户端序列码生成_Django REST Framework教程(2): 序列化器介绍及开发基于函数视图的API...

    在上篇文章中,我们已经介绍了为什么要学习DRF,什么是序列化以及什么是符合RESTful规范的Web API.在本篇文章中我们将以博客为例,使用DRF提供的序列化器(Serializers类)开发两个 ...

  6. JDK11下J2Cache序列化器反射异常及--illegal-access解决方案

    问题现象 最近线上部署应用时,发现如下异常: Failed to instantiate [net.oschina.j2cache.CacheChannel]: Factory method 'cac ...

  7. 序列化器serializers的使用

    serializer.py中设置序列化器 from rest_framework import serializers from myapp.models import Poemclass PoemS ...

  8. 快速上手Django(六) -Django之Django drf 序列化器Serializer类

    文章目录 快速上手Django(六) -Django之Django drf 序列化器Serializer类 1. 背景 2. 使用思路 3. 代码demo 4. [重要]序列化类 ModelSeria ...

  9. Django 基础(13)-Django drf 序列化器类to_representation和to_internal_value(处理返回的日期格式)、序列化类 ModelSerializer

    文章目录 一.Django drf 序列化 1. 背景 2. 使用思路 3. 代码demo 4. [重要]序列化类 ModelSerializer 5. DRF序列化器to_representatio ...

最新文章

  1. 《AngularJS实战》——3.1 模板中的过滤器
  2. Java设计模式(十二):状态设计模式
  3. 猫猫学iOS之小知识iOS启动动画_Launch Screen的运用
  4. 《软件工程》实验报告——软件测试
  5. 外部服务发现之 ingress(一) traefik 的安装使用
  6. 【elasticsearch系列】windows安装IK分词器插件
  7. 数据结构与算法分析(四)——C++实现栈
  8. 欢迎访问我的Github
  9. CSS中的Position、Float属性的一些深入探讨
  10. [LeetCode] 1. Two Sum
  11. 【SQL Server】入门教程-基础篇(完结)
  12. Javashop 7.0 支付成功以后库里面没有记录问题
  13. 字节跳动“蚕食”B端,搅局企业服务?
  14. 解决ajax回调函数不执行success的问题
  15. SSH之known_hosts文件
  16. 领取CPS外卖红包攻略及小程序项目源码
  17. 工业路由器智能井盖监控方案
  18. U盘产品如何做好软文推广利用软文来打造为产品引流宣传
  19. 西门子PLC SMART 200和HMI连接组态编程
  20. 关于淘宝 TOP 开发 使用的一些心得,问题不断更新中。。。

热门文章

  1. python建立字典的程序_Python中如何创建字典Dict
  2. python写小猪佩奇_【python】使用python自动画一只小猪佩奇(源码)-Go语言中文社区...
  3. [Springboot]SpringCache + Redis实现数据缓存
  4. 个人笔记上传 -- redis安装
  5. 设计模式系列之「工厂方法模式」
  6. Hibernate之事务处理
  7. 2016/11/14
  8. Uva1343-The Rotation Game-IDA*算法
  9. 关于tomcat的思考
  10. 最近wampserver总是开不开,一直离线,重启就好,各位有何看法?