深入理解消息队列面经

1 实现一个简易的mq

实现一个简单的消息队列(MQ)是一个挑战性的任务,因为需要考虑多种方面,如可靠性、吞吐量、延迟等。但我可以为你提供一个非常基本的MQ实现示例。

这里我们会使用Python创建一个简单的MQ。

  1. 消息队列:
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. 生产者:
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. 消费者:
import time

def consumer(mq):
    while True:
        msg = mq.receive()
        if msg:
            print(f"Consumed: {
      
      msg}")
        time.sleep(2)
  1. 主程序:
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()

这只是一个非常基础的MQ实现,仅供演示。在实际应用中,还需要考虑多种高级功能,如消息持久化、消息确认、消息重试、分布式部署、多消费者并发处理等。

猜你喜欢

转载自blog.csdn.net/yxg520s/article/details/132472846