RabbitMQ

RabbitMQ C#使用之二C#使用

Deadly 提交于 2020-01-09 11:07:22
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1. 说明   在企业应用系统领域,会面对不同系统之间的通信、集成与整合,尤其当面临异构系统时,这种分布式的调用与通信变得越发重要。其次,系统中一般会有很多对实时性要求不高的但是执行起来比较较耗时的地方,比如发送短信,邮件提醒,更新文章阅读计数,记录用户操作日志等等,如果实时处理的话,在用户访问量比较大的情况下,对系统压力比较大。 面对这些问题,我们一般会将这些请求,放在消息队列MQ中处理;异构系统之间使用消息进行通讯。   MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。   MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。   RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。   消息传递相较文件传递与远程过程调用(RPC)而言

RabbitMQ C#使用之一windows配置Erlang环境

こ雲淡風輕ζ 提交于 2020-01-09 10:46:05
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> windows配置Erlang环境 1.说明   1.1 操作系统 win10x64   1.2 Erlang(['ə:læŋ])是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。 使用Erlang来编写分布式应用要简单的多,因为它的分布式机制是透明的:对于程序来说并不知道自己是在分布式运行。Erlang运行时环境是一个虚拟机,有点像Java虚拟机,这样代码一经编译,同样可以随处运行。它的运行时系统甚至允许代码在不被中断 的情况下更新。另外如果需要更高效的话,字节代码也可以编译成本地代码运行。 2.下载安装 下载地址:http://www.erlang.org/downloads 本人下载了 OTP 19.2 Windows 64-bit Binary File   下载下来双击安装,不表。 3.设置环境变量   手动编辑“path”加入路径 C:\Program Files\erl8.2\bin    4.检查Erlang是否安装成功   打开 cmd ,输入 erl 后回车,如果看到如下的信息,表明安装成功。    5.over 来源: oschina 链接: https://my.oschina.net/u

RabbitMQ has Nodedown Error

霸气de小男生 提交于 2020-01-09 04:14:51
问题 On a Windows 7 Enterprise machine, I made a fresh install of Erlang 17.4 and RabbitMQ 3.4.3 x64. The installation was successful and uneventful. I have not yet tried to create my first queue or exchange, but I already see trouble. This problem is similar to another SO post, but that other post appears to involve clustering, which I don't have. Furthermore, that other poster can circumvent his issue by restarting the RabbitMQ service; that approach does not work for me. My "nodedown" problem

rabbitmq数据备份与还原

半世苍凉 提交于 2020-01-09 01:58:36
一、场景 现在有服务器A和服务器B ,由于业务需要,要求把服务器A上mq的数据迁移到服务器B上,rabbitmq的数据包括元数据(RabbitMQ用户、vhost、队列、交换和绑定)和消息数据,而消息数据存储在单独的消息存储库中。 A:192.168.2.58 B:192.168.1.60 二、元数据备份和还原 1、操作 在服务B上搭建rabbitmq服务,注意,主机名最好和A上的MQ保持一致。避免后面的数据存储节点名不一致,导致启动失败 安装过程详见: 2、导出数据 用管理员账号登录到A服务器上的管理后台 http://192.168.2.58:15672,按如下所示把备份的数据下载到本地 3、导入数据 登录到B服务器上的MQ管理后台 http://192.168.1.60:15672,进入如下图所示的位置,导入数据,大概10秒钟左右。 4、验证数据 刷新页面,查看用户、队列、vhost 等信息是否存在 三、消息数据备份和还原 1、确定数据目录 登录到A服务器,执行如下命令,确定消息数据存储目: [root@rabbitmq-ipr-service-test opt]# rabbitmqctl eval 'rabbit_mnesia:dir().' "/var/lib/rabbitmq/mnesia/rabbit@rabbitmq-ipr-service-test" 2

RabbitMQ小结(二)安装

 ̄綄美尐妖づ 提交于 2020-01-08 19:19:59
RabbitMQ小结(二)安装 1.下载 Eralng 网址:https://www.erlang.org/downloads 2.安装Eralng 一直next即可 3.设置Eralng系统环境变量 此电脑–>鼠标右键“属性”–>高级系统设置–>环境变量–>“新建”系统环境变量 变量名:ERLANG_HOME 变量值即是erlang的安装地址,点击确定 更改系统变量path 点击“新建”,将%ERLANG_HOME%\bin加入到path中。 4.测试Eralng是否安装成功 windows键+R键,输入cmd,再输入erl,看到版本号就说明erlang安装成功了 5.下载RabbitMQ 网址:https://www.rabbitmq.com/download.html 6.安装RabbitMQ 双击下载后的.exe文件,一直next即可。 7.RabbitMQ设置 打开命令行cd,输入RabbitMQ的sbin目录 D:\RabbitMQ\rabbitmq_server-3.8.2\sbin 然后在后面输入rabbitmq-plugins enable rabbitmq_management命令进行安装 8.启动RabbitMQ 启动成功后,访问http://localhost:15672 默认用户名和密码都是guest 登陆即可 登录成功 来源: CSDN 作者: 雪孤城

RabbitMQ面试题解析

一世执手 提交于 2020-01-08 13:54:03
1.消息队列的作用与使用场景? 异步:批量数据异步处理。例:批量上传文件,比如代发代扣文件 削峰:高负载任务负载均衡。例:电商秒杀抢购 解耦:串行任务并行化。例:退货流程解耦。 广播:基于Pub/Sub实现一对多通信 2.多个消费者监听一个队列时,消息如何分发? 1.Round-Robin(轮询) 默认的策略,消费者轮流,平均地收到消息。 2.Fair dispatch(公平分发) 如果要实现根据消费者的处理能力来分发消息,给空闲的消费者发送更多消息,可以用basicQos(int prefetch_count)来设置。prefetch_count的含义:当消费者有多少条消息没有响应ACK时,不再给这个消费者发送消息。 3.无法被路由的消息,去了哪里? 如果没有任何设置,无法路由的消息会被直接丢弃。 无法路由的情况:Routing key不正确 解决方案: 1.使用mandatory = true配合ReturnListener,实现消息回发 2.声明交换机时,指定备份交换机。 4.消息在什么时候会变成Dead Letter(死信)? 1.消息被拒绝并且没有设置重新入队:(NACK || Reject)&&requeue == false 2.消息过期(消息或者队列的TTL设置) 3.消息堆积,并且队列达到最大长度,先入队的消息会变成DL。 可以在声明队列的时候,指定一个Dead

RabbitMQ 集群环境安装

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-08 09:31:26
突然发现自己的英语能力很差, 文档 看的云里雾里,在安装 RabbitMQ 集群的时候遇到了很大的麻烦。 安装 RabbitMQ 的集群环境,首先得来讲如何安装非集群环境 Step1 :安装 Erlang 啥是 Erlang? Look –> http://en.wikipedia.org/wiki/Erlang_%28programming_language%29 下载 Erlang 的 SRC - otp_src_R13B04.tar.gz ./configure --prefix=/usr/local/erlang make make install Step2: 安装 Python 2.6 以上版本(大部分 Linux 版本都自带了 Python2.6 以上版本) Step3 :如果没有 simplejson-2.1.1 这个 Python 的 lib ,需要从 此处 下载 Step4 :下载 RabbitMQ Server Package rabbitmq-server-generic-unix-1.7.2.tar.gz Step5 :解压后,进入 /home/rabbitmq_server-1.7.2/sbin 目录,运行 ./rabbitmq-server 如果出现: +---+ +---+ | | | | | | | | | | | | | +---+ +-----

RabbitMQ用户管理+VirtualHost管理

限于喜欢 提交于 2020-01-07 12:25:39
转自: https://www.cnblogs.com/hgfbk/p/10887058.html 添加用户:   如果使用的是WEB界面选择Admin,下面有一个Add a User,然后设置用户名(username),密码(password),用户角色(tags)     角色分类:Admin(管理员):         Monitoring (监控者):          Policymaker(决策者):          Management(管理者):          Impersonator(模拟者):          None(没有):   添加完成之后在All Users中就会多出一个用户:    Virtual Host:     选择右边的Virtual Hosts,就可以创建一个Virtual Host ,一般这个东西的名字以/开始,           接下来就要给用户授权,直接点进去,上面箭头标记的位置,进入到这个VirtualHost,找到Permissions 修改User为授权的目标,点击Ser Permission 就可以了 来源: https://www.cnblogs.com/Reclouds-shangri-la/p/12160646.html

SpringBoot连接多RabbitMQ源

江枫思渺然 提交于 2020-01-07 12:08:56
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在实际开发中,很多场景需要异步处理,这时就需要用到RabbitMQ,而且随着场景的增多程序可能需要连接多个RabbitMQ。SpringBoot本身提供了默认的配置可以快速配置连接RabbitMQ,但是只能连接一个RabbitMQ,当需要连接多个RabbitMQ时,默认的配置就不太适用了,需要单独编写每个连接。 在SpringBoot框架中,我们常用的两个类一般是: RabbitTemplate :作为生产、消费消息使用; RabbitAdmin :作为申明、删除交换机和队列,绑定和解绑队列和交换机的绑定关系使用。 所以我们连接多个RabbitMQ就需要重新建立连接、重新实现这两个类。 代码如下: 配置 application.properties 配置文件需要配置两个连接: server.port=8080 # rabbitmq v2.spring.rabbitmq.host=host v2.spring.rabbitmq.port=5672 v2.spring.rabbitmq.username=username v2.spring.rabbitmq.password=password v2.spring.rabbitmq.virtual-host=virtual-host #consume 手动 ack

RabbitMQ安装(一)-环境准备

♀尐吖头ヾ 提交于 2020-01-07 08:28:53
本篇记录下RabbitMQ安装前的准备,还是在先前装好的虚拟机中操作,系统centos7,环境配置可参考先前文件: linux环境搭建 ,需要先安装erlang,在安装RabbitMQ。 一、版本匹配 访问RabbitMQ网站,https://www.rabbitmq.com,页面向下拉,直奔主题 页面右侧可以看到erlang版本匹配,点进入即可看到对应版本 本次选用的版本是: erlang : 22.1 RabbitMQ : 3.8.1 二、erlang下载 下载地址 : http://erlang.org/download/otp_src_22.1.tar.gz 可以点此链接直接下载即可,也可参考下面方式查找其他版本: (1)、访问erlang网站,点下载模块 https://www.erlang.org/downloads 页面右侧可以选在需要的版本: (2)下载地址 页面向下,找到OPT-22.1,点击跳转,即可直接访问: https://github.com/erlang/otp/releases/tag/OTP-22.1 (3)选择对应系统文件即可 三、RabbitMQ下载 回到刚才访问RabbitMQ网站下载页面,选择右边栏Install: Generic binary build,即可直接访问: https://www.rabbitmq.com/install