In-depth understanding of message queue experience

1 Implement a simple mq

Implementing a simple message queue (MQ) is a challenging task as multiple aspects need to be considered such as reliability, throughput, latency, etc. But I can give you a very basic example of MQ implementation.

Here we will use Python to create a simple MQ.

  1. message queue :
import queue

class SimpleMQ:
    def __init__(self):
        self.queue = queue.Queue()

    def send(self, message):
        self.queue.put(message)

    def receive(self):
        if not self.queue.empty():
            return self.queue.get()
        return None
  1. producer :
import time

def producer(mq):
    count = 0
    while count < 10:
        mq.send(f"Message {
      
      count}")
        print(f"Produced: Message {
      
      count}")
        count += 1
        time.sleep(1)
  1. consumer :
import time

def consumer(mq):
    while True:
        msg = mq.receive()
        if msg:
            print(f"Consumed: {
      
      msg}")
        time.sleep(2)
  1. Main program :
import threading

if __name__ == "__main__":
    mq = SimpleMQ()
    
    producer_thread = threading.Thread(target=producer, args=(mq,))
    consumer_thread = threading.Thread(target=consumer, args=(mq,))

    producer_thread.start()
    consumer_thread.start()

    producer_thread.join()
    consumer_thread.join()

This is just a very basic MQ implementation for demonstration purposes only. In practical applications, a variety of advanced functions also need to be considered, such as message persistence, message confirmation, message retry, distributed deployment, multi-consumer concurrent processing, etc.

Guess you like

Origin blog.csdn.net/yxg520s/article/details/132472846