[
https://issues.apache.org/jira/browse/ROCKETMQ-157?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Xin Wang updated ROCKETMQ-157:
------------------------------
Description:
# What is the purpose of the change
RocketMQ-Serializer is a RocketMQ extend library for serializing and
deserializing message body.
Both APIs and implements(string, json, avro...) are included in this module.
# Brief changelog
## APIs
The core serializer & deserializer API are interfaces `RocketMQSerializer` and
`RocketMQDeserializer`.
In order to centralized manage avro schemas, you can implement `SchemaRegistry`
interface in `rocketmq-serializer-avro` module,
and use `SchemaRegistry` registering and getting schemas.
## Implementations
### Supported Formats
| Format | Serializer | Deserializer |
| ------------- |:-------------:|:------:|
| Raw String | Y | Y |
| JSON | Y | Y |
| Avro Generic | Y | Y |
| Avro Specified | Y | Y |
Some serializer performance research please refer to
https://github.com/vongosling/jvm-serializer.
### User Defined Formats
You can define your format just implements `RocketMQSerializer` and
`RocketMQDeserializer`.
## Tools
`Messages` provides methods like `newMessage` and `getMessageBody` to map
between user class and byte array.
`AvroUtils` provides methods `newGenericRecord` and `newSchema` to create avro
records and schemas.
## Internals
`rocketmq-serializer-avro` is powered by Apache Avro, and
`rocketmq-serializer-json` is powered by fastjson.
was:As we all know, Apache Avro(http://avro.apache.org) is a popular data
serialization system. It will bring strong features and improvements if Rocket
integrate with it.
> Serializer&Deserializer support for RocketMQ
> --------------------------------------------
>
> Key: ROCKETMQ-157
> URL: https://issues.apache.org/jira/browse/ROCKETMQ-157
> Project: Apache RocketMQ
> Issue Type: New Feature
> Components: rocketmq-externals
> Reporter: Xin Wang
> Assignee: Xin Wang
> Priority: Major
>
> # What is the purpose of the change
> RocketMQ-Serializer is a RocketMQ extend library for serializing and
> deserializing message body.
> Both APIs and implements(string, json, avro...) are included in this module.
> # Brief changelog
> ## APIs
> The core serializer & deserializer API are interfaces `RocketMQSerializer`
> and `RocketMQDeserializer`.
> In order to centralized manage avro schemas, you can implement
> `SchemaRegistry` interface in `rocketmq-serializer-avro` module,
> and use `SchemaRegistry` registering and getting schemas.
> ## Implementations
> ### Supported Formats
> | Format | Serializer | Deserializer |
> | ------------- |:-------------:|:------:|
> | Raw String | Y | Y |
> | JSON | Y | Y |
> | Avro Generic | Y | Y |
> | Avro Specified | Y | Y |
> Some serializer performance research please refer to
> https://github.com/vongosling/jvm-serializer.
> ### User Defined Formats
> You can define your format just implements `RocketMQSerializer` and
> `RocketMQDeserializer`.
> ## Tools
> `Messages` provides methods like `newMessage` and `getMessageBody` to map
> between user class and byte array.
> `AvroUtils` provides methods `newGenericRecord` and `newSchema` to create
> avro records and schemas.
> ## Internals
> `rocketmq-serializer-avro` is powered by Apache Avro, and
> `rocketmq-serializer-json` is powered by fastjson.
>
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)