RabbitMq fedration聯邦

啓用federation插件和管理插件

1、啓動RabbitMQ服務

rabbitmq-server  -detached

2、啓用federation插件
使用root用戶

rabbitmq-plugins enable rabbitmq_federation

在這裏插入圖片描述
3、啓用管理插件

rabbitmq-plugins enable rabbitmq_federation_management

在這裏插入圖片描述
安裝成功後,在web監控界面,在選項admin看到federation的信息
在這裏插入圖片描述
在這裏插入圖片描述
4、定義Federation Upstreams
在這裏插入圖片描述
name:可以隨便起個名字
URI:一般這麼寫:
amqp://admin:[email protected]:5672
或者是:
amqp://admin:[email protected]
端口號加不加都行

admin是用戶名,admin123是密碼。都是控制檯的訪問的用戶名和密碼
正確的配置如下圖示:
在這裏插入圖片描述

5、定義fedration策略
在這裏插入圖片描述
配置好如下圖所示:
在這裏插入圖片描述
然後查看fedration的狀態 fedration status必須爲running纔可以,其他狀態比如爲starting,都是有問題的。
在這裏插入圖片描述
6、發送消息驗證
在rabbitMq發送一個消息
在這裏插入圖片描述
寫個應用程序來消費這些消息
rabbitMQ工具類

import com.rabbitmq.client.ConnectionFactory;

import com.rabbitmq.client.Connection;

public class RabbitMqUtils {

    public static Connection getConnection() throws Exception {
        ConnectionFactory factory = new ConnectionFactory();

        factory.setHost("10.136.1.195");
        factory.setPort(5672);
        factory.setVirtualHost("/");
        factory.setUsername("test");
        factory.setPassword("test");
        Connection connection = factory.newConnection();
        return connection;
    }

}

消費消息類

import com.example.rabbitmq.util.RabbitMqUtils;
import com.rabbitmq.client.*;

import java.io.IOException;


public class ClusterNode2MsgComsumer {

    public static void main(String[] args) throws Exception {
        RabbitMqUtils mqUtils = new RabbitMqUtils();
        String queueName = "dc.sync.cloud.queue";
        Connection connection = mqUtils.getConnection();
        Channel channel = connection.createChannel();
        channel.basicConsume(queueName, true, new DefaultConsumer(channel) {

            @Override
            public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body)
                    throws IOException {
              /*  System.out.println("consumerTag==>" + consumerTag);
                System.out.println("envelope==>" + envelope);
                System.out.println("props==>" + properties);*/
                System.out.println("消費者node2接收消息==>【" + new String(body,"UTF-8") + "】");
            }

        });

    }
}

可以看到消費前是這樣的
在這裏插入圖片描述
運行執行消費
在這裏插入圖片描述
消費後結果是這樣的
在這裏插入圖片描述
ok,完畢

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章