The RocketMQ community has awarded me the Title of Evangelist of excellence in 2019. This is a great certificate and a great prize.



What is a preacher? Aren’t open source projects all about becoming a Committer? These are actually two different ways to participate in open source projects. Let me explain how to get involved in an open source project.

This program recording

    • 1. Get to know RocketMQ and “be together”
    • How to become a Committer on open Source Projects

1. Get to know RocketMQ and “be together”

In 2017, I was thrilled to hear that Alibaba donated RocketMQ to the Apache Foundation as a top project of Apache, because I was finally able to see the implementation of a high-performance messaging middleware.

Reading the Official RocketMQ documentation, a few points in particular caught my eye and made me decide to dig deeper.

  • Why is RocketMQ performing so well, and what “awesome” technology does it use
  • How RocketMQ does flush (think database flush, redo, undo log)
  • How is the RocketMQ file storage design concept implemented with file-based Hash indexing
  • Implementation principles of timing message and message filtering
  • How to Network Programming (Netty Combat)

I began my RocketMQ source code analysis journey, publishing more than 30 articles over a period of 4 months, systematically analyzing Nameserver, message sending high availability design, message storage, message consumption, message filtering, transaction messages, and so on. Writing and sharing, sharing and spreading, I finally got the recognition of Teacher Yang Fuchuan from Huazhang Branch of China Machine Press and invited me to publish a book.

Under the help and guidance of Teacher Yang and Zhang Gong, after nearly half a year’s efforts, the book is basically finished.

Since I was relatively new to the publishing industry, it was customary for me to enlist the help of some expert in the field to write a preface or recommendation.

At that time, I was very young and had a very bold idea to contact some of the official RocketMQ leaders, and EVENTUALLY I directly targeted the Founder of RocketMQ Feng Jia god, hoping that he could help me to recommend.

To my surprise, God Feng jia was very friendly. After learning of my visit, he said, “I am very willing to write a preface for a friend who wrote a book, but I need to evaluate the quality of the manuscript. If the quality is OK, I am very willing to help.”

I was greatly encouraged. After preliminary communication with the publishing house, I sent the trial reading manuscript and the whole chapter of message storage to God Feng jia. After careful review of the manuscript, God Feng decided to help recommend the preface.

With the official publication of RocketMQ Technology Insider and its recognition by readers, I kept in touch with the authorities more and more. Later, under the preparation of Mr. Qing Feng, head of RocketMQ China community, I also participated in the source code analysis live broadcast of the Official RocketMQ community and the review of official documents. And got a good response in the community.

Is it weird that people think you’re just writing articles and books, not really participating in the open source community, not contributing code, what kind of participation is that?

I didn’t even realize I was working on an open source project until I read in the preface feng Jia wrote for me that he gave me a new title: RocketMQ Evangelist, and I really learned another way to get involved in open source: To be a disseminator of open source projects, to make it easier for more people to use it, that is, to lower the threshold for the public to use it.

I also went out of my way to find out what an open source evangelist is, or what kind of person can be called an evangelist. Personal understanding is to first recognize and love this technology, and continue to output high-quality technical articles, documents and other materials conducive to the dissemination of technology, so that more people can understand and use it more easily.

With a new designation, it’s important to work hard and strive for excellence. In 2019, I published more than 20 RocketMQ articles, which were very valuable and kept up with the new features since RocketMQ4.3: Message track, ACL, master-slave switch and other mechanisms, but also published a number of practical articles, pointing out in detail some misunderstandings in the production environment, but also output several real production environment failures and solutions. Finally, in 2019, RocketMQ official Community awarded me the honorary title of Outstanding Evangelist.

RocketMQ has made me who I am, and I will continue to do my part to spread the word. Keep up the good work in 2020.

How to become a Committer on open Source Projects

A few fans have asked me, you’re so deep into RocketMQ, why don’t you consider contributing code and becoming a Committer? There are some basic requirements for participating in open source projects that I don’t currently meet. What are the requirements for being a Committer on open source projects?

  • Solid foundation of Java language An open source project will involve the bottom of the storage, which requires a certain data structure, the JAVA collections framework class nature became our breakthrough in the best teacher in the data structure, the second is the JAVA concurrency, namely, multithreading, concurrent container, lock, such as subject, this aspect can learn the JUC framework. Finally, it is best to have some network knowledge, such as NIO, Netty.
  • Making contributions to an open source project is very easy, submitting a PR and being accepted, or even submitting a document for acceptance. The harder part is making contributions that are considered outstanding by the PMC of the open source project.

I compare “helpless suffering”, my resources in with Eva just me and my wife, the parents in the home not busy, so I don’t have a continuous free time after work concentrating on a task, and open source need most is excellence, not only need to complete function, but to write good code structure, design of time much more than code development time, So I personally think it’s not convenient for me to take the path of code contribution. But I still have plenty of spare time, so FOR now I will make the best of it and continue to contribute to open source projects by writing articles.

Coming back to the topic of this section, how do you get involved in an open source project?

Before participating in an open source project, I think the first and most basic step is to lay a solid foundation, which at least includes JAVA collection and JAVA Concurrency (JUC), which is the most basic, at least read the source code, understand its design concept, as for NIO, Netty can be used in the subsequent need to learn, targeted learning, combined with the use of demand, perhaps more powerful learning motivation, learning efficiency is more efficient.

How do you start an open source project from scratch once you have the basics? There are usually the following methods:

  • Look at the official documentation, especially the design manual, to get a sense of the design philosophy as a whole.
  • Write source code analysis class article, from the overall control of the framework, this takes more time, if the framework is in the initial stage, do not recommend this method; This approach is highly recommended if the framework is mature.
  • Try to look at issues in open source projects and see if you can solve them. Start with the problems and quickly integrate into the project.
  • Try writing unit test cases, test-driven development, to learn about the framework.

The latter thing is perseverance, toward the goal of continuous progress, halfway can slow down, but do not give up, because only insist, can win, as long as the progress, closer to the goal.

One of the most basic requirements for participating in open source is to have a lot of continuous time. To be a Committer of open source frameworks, you need to be a Committer, commit, and commit.

Evangelists and code contributors are both ways to participate in open source projects. You can choose different ways based on your actual situation, and both can contribute to the open source community and be recognized by the open source community, indirectly building your influence and ultimately helping your career.

Finally, I would like to thank the RocketMQ community again for their encouragement, and I would like to share with you my motto: Action is better than action. The harder you work, the luckless you are.


See article such as surface, I am Weige, keen on systematic analysis of JAVA mainstream middleware, pay attention to the public number “middleware interest circle”, replycolumnCan get into the system column navigation, replydataCan obtain the author’sLearn mind mapping.