amqp

Ubuntu16.04安装Rabbitmq

拥有回忆 提交于 2021-01-13 08:50:11
1.为了使用存储库,添加一个用于将RabByMQ版本发布到APT密钥的密钥: wget -O - ' https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc ' | sudo apt-key add - 2.添加相应版本的源 echo " deb https://dl.bintray.com/rabbitmq/debian xenial main " | sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list 3.更新源列表 sudo apt- get update 4.安装支持库 sudo apt- get install erlang erlang-nox -y 5.安装rabbitmq-server,并启动服务 sudo apt- get install rabbitmq-server -y /etc/init.d/rabbitmq-server start #安装完成默认是开启 6.启动插件 rabbitmq既可以命令行操作,也可以用rabbitmq自带的web管理界面,只需要启动插件便可以使用 sudo rabbitmq -plugins enable rabbitmq_management #默认端口15672 访问地址:http:/

[转]在Windows上安装RabbitMQ

家住魔仙堡 提交于 2021-01-10 08:00:51
原文链接 翻译:xiezc 下载服务器 描述 下载 Windows系统安装程序(来自 Bintray ) 的RabbitMQ的服务器-3.7.4.exe (签名) Windows系统安装程序(来自 GitHub ) 的RabbitMQ的服务器-3.7.4.exe (签名) 安装RabbitMQ服务 首先,您需要安装 支持的 Windows版本 Erlang 。下载并运行 Erlang for Windows 安装程序。强烈建议使用64位版本。 重要提示: 您 必须 使用管理帐户运行Erlang安装程序,否则RabbitMQ安装程序将不会写入注册表。 然后,运行RabbitMQ安装程序 rabbitmq-server-3.7.4.exe,它会将RabbitMQ安装为Windows服务并使用默认配置启动它。 运行的RabbitMQ服务 自定义的配置运行 该服务将使用其默认设置正常运行。您可能想要 自定义的RabbitMQ环境 或编辑 配置 。 运行的RabbitMQ RabbitMQ的服务自动启动。您可以从开始菜单停止/重新安装/启动RabbitMQ的服务。 管理服务 您可以在开始菜单中找到RabbitMQ快捷方式。 还有一个RabbitMQ命令行工具,该工具在开始菜单的sbin目录中。这是最便捷的 命令行工具 。 升级Erlang VM 如果您有安装包并计划将Erlang

SpringBoot整合RabbitMQ

痞子三分冷 提交于 2021-01-10 05:35:11
首先建立工程 然后 建立一个配置类,用来配置Rabbit相关,主要是交换机和队列以及绑定关系。 package com.example.demo.conf; import org.springframework.amqp.core.* ; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @program: boot-rabbitmq * @description: * @author : 001977 * @create: 2018-07-02 17:45 */ @Configuration public class RabbitConfiguration { /** * If not conf the exchange * Channel shutdown: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no exchange 'hello.direct' in vhost '/', class-id=60, method-id=40) * */

Spring Cloud Config 自动刷新所有节点 架构改造

ぐ巨炮叔叔 提交于 2021-01-09 06:14:21
详细参考:《Sprin Cloud 与 Docker 微服务架构实战》p162-9.9.4节 要做的改动是: 1、在spring cloud config server 服务端加入 spring-cloud-starter-bus-amqp 包 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.thunisoft</groupId> <artifactId>thunisoft-microservice-config</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>thunisoft-microservice-config</name>

Spring Cloud Config 自动刷新所有节点

别说谁变了你拦得住时间么 提交于 2021-01-07 08:05:55
全局刷新 详细参考:《Sprin Cloud 与 Docker 微服务架构实战》p160-9.9.2节 1、使用Spring Cloud Config 客户端时,可以使用 /refresh 端点,舒心配置信息(注意:关闭安全认证,否则无法刷新。management.security. enabled = false )。 2、如果每一个 客户端都要手动的使用 /refresh 端点去刷新配置。很繁琐,也不便于操作,想想如果有100个节点怎么办?当然了你也可以写一个脚本批量操作。 3、其实spring cloud 已经存在这样的解决方案了,我们只需要简单的配置就可以进行全节点的自动刷新。 下面是的使用步骤: 1、添加依赖关系:spring-cloud-starter-bus-amqp 2、在bootstrap.xml配置文件中添加如下配置项目: spring: rabbitmq: host: localhost port: 5672 # 不是web端监控中心的15672端口 username: guest # 默认 password: guest # 默认 3、开始启动:   3.1 首先将配置中心 服务器端启动   3.2 然后将客户端启动,(为了容易测试,可以将客户端的启动端口更改,这个可以启动多台客户端)   3.3 更改远程库中的配置属性   3.4 使用 /bus

Spring AMQP - Proper way to register queues to container on startup

扶醉桌前 提交于 2021-01-07 03:28:56
问题 I have a situation where I need to register queues dynamically in a run-time to a SimpleMessageListenerContainer . The problem I am experiencing is a deadlock that happens because of this: Thread: [52] Thread1 wants the lock java.lang.Object@5537e0df org.springframework.amqp.rabbit.connection.CachingConnectionFactory.getDeferredCloseExecutor(CachingConnectionFactory.java:907) org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.restart(SimpleMessageListenerContainer.java

Spring AMQP - Proper way to register queues to container on startup

懵懂的女人 提交于 2021-01-07 03:27:41
问题 I have a situation where I need to register queues dynamically in a run-time to a SimpleMessageListenerContainer . The problem I am experiencing is a deadlock that happens because of this: Thread: [52] Thread1 wants the lock java.lang.Object@5537e0df org.springframework.amqp.rabbit.connection.CachingConnectionFactory.getDeferredCloseExecutor(CachingConnectionFactory.java:907) org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.restart(SimpleMessageListenerContainer.java

那些年,面试官问你的消息队列

∥☆過路亽.° 提交于 2021-01-05 08:23:25
MQ理论介绍 一、为什么需要消息队列(MQ) 主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。大量的请求到达访问数据库,导致行锁表锁,最后请求线程会堆积过多,从而触发 too many connection错误,引发雪崩效应。我们使用消息队列,通过异步处理请求,从而缓解系统的压力。核心:异步处理、流量削峰、应用解耦 二、应用场景 异步处理,流量削峰,应用解耦,消息通讯四个场景 2.1、异步处理 场景1:用户注册后,需要发送注册邮件和注册短信。 串行方式:将注册信息写入 数据库 成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端 并行方式:将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端。与串行的差别是,并行的方式可以提高处理的时间 假设三个业务节点每个使用50毫秒钟,不考虑网络等其他开销,则串行方式的时间是150毫秒,并行的时间可能是100毫秒。 因为CPU在单位时间内处理的请求数是一定的,假设CPU在1秒内吞吐量是100次。则串行方式1秒内CPU可处理的请求量是7次(1000/150)。 并行方式处理的请求量是10次(1000/100) 小结:如以上案例描述,传统的方式系统的性能(并发量,吞吐量,响应时间)会有瓶颈。如何解决这个问题? 引入消息队列,将不是必须的业务逻辑,异步处理

RabbitMQ之发布订阅

試著忘記壹切 提交于 2021-01-03 07:48:03
将同一个队列的消息发送给多个消费者的模式就是“发布/订阅”, 这种模式的基础是将消息广播到所有的接收器上。 实际上,RabbitMQ中消息传递模型的核心思想是: 生产者不直接发送消息到队列。 实际的运行环境中,生产者是不知道消息会发送到哪个队列上, 她只会将消息发送到一个交换器, 交换器也像一个生产线,她一边接收生产者发来的消息,另外一边则根据交换规则,将消息放到队列中。 交换器必须知道她所接收的消息是什么?它应该被放到哪个队列中?它应该被添加到多个队列吗?还是应该丢弃? 这些规则都是按照交换器的规则来确定的。 交换器的规则有: direct (直连) topic (主题) headers (标题) fanout (分发)也有翻译为扇出的 我们将使用【fanout】类型创建一个名称为myexchange的交换器 channel.exchangeDeclare("myexchange", "fanout"); 分发交换器很简单,你通过名称也能想到,她是广播所有的消息 通过rabbitmqctl list_exchanges指令可以列出服务器上所有可用的交换器列表 这个列表里面所有以【amq.*】开头的交换器都是RabbitMQ默认创建的。在生产环境中,可以自己定义。 在之前的实例中,我们知道,发送消息到队列时根本没有使用交换器,但是消息也能发送到队列。

快速掌握RabbitMQ(一)——RabbitMQ的基本概念、安装和C#驱动

社会主义新天地 提交于 2021-01-02 15:23:10
1 RabbitMQ简介 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现,官网地址: http://www.rabbitmq.com 。RabbitMQ作为一个消息代理,主要负责接收、存储和转发消息,它提供了可靠的消息机制和灵活的消息路由,并支持消息集群和分布式部署,常用于应用解耦,耗时任务队列,流量削锋等场景。本系列文章将系统介绍RabbitMQ的工作机制,代码驱动和集群配置,本篇主要介绍RabbitMQ中一些基本概念,常用的RabbitMQ Control命令,最后写一个C#驱动的简单栗子。先看一下RabbitMQ的基本结构:   上图是RabbitMQ的一个基本结构,生产者Producer和消费者Consumer都是RabbitMQ的客户端,Producer负责发送消息,Consumer负责消费消息。 接下来我们结合这张图来理解RabbitMQ的一些概念:    Broker(Server) :接受客户端连接,实现AMQP消息队列和路由功能的进程,我们可以把Broker叫做RabbitMQ服务器。    Virtual Host :一个虚拟概念,一个Virtual Host里面可以有若干个Exchange和Queue,主要用于权限控制,隔离应用。如应用程序A使用VhostA,应用程序B使用VhostB