RabbitMQ集群架构模式

news2024/11/15 23:32:08

 

 

 

 

 搭建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();
    }
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/605165.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Springboot+vue.js高校校园社交个人博客相册网站系统

基于java语言设计并实现了高校社交系统。该系统基于B/S即所谓浏览器/服务器模式&#xff0c;应用Springboot框架&#xff0c;选择MySQL作为后台数据库。系统主要包括用户、个人动态、个人相册、动态类型、留言板、交流论坛等功能模块。近几年来&#xff0c;由于计算机技术的快速…

chatgpt赋能python:Python列表中如何找出前三名成绩

Python列表中如何找出前三名成绩 在数据分析和编程中&#xff0c;Python语言被广泛使用。其中&#xff0c;列表是Python中最常用的数据类型之一。列表可以存储多个值&#xff0c;并且这些值可以是不同的数据类型。Python列表很强大&#xff0c;因为它提供了许多内置函数和方法…

划水2年半,薪资还没新人多,不要太真实...

上个月公司来了许多新面孔&#xff0c;其中一个是个00后&#xff0c;这位兄弟毕业后&#xff0c;在某软件公司干了一年&#xff0c;现在跳槽到我们公司薪资20K&#xff0c;已经超过公司很多老油条了。因为我和他年纪相差不大&#xff0c;所以和他聊得来&#xff0c;才知道&…

Educational Codeforces Round 149 (Rated for Div. 2)(A—D、F)

文章目录 A. Grasshopper on a Line1、问题2、分析3、代码 B. Comparison String1、问题2、分析3、代码 C. Best Binary String1、问题2、分析3、代码 D. Bracket Coloring1、问题2、分析3、代码 E. Playoff Fixing1、问题2、分析3、代码 F. Editorial for Two1、问题2、分析3、…

数据库期末复习(6)基于哈希和B+树的索引查询

免责声明 练习题没有答案 图片都是自己做的 仅供参考 可扩展哈希表和练习 笔记 数据库--- 索引结构 (2)--可扩展哈希表及增删查_旅僧的博客-CSDN博客 练习 首先默认 局部深度都是1 然后进行插入 之后分裂 按照课件上的操作进行。 线性哈希表

插入排序,选择算法与快速排序(c语言,Java语言)

插入排序 原理&#xff1a;从数组的第二个元素开始,将数组中的每一个元素按照&#xff08;升序或者降序&#xff09;规则插入到已排好序的数组中以达到排序的目的。 插入排序并不是将元素取出来&#xff0c;插入到合适位置&#xff0c;之后的元素的位置依次加一&#xff0c;而…

在职阿里8年,一个31岁女软件测试工程师的心声

简单的先说一下&#xff0c;坐标杭州&#xff0c;13届本科毕业&#xff0c;算上年前在阿里巴巴的面试&#xff0c;一共有面试了有6家公司&#xff08;因为不想请假&#xff0c;因此只是每个晚上去其他公司面试&#xff0c;所以面试的公司比较少&#xff09; 其中成功的有4家&am…

【STL】stack、queue基本使用和模拟实现

目录 前言 stack 接口介绍 模拟实现 queue 接口介绍 模拟实现 没有迭代器 deque介绍 前言 stack 和 queue 本质上是一种容器配接器&#xff0c;就像我们平时充电时使用的电源适配器&#xff0c;能够将电压转换成设备能够接受的程度。 其通过封装特定容器作为其底层…

我的测试之路:从入坑测试到月薪15k...

“干过保险卖过房&#xff0c;做过销售做过网管”这是我毕业后前两年的真实写照&#xff0c;因为所学网络安全专业不好找工作&#xff0c;毕业之后为了生活只能将就的干着这种门槛低的工作。后来一次同学聚会被同学带下坑后&#xff0c;正式转行软件测试。 刚入坑的两年&#…

【自动化测试实战】从 0 到 1 搭建 Dubbo 接口自动化测试

前言 1、Dubbo 接口自动化测试框架实现逻辑 2、框架具体功能 3、关键实践 3.1 下载 provider 的 jar 包&#xff0c;并代理声明 zookeeper 设置 3.2 邮件发送功能 3.3 封装 Dubbo 接口信息类 3.4 利用 JMeter 调用 provider 服务&#xff0c;并断言&#xff0c;邮件报警…

音视频基础及海思sample_venc解读

1、sample的整体架构 (1)sample其实是很多个例程&#xff0c;所以有很多个main (2)每一个例程面向一个典型应用&#xff0c;common是通用性主体函数&#xff0c;我们只分析venc (3)基本的架构是&#xff1a;venc中的main调用venc中的功能函数&#xff0c;再调用common中的功…

python基于DeeplabV3Plus开发构建裂缝分割识别系统,并实现裂缝宽度计算测量

在我之前的文章中已经有不少基于裂缝场景的数据开发构建的模型了&#xff0c;感兴趣的话可以自行移步阅读&#xff0c;如下&#xff1a; 《基于yolov5sbifpn实践隧道裂缝裂痕检测》 《基于YOLOV7的桥梁基建裂缝检测》 《水泥路面、桥梁基建、隧道裂痕裂缝检测数据集》 《基…

SpringBoot异步执行方法

1. 源码跟踪 1.简单描述 在SpringBoot2.0.9之前需要手动自定义线程池(如下2.1), 然后指定线程池的名称 SpringBoot2.0.9以及之前的版本,使用的线程池默认是SimpleAsyncTaskExcutor, , 之后的版本使用的是ThreadpoolTaskExecutor 并且不需要手动的创建当前线程池(但往往我们…

多线程基础(五)ThreadLocal与四种引用

一、ThreadLocal ThreadLocal&#xff1a;解决每个线程绑定自己的值&#xff0c;存放线程的私有数据。 public class ThreadLocalTest {public static ThreadLocal local new ThreadLocal();public static void main(String[] args) {if(local.get() null){local.set("…

加成序列 dfs 迭代加深 java

&#x1f351; 加成序列 满足如下条件的序列 X X X&#xff08;序列中元素被标号为 1 、 2 、 3 … m 1、2、3…m 1、2、3…m&#xff09;被称为“加成序列”&#xff1a; KaTeX parse error: Undefined control sequence: \[ at position 2: X\̲[̲1\]1KaTeX parse error…

一文读懂MVCC:数据库中的并发读写利器!

大家好&#xff0c;我是你们的小米&#xff0c;一个积极活泼、喜好分享技术的小伙伴。今天&#xff0c;我想和大家聊一聊数据库领域的一个重要话题——MVCC多版本并发控制。MVCC是MySQL和其他一些数据库系统中常用的并发控制技术&#xff0c;通过它&#xff0c;我们可以在高并发…

如何用 Python 实现所有算法?

学会了 Python 基础知识&#xff0c;想进阶一下&#xff0c;那就来点算法吧&#xff01;毕竟编程语言只是工具&#xff0c;结构算法才是灵魂。 新手如何入门 Python 算法&#xff1f; 几位印度小哥在 GitHub 上建了一个各种 Python 算法的新手入门大全。从原理到代码&#xff0…

milkV-duo的Linux的开发环境搭建

目录 写在前面 内核编译 烧录失败的示例&#xff08;这种情况下就和插上空卡一样) 进入系统 串口进入 SSH接入 写在前面 基本上大部分的问题都能在开源社区上得到答案,记录下我遇到的问题. 附上开源社区 MilkV Community 这里的引脚图和板子的丝印有点对不上&#xff…

竞赛中常用的Python 标准库

对竞赛中常用得标准库进行解析和给出代码模板 目录 1.functools 1.1 cmp_to_key 1.2 lru_cache&#xff08;记忆化存储&#xff0c;加快递归速度&#xff09; 2.collections 2.1 deque 2.1.1 单调对列实现 2.1.2 BFS广搜 3.sys 3.1 sys.maxsize 3.2 sys.exit() 3.…

使用python的plot绘制loss、acc曲线,并存储成图片

使用 python的plot 绘制网络训练过程中的的 loss 曲线以及准确率变化曲线&#xff0c;这里的主要思想就时先把想要的损失值以及准确率值保存下来&#xff0c;保存到 .txt 文件中&#xff0c;待网络训练结束&#xff0c;我们再拿这存储的数据绘制各种曲线。 其大致步骤为&#x…