ROCKETMQ-157: Serializer&Deserializer support for RocketMQ #42
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
https://issues.apache.org/jira/browse/ROCKETMQ-157
Brief changelog
APIs
The core serializer & deserializer API are interfaces
RocketMQSerializer
andRocketMQDeserializer
.In order to centralized manage avro schemas, you can implement
SchemaRegistry
interface inrocketmq-serializer-avro
module,and use
SchemaRegistry
registering and getting schemas.Implementations
Supported Formats
Some serializer performance research please refer to https://github.com/vongosling/jvm-serializer.
User Defined Formats
You can define your format just implements
RocketMQSerializer
andRocketMQDeserializer
.Tools
Messages
provides methods likenewMessage
andgetMessageBody
to map between user class and byte array.AvroUtils
provides methodsnewGenericRecord
andnewSchema
to create avro records and schemas.Internals
rocketmq-serializer-avro
is powered by Apache Avro, androcketmq-serializer-json
is powered by fastjson.Verifying this change
unit tests check passed ✅
apache-rat check passed ✅
checkstyle check passed ✅