java向kafka发送json事例_Kafka传递JSONObject 对象

需求:

在通常的微服务体系中,服务之间需要频繁的传递消息。

在基于Kafka的消息中,仅仅支持部分简单的类型如:String,Integer

单通常使用中,需要传递到复杂对象,数组,队列等。

现在需要实现kafka能够传递各种对象。

实现方案:

现在服务之间使用JSONObject传递,因为JSON可以很容易的转换为String,而String的序列化和反序列化已经被支持。

范例:

序列化:

public class JsonSerialize implements Serializer {

@Override

public void configure(Map configs, boolean isKey) {

}

@Override

public byte[] serialize(String topic, JSONObject data) {

try {

return data.toString().getBytes("UTF-8");

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

return null;

}

}

@Override

public void close() {

}

}

反序列化

public class JsonDeserialize implements Deserializer {

@Override

public void configure(Map configs, boolean isKey) {

}

@Override

public JSONObject deserialize(String topic, byte[] data) {

JSONObject obj = null;

try {

obj = new JSONObject(new String(data,"UTF-8"));

} catch (JSONException e) {

e.printStackTrace();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

return obj;

}

@Override

public void close() {

}

}

其他Producer和Consumer的代码略,网上有很多。

下一个:

如何设计微服务的消息框架


版权声明:本文为weixin_39759918原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。