RabbitMQ集群架构模式

2023-11-20

 

 

 

 

 搭建Mirror镜像集群:

 

 

 

 

4369是erlang的发现端口
5672是rabbitmq的通信端口
15672是rabbitmq的可视化控制台的端口号
25672是erlang底层发送消息和分配消息的底层端口


firewall-cmd --zone=public --add-port=4369/tcp --permanent

firewall-cmd --zone=public --add-port=5672/tcp --permanent

firewall-cmd --zone=public --add-port=15672/tcp --permanent


firewall-cmd --zone=public --add-port=25672/tcp --permanent

firewall-cmd --reload

 

find / -name *.cookie   查询到该文件里面是一串字符,我们要让多台机子的该文件的字符一致
所以下面我们要进行远程拷贝
scp /var/lib/rabbitmq/.erlang.cookie 192.168.70.182:/var/lib/rabbitmq

进行权限设置
chmod 400 /var/lib/rabbitmq/.erlang.cookie    注意分别在两台机子上实现 

 

 分别启动两台服务器的rabbit
我们要在从机上配置我这里选择了第二台进行配置

暂停从机的rabbit的服务
rabbitmqctl stop_app

把从机加入到主机上
rabbitmqctl join_cluster rabbit@m1

启动从机的服务
rabbitmqctl start_app


最后检验结果
rabbitmqctl cluster_status 
会出现如下结果:
[{no des,[{disc,[rabbit@m1,rabbit@m2]}]},
 {running_nodes,[rabbit@m1,rabbit@m2]},
 {cluster_name,<<"rabbit@m1">>},
 {partitions,[]},
 {alarms,[{rabbit@m1,[]},{rabbit@m2,[]}]}]

 第一台的操作会复制到第二台服务》

Haproxy负载均衡:

 

 yum install haproxy    进行安装HA代理服务器 


rpm -ql haproxy        查看安装文件,主要查看目录结构


启动 haproxy服务命令   haproxy


然后查找ha的配置文件   
find / -name haproxy.cfg
会出现如下两个文件
    /etc/haproxy/haproxy.cfg
    /usr/share/doc/haproxy-1.5.18/examples/haproxy.cfg
    使用vim对   /etc/haproxy/haproxy.cfg进行编辑

 

#对MQ集群进行监听
listen rabbitmq_cluster
    bind 0.0.0.0:5672
    option tcplog
    mode tcp 
    option  clitcpka
    timeout connect 1s 
    timeout client  10s
    timeout server  10s
    balance roundrobin
    server node1 192.168.132.137:5672 check inter 5s rise 2 fall 3  
    server node2 192.168.132.139:5672 check inter 5s rise 2 fall 3

#开启haproxy监控服务    
listen http_front
    bind 0.0.0.0:1080
    stats refresh 30s
    stats uri /haproxy?stats
    stats auth admin:admin

haproxy
配置完成之后启动
haproxy -f /etc/haproxy/haproxy.cfg


通过火狐浏览器进行检验操作
http://localhost:1080/haproxy?stats


最后可以查看haproxy的暴露的端口

 

 

 本机访问:

Consumer

public class Consumer {
    //一般情况先启动消费端
    public static void main(String[] args) throws IOException, TimeoutException {

        Connection connection = RabbitUtils.getConnection();
        Channel channel = connection.createChannel();

        channel.queueDeclare(RabbitContent.QEUEU_HELLO,false,false,false,null);

        //开始接受消息
        //参数2为是否自动签收,如果为true表示自动如果为false表示不自动
        //channel.basicConsume(RabbitContent.QEUEU_HELLO, false, new MyConsumer(channel));
        channel.basicConsume(RabbitContent.QEUEU_HELLO, false, new DefaultConsumer(channel){
            @Override
            public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                String msg = new String(body);
                System.out.println("接受到消息:" + msg);
                //最后我么要做签收操作,目录是我们收到了消息就要把队列中的消息删除
                channel.basicAck(envelope.getDeliveryTag(),false);
            }
        });

    }
}

 producer.java:

public class Producer {
    public static void main(String[] args) throws IOException, TimeoutException {
        //创建物理连接
        Connection connection = RabbitUtils.getConnection();
        //创建虚拟连接
        Channel channel = connection.createChannel();
        //通过Channel来进行数据的传输操作
        //我这里要向mq发送消息
        channel.queueDeclare(RabbitContent.QEUEU_HELLO,false, false, false,null);
        String str = "NBANBANBA";
        channel.basicPublish("", RabbitContent.QEUEU_HELLO, null, str.getBytes());
        System.out.println("消息发送成功");
        channel.close();
        connection.close();
    }
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RabbitMQ集群架构模式 的相关文章

随机推荐

  • 基于位置的 AR 应用程序开发最完整指南

    几年前 全世界都为 Pokemon Go 疯狂 虽然这款游戏令人难以置信的受欢迎程度正在缓慢下降 但增强现实已成为科技界的新趋势 并且正在自信地抢占市场份额 2020年 AR市场规模超过141亿美元 预计到2022年底将达到2092亿美元
  • 混合式A星代码解析_2 规划主程序Planner.cpp

    3 规划程序 Planner cpp 在main cpp中 起主要作用的就是 HybridAStar Planner hy hy plan 规划算法都是在HybridAStar Planner这个类内部进行运算的 所以主要分析以下Plann
  • 客户端html跳到cas登出页面,CAS单点登录:单点登出及自定义登出界面(六)

    1 单点登出 1 1 参数说明 配置单点登出 配置允许登出后跳转到指定页面 cas logout followServiceRedirects false 跳转到指定页面需要的参数名为 service cas logout redirect
  • 扫描二维码进入体验版小程序却一直进入线上版本?这个配置要注意!

    1 前期准备 服务器 域名 2 配置扫描普通二维码进入小程序页面 开发小程序过程中 我们会遇到很多不同的场景 其中 扫描普通二维码进入小程序就是其中之一 下面先来看下如何配置扫描普通二维码进入小程序 首先登录开发平台 打开开发管理 进入开发
  • 大端小端,LSB和MSB

    在verilog中碰到了lsb和msb 所以做一下解释 lsb 就是最低位有效 类似于wire 0 31 这样的顺序 msb 就是最高位有效 类似于wire 31 0 这样的顺序 还有计算机中还有大端小端的概念一块解释一下 举例 0X123
  • 2022/9/6小结

    成长 是一个探索自我的过程 看 了不起的我 这本书 不知道是那句话 那个段落 或者那一章触动到了我 曾经我无法发自内心地去读书 去感受书中的情感 或悲伤 或喜悦 曾经我迫切地想通过书籍获得一项技能 获得一种读书人的气质 很幼稚 我不是在读书
  • Linux绑核效率优化

    Linux绑核效率优化 原理概述 cpu一般有多个物理核心 但在运行进程和线程时候 可以将其绑定或者指定到某一个或者多个核心上运行 这样做的好处是 一般在核数比较多的机器上 会有多个CPU共享三级缓存cache的情况 当出现跨cache数据
  • electron创建新窗口(模态框)并相互传值,主进程传值给子进程

    我们在开发的过程中难免会遇到需要创建一个子窗口 子进程 但是在这个子进程中所有值都是初始化的 而我们肯定是需要一些值才能进行下一步操作 比如 token 那么我们怎么去传递值呢 我先给伙伴们说一些 基本原理 下面很多东西会建立在vue的基础
  • line-height: 1

    价格文字 问题 新价格 旧价格 每个都设置了自己的line height 结果就是 新价格 旧价格 的底部没有与父元素 div 贴底 样式调试起来很难 解决办法 新价格 旧价格 的 line height 都设置为 1 成功
  • chrony配置服务器时间同步

    chrony 设置时区 timedatectl set timezone Asia Shanghai 查看时区 timedatectl date R 设置时间 date s 20211109 11 32 30 时区和时间配置好之后 配置ch
  • STM32--IIC

    1 IIC总线协议介绍 IIC Inter Integrated Circuit 集成电路总线 是一种同步串行半双工通信总线 IIC总线结构图 由时钟线SCL和数据线SDA组成 并且都接上拉电阻 确保总线空闲状态为高电平 总线支持多设备连接
  • antd + react model自定义footer_阿里开源可插拔的企业级React应用框架——UmiJS

    介绍 UmiJS 五米 是阿里开源的可插拔企业级React应用框架 为什么说是可插拔 是因为它的整个生命周期都是插件化的其内部也有很多都是通过插件来实现的 其中大家熟知的Ant Design pro就是基于umi构建的 官方文档 中文文档
  • Zabbix安装部署(国内源镜像)----一次性解决centos7安装zabbix报错:[Errno 256] 的问题

    Zabbix安装部署 环境准备 OS CentOS 7 安装步骤 一 关闭selinux和iptables root localhost systemctl stop firewalld service root localhost set
  • 相关性分析p值_相关性分析的结果解读及说明

    下图是三个不同的变量 Y 分别与变量X的相关性分析结果 1 相关系数r r 1 二者具有完美的正相关 r 0到1之间 两个变量一起增加或者一起减少 r 0 二者没有相关性 r 1到0 一个变量随着另一个变量的增加而减少 或者减少而增加 r
  • Feign客户端 - 超时时间配置

    Spring Cloud 专栏收录该内容 7 篇文章0 订阅 订阅专栏 Spring Cloud中Feign客户端是默认开启支持Ribbon的 最重要的两个超时就是连接超时ConnectTimeout和读超时ReadTimeout 在默认情
  • vue3前端以json样式输入组件实现

    在 Vue 3 中 你可以创建一个组件 让用户输入 JSON 并将这个 JSON 渲染成某种样式或结构 以下是一个简单示例 它涵盖了如何在 Vue 3 中创建一个接受 JSON 输入并呈现其内容的组件 Setup Vue Project 如
  • IO多路复用

    1 IO模型 IO模型是指四种不同的文件读写方式 1 阻塞IO 阻塞IO是最常用 最简单 效率最低的一种IO模型 阻塞读 如果有数据可读 则直接读取数据 如果没有数据可读 则读会阻塞 直到读取到数据 或 出错才返回 阻塞写 如果有空间可供写
  • python3(四)Pandas库

    数据摘要pandas 目录 1 pandas库 1 1 pandas库 1 2 Series类型 1 3 Series类型的基本操作 1 4 DataFrame类型 1 5 数据类型操作 1 6 数据类型运算 2 数据特征分析 2 1 数据
  • c#获取cpu序列号

  • RabbitMQ集群架构模式

    搭建Mirror镜像集群 4369是erlang的发现端口 5672是rabbitmq的通信端口 15672是rabbitmq的可视化控制台的端口号 25672是erlang底层发送消息和分配消息的底层端口 firewall cmd zon