<commit_before>---
layout: post
title: GuPao - Distributed Message Queue
date:   2021-10-24 18:30:00 -0700
categories: reference
tag: java
---



* content

{:toc}





Last Update: 11-13-2021



# Why Message Queue? 

In a distributed system, components talk to each other following some protocol. They can be REST/RPC/MQ. 

__There are different type of message queue protocols, such as__

1. AMQP advanced message queue protocol - high reliability
2. MQTT message queuing telemetry transport - lightweight, written in C, doesn't support persistence
3. OpenMessage - from Chinese community, used by Apache RocketMQ
4. kafka -> tcp based binary protocol, support big data volume

__Each of these protocols have different implementations__

1. RabbitMQ implments AMQP, born from financial industry highlighting reliability. 

__Five core concepts when it comes to message queue implementations__

1. protocol
2. persistence mechanism - RabbitMQ, Kafka, RocketMQ all use file system as their persistent layer
3. distribute mechanism (push / pull)
4. reliability<commit_msg>update toc<commit_after>---
layout: post
title: GuPao - Distributed Message Queue
date:   2021-10-24 18:30:00 -0700
categories: reference
tag: java
---

* content
{:toc}



Last Update: 11-13-2021



# Why Message Queue? 

In a distributed system, components talk to each other following some protocol. They can be REST/RPC/MQ. 

__There are different type of message queue protocols, such as__

1. AMQP advanced message queue protocol - high reliability
2. MQTT message queuing telemetry transport - lightweight, written in C, doesn't support persistence
3. OpenMessage - from Chinese community, used by Apache RocketMQ
4. kafka -> tcp based binary protocol, support big data volume

__Each of these protocols have different implementations__

1. RabbitMQ implments AMQP, born from financial industry highlighting reliability. 

__Five core concepts when it comes to message queue implementations__

1. protocol
2. persistence mechanism - RabbitMQ, Kafka, RocketMQ all use file system as their persistent layer
3. distribute mechanism (push / pull)
4. reliability
{'fraction_non_alphanumeric': 0.05805243445692884, 'fraction_numerical': 0.03277153558052434, 'mean_word_length': 4.250614250614251, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4148198', 'n_tokens_mistral': 646, 'n_tokens_neox': 547, 'n_words': 280}