• RabbitMq 之 集联插件 federation


     在rabbitmq的分布式集群中,我们都是通过配置集群的模式进行分布式部署的,一般都是在内网中使用客户端进行连接调用,但是如果我们遇到大型的分布式集群的时候,比如一个部署在南方,一个部署在北方,然而rabbitmq集群只是部署在了南方,如果北方的分布式程序要来调用rabbitmq集群,那么就只能通过网络来进行远程调用了,在这个过程中我们是不能保证网络的状态的,因此rabbitmq也考虑到了这个因素,因此也就有了federation插件的诞生,它主要解决了以下两个问题:

           1.针对不同的erlang版本和rabbitmq版本,只要都是采用的AMQP 0.9.1作为传输协议都可以进行连接,而不需要建立集群。

           2.针对广域网中的复杂网络环境,针对不在同一个地区的分布式部署,可以采用federation联合的方式进行数据传输。它也可以在同一台服务器的不同virtual上面进行数交互。

          但是我们需要注意的是federation联合的数据在queue中并没有被转移到联合的一方,而是仍然保留在联合的一方,这个后面提到的shovel铲子不一样。

    RabbitMq 之 集联插件 federation,具体详情可以参考下面连接:

    https://blog.csdn.net/XinhuaShuDiao/article/details/104400834

    这里说一下在实际使用当中出现的一些注意事项:

    1.exchange 集联是全量级联过来了,意思就是如果两边都有一个相同队列绑定相同的exchange和routingkey,那么两边的队列有相同数据

    2.队列级联只会在下游队列中有消费者的时候才会去上游拉去数据,这时候两个mq上的队列中的数据是不同的,相当于下游在替上游分担消费压力,共同消费数据。

    3.当下游队列没有消费者的时候,是不会去上游拉去数据的,所以在测试的时候,遇到队列没有级联数据的时候,考虑一下有没有消费者这个原因

  • 相关阅读:
    练习四十:数组逆向输出
    练习三十九:数组插入排序
    Java awt组件间的继承关系
    java ArrayList
    java Scanner中的hasNext()方法
    java中String对象的存储位置
    java初始化块执行顺序
    java二维数组
    java数组变量
    Java数组初始
  • 原文地址:https://www.cnblogs.com/chengzhihua/p/13331201.html
Copyright © 2020-2023  润新知