RabbitMQ

分布式03-Spring Cloud Cofig 客户端主动刷新 三

|▌冷眼眸甩不掉的悲伤 提交于 2020-04-06 02:41:51
Spring Cloud Cofig 1,2 https://my.oschina.net/u/4039389/blog/3217362 https://my.oschina.net/u/4039389/blog/3217468 1.客户端gradle引入包 compile 'org.springframework.boot:spring-boot-starter-actuator' compile 'org.springframework.cloud:spring-cloud-starter-bus-amqp' 2.客户端 application.properties management.endpoints.web.exposure.include=* # actuator允许访问的链接 #rabbitmq配置=================单机刷新可以不用配置 spring.rabbitmq.host=xxx.xxxx.xxx.xx spring.rabbitmq.port=5672 spring.rabbitmq.prod.port=5674 spring.rabbitmq.username=xxx spring.rabbitmq.password=xxxx spring.rabbitmq.virtual-host=/ spring.rabbitmq.publisher

RabbitMQ的持久化

早过忘川 提交于 2020-04-06 00:04:06
RabbitMQ的持久化主要体现在三个方面,即交换机持久化,队列持久化及消息持久化 注意,因公司使用php-amqplib来实现RabbitMQ,故之后举例说明的代码均使用的php-amqplib,而非php的amqp扩展 1、交换机持久化 交换机的持久化其实就是相当于将交换机的属性在服务器内部保存,当MQ的服务器发生意外或关闭之后,重启RabbitMQ时不需要重新手动或执行代码去建立交换机,交换机会自动建立,相当于一直存在。 创建交换机的方法为exchange_declare($exhcange_name,$type,$passive,$durable,$auto_delete);,当$durable这个参数为true时,该交换机就会被存储到内存里,当RabbitMQ服务器重启时,会将该交换机自动重新创建,如果为false,重启后该交换机则会被从交换机队列里删掉。 2、队列持久化 队列持久化类似于交换机持久化,创建队列方法queue_declare中也有一个参数是$durable,也代表着RabbitMQ服务器重启时,是否自动创建队列,图中参数注释与方法中的参数(除队列名外)顺序一一对应 3、消息持久化 众所周知,RabbitMQ的消息是依附于队列存在的,所以想要消息持久化,那么前提是队列也要持久化。 消息的持久化与交换机持久化与队列持久化有所不同,消息的持久化在于创建消息的时候

RabbitMQ消息发布和消费的确认机制

喜夏-厌秋 提交于 2020-04-05 22:55:15
前言 新公司项目使用的消息队列是RabbitMQ,之前其实没有在实际项目上用过RabbitMQ,所以对它的了解都谈不上入门。趁着周末休息的时间也猛补习了一波,写了两个窗体应用,一个消息发布端和消息消费端。园子里解释RabbitMQ基础的很多了,这里就不对RabbitMQ的基础再做叙述了,来点实际工作中一定会碰到的问题和解决的方案。 RabbitMQ 消息发布确认机制 默认情况下消息发布端执行BasicPublish方法后,消息是否到达指定的队列的结果发布端是未知的。BasicPublish方法的返回值是void。假设我们想对消息进行监控,针对消息发送失败后进行补发则需要一个消息确认机制来帮我们实现。 事务机制 Confirm确认机制 上面是已知可通过RabbitMQ自带的特性实现消息确认机制的两种方式。 事务机制 事务机制依赖三个RabbitMQ提供的方法 txSelect() txCommit() txRollback() 看名字大概知道意思了,特别是Commit和Rollback,使用方式和数据库的事务使用几乎一样,txSelect()声明事务的开始,txCommit()提交事务,txRollBack()执行提交失败后的回滚。 使用代码如下: // 采取RabbitMQ事务方式传输消息 private void SendMessageByTransaction

linux 安装rabbitMQ详细教程

此生再无相见时 提交于 2020-04-04 22:49:16
经过第一次的安装失败, 第二次总算是成功了, 这里总结一下。 第一步:下载版本对应的rpm安装包 1. 下载Erlang安装包:RabbitMQ是Erlang语言编写,所以Erang环境必须要有,注:Erlang环境一定要与RabbitMQ版本匹配, 版本匹配对照地址: https://www.rabbitmq.com/which-erlang.html Erlang的下载地址:Erlang下载地址: https://www.rabbitmq.com/releases/erlang/ (根据自身需求及匹配关系,下载对应rpm包) 2. 下载RabbitMQ安装包, 这里使用的是rpm, 当然了也可以下载源码进行编译安装。   RabbitMQ下载地址: https://www.rabbitmq.com/releases/rabbitmq-server/ (根据自身需求及匹配关系,下载对应rpm包) 3. 下载Socat安装包   rabbitmq安装依赖于socat,所以需要下载socat。   socat下载地址: http://repo.iotti.biz/CentOS/6/x86_64/ socat-1.7.3.2-1.el6.lux.x86_64.rpm   根据自身需求下载对应系统socat依赖:( http://repo.iotti.biz/CentOS/ ) 第二步:

rabbit rpm地址

别说谁变了你拦得住时间么 提交于 2020-04-04 02:47:39
https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/7/ https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/20/el/7/ 来源: https://www.cnblogs.com/wangjq19920210/p/12630157.html

RabbitMQ学习笔记(1)----RabbitMQ简介与安装

谁都会走 提交于 2020-04-02 20:58:12
·1. 什么是RabbitMQ?   RabbitMQ是流行的开源消息队列系统,用erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。   而AMQP协议则是指:即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。   结构图如下:      RabbitMQ有几个重要的概念,如下:     Broker:简单来说就是消息队列服务器实体。     Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。     Queue:消息队列载体,每个消息都会被投入到一个或多个队列。     Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。     Routing Key:路由关键字,exchange根据这个关键字进行消息投递。     vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。     producer:消息生产者,就是投递消息的程序。     consumer:消息消费者,就是接受消息的程序。     channel:消息通道,在客户端的每个连接里

RabbitMQ消息队列之基础 (二)

非 Y 不嫁゛ 提交于 2020-04-02 19:59:40
1,路由模式 direct direct 模式基础概念请参考 RabbitMQ消息队列之基础 (二) direct类型的路由规则很简单,它会把消息路由到那些binding key与routing key完全匹配的Queue中; 也就是说: 只要队列名、交换机、路由key完全一致,就可以匹配到该消息。 这里直接演示代码: 生产者: 1 //direct类型 路由模式 1对1匹配 2 //生产者发送消息时需要指定一个路由键(routingKey),交换机只会把消息转发给包含该路由键的队列 3 //string exchange = "TestMq_Exchange"; //交换机 4 //string routingKey = "TestMq_RoutingKey"; //路由键 5 6 string queueName = "TestMq"; //队列名 7 for (int i = 0; i < 10; i++) 8 { 9 string message = "Hello World:" + i; 10 RabbitMqConfig rabbitMqConfig = RabbitMqConfig.Init(); //初始化配置文件 11 ConnectionFactory connFactory = new ConnectionFactory 12 { 13 Uri = new

部署Rabbitmq

爷,独闯天下 提交于 2020-04-01 14:07:21
一、Rabbitmq概念 RabbitMQ是一个开源的靠AMQP协议实现的服务,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。 它可以使对应的客户端(client)与对应的消息中间件(broker)进行交互。消息中间件发布者(publisher)那里收到消息(发布消息的应用,也称为producer),然后将他们转发给消费者(consumers,处理消息的应用)。由于AMQP是一个网络协议,所以发布者、消费者以及消息中间件可以部署到不同的物理机器上。 Rabbitmq使用场景: 消息队列在实际应用中常用在异步处理、应用解耦、流量削锋和消息通讯这四个场景。 二、部署Rabbitmq 注:在开始之前,主机名最好为默认的localhosts(如果不是,会在启动rabbitmq时报错,解决方法:重启主机,再启动rabbitmq) 下载 rpm包 (提取码

windows下 安装 rabbitMQ 及操作常用命令

无人久伴 提交于 2020-04-01 07:48:35
rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平台上。 1.安装 Erlang 所以在安装rabbitMQ之前,需要先安装Erlang 。 小编使用的是 otp_win64_18.1 ,需要其他版本或者32位系统的,可以去 官网 下载。 全部点击“下一步”就行。 有的选择其他的安装方式,可能需要添加一下系统环境变量(正常安装的也要检查下): 有最好,没有的话就手动添加嘛。 2.安装 RabbitMQ 下载运行 rabbitmq-server-3.6.5 ,需要其他版本或者32位系统的,可以去 官网 下载。 依旧可以不改变默认进行安装。 需要注意:默认安装的RabbitMQ 监听端口是5672 3.配置 激活 RabbitMQ's Management Plugin 使用RabbitMQ 管理插件,可以更好的可视化方式查看Rabbit MQ 服务器实例的状态。 打开命令窗口: 输入命令: "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.5\sbin\rabbitmq-plugins.bat" enable rabbitmq

RabbitMQ消息队列(一): Detailed Introduction 详细介绍

≯℡__Kan透↙ 提交于 2020-04-01 03:21:06
原文地址:https://blog.csdn.net/anzhsoft/article/details/19563091 1 历史 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco 、Redhat、iMatix 等联合制定了 AMQP 的公开标准。 RabbitMQ是由RabbitMQ Technologies Ltd开发并且提供商业支持的。该公司在2010年4月被SpringSource(VMWare的一个部门)收购。在2013年5月被并入Pivotal。其实VMWare,Pivotal和EMC本质上是一家的。不同的是VMWare是独立上市子公司,而Pivotal是整合了EMC的某些资源,现在并没有上市。 RabbitMQ的官网是http://www.rabbitmq.com 2 应用场景 言归正传。RabbitMQ,或者说AMQP解决了什么问题,或者说它的应用场景是什么? 对于一个大型的软件系统来说