Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ROCKETMQ-157: Serializer&Deserializer support for RocketMQ #42

Merged
merged 3 commits into from Jun 11, 2018

Conversation

vesense
Copy link
Member

@vesense vesense commented Jan 4, 2018

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 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.

Verifying this change

unit tests check passed ✅
apache-rat check passed ✅
checkstyle check passed ✅

@vesense
Copy link
Member Author

vesense commented Jan 4, 2018

@vongosling @zhouxinyu Do yo have time to take a look?

@vesense
Copy link
Member Author

vesense commented Jan 12, 2018

@vongosling @zhouxinyu ping..

@vesense vesense changed the title Serializer&Deserializer support for RocketMQ ROCKETMQ-157: Serializer&Deserializer support for RocketMQ Jan 27, 2018
@vesense
Copy link
Member Author

vesense commented Feb 6, 2018

Any comments are welcome..

@vesense
Copy link
Member Author

vesense commented Mar 24, 2018

Upgraded RocketMQ version to 4.2.0 and removed author infos.
@vongosling @zhouxinyu Can you guys take a look?

@vongosling
Copy link
Member

vongosling commented Jun 7, 2018

Actually, I have trouble fully understanding the project real purpose, do you want to support some serializers for send method in RocketMQ ?

@vesense
Copy link
Member Author

vesense commented Jun 7, 2018

@vongosling This is a tool library for serializing / deserializing message body.
It provides convenient API for users whatever sending or receiving messages.

@vesense
Copy link
Member Author

vesense commented Jun 7, 2018

@vongosling e.g.
image
image

@vesense
Copy link
Member Author

vesense commented Jun 8, 2018

@vongosling Do I make it clear?

@vongosling
Copy link
Member

yes, I will merge your request, thanks

@vongosling vongosling merged commit b536721 into apache:master Jun 11, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants