• 如何保证消息的顺序性


    RabbitMQ

     

      RabbitMQ消息顺序错乱的场景:数据1、2、3按顺序发到一个queue,多个消费者消费同一个queue

      拆分为多个queue,每个queue由一个consumer消费;

      或者就一个queue但是对应一个consumer,然后这个consumer内部用内存队列做排队,然后分发给底层不同的worker来处理

    Kafka

     

      1个topic,3个partition,3个consumer,每个消费者消费一个partition,需要保证顺序的消息都放入同一个partiton,但是如果一个消费者开启多个线程来处理,还是无法保证消息的顺序性。

      解决办法:每个消费者内部设置多个内存队列,对消息的key做hash,将需要保证顺序的消息映射到同一个内存队列中,每个线程负责处理一个内存队列

    转自:中华石杉Java工程师面试突击

  • 相关阅读:
    Docker--简介&&安装
    Mycat
    Mysql--主从复制
    Nginx--平滑升级
    Nginx--rewrite
    Nginx--缓存
    Mysql--SQL语句
    Nginx--虚拟主机
    Nginx--反向代理&&负载均衡
    Nginx--用户认证&&访问控制&&限速&&状态访问
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/10020997.html
Copyright © 2020-2023  润新知