RabbitMQ

Docker安装部署RabbitMQ

拥有回忆 提交于 2020-04-27 21:48:39
https://blog.csdn.net/super_rd/article/details/70792746 http://muxiulin.cn/archives/category/rabbitmq 使用Docker安装部署RabbitMQ 1、docker search rabbitmq:management 2、docker pull rabbitmq:management 注意:如果docker pull rabbitmq 后面不带management,启动rabbitmq后是无法打开管理界面的,所以我们要下载带management插件的rabbitmq. 3、开始创建rabbitmq容器 docker run -d --name myrabbitmq --hostname rabbitmqhostone -p 5672:5672 -p 15672:15672 macintoshplus/rabbitmq-management rabbitmq的 数据库 名称规则是,NODENAME@hostname, Docker 每次从 Docker image启动容器的时候会自动生成hostname,这样一来,你保存在主机上的 数据库 就会没用了,包括之前创建的用户也会没有了。所以在创建容器的时候必须指定--hostname=rabbitmqhostone,这样 docker

RabbitMQ、RPC、SaltStack "贡"具的使用

谁说胖子不能爱 提交于 2020-04-27 21:46:03
消息队列 使用队列的场景 在程序系统中,例如外卖系统,订单系统,库存系统,优先级较高 发红包,发邮件,发短信,app消息推送等任务优先级很低,很适合交给消息队列去处理,以便于程序系统更快的处理其他请求。 消息队列工作流程 # 消息队列一般有三个角色: 队列服务端 队列生产者 队列消费者 队列产品 RabbitMQ Erlang编写的消息队列产品,企业级消息队列软件,支持消息负载均衡,数据持久化等。 ZeroMQ saltstack软件使用此消息,速度最快。 Redis key-value的系统,也支持队列数据结构,轻量级消息队列 Kafka 由Scala编写,目标是为处理实时数据提供一个统一、高通量、低等待的平台 消息队列作用 1)程序解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 2)冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。 许多消息队列所采用的"插入-获取-删除"范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕。 3)峰值处理能力: (大白话,就是本来公司业务只需要5台机器,但是临时的秒杀活动,5台机器肯定受不了这个压力,我们又不可能将整体服务器架构提升到10台,那在秒杀活动后,机器不就浪费了吗?因此引入消息队列)

RabbitMQ 消息的可靠投递

送分小仙女□ 提交于 2020-04-27 21:42:19
mq 提供了两种方式确认消息的可靠投递 confirmCallback 确认模式 returnCallback 未投递到 queue 退回模式 在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两个选项用来控制消息的投递可靠性模式。 rabbitmq 整个消息投递的路径为: producer->rabbitmq broker cluster->exchange->queue->consumer message 从 producer 到 rabbitmq broker cluster 则会返回一个 confirmCallback 。 message 从 exchange->queue 投递失败则会返回一个 returnCallback 。我们将利用这两个 callback 控制消息的最终一致性和部分纠错能力。 对于消息异常,可以使用以下方法进行解决 使用RepublishMessageRecoverer这个MessageRecoverer会发送发送消息到指定队列 给队列绑定死信队列,因为默认的RepublishMessageRecoverer会发送nack并且requeue为false。这样抛出一场是这种方式和上面的结果一样都是转发到了另外一个队列。详见DeadLetterConsumer

Ubuntu16.04安装和配置RabbitMQ

江枫思渺然 提交于 2020-04-27 21:08:57
1.RabbitMQ安装前需要erlang环境 apt- get install erlang- nox # 安装erlang erl # 查看relang语言版本,成功执行则说明relang安装成功 2.添加公钥 wget -O- https: // www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add - 3.更新软件包 apt- get update 4.安装 RabbitMQ apt- get install rabbitmq-server #安装成功自动启动 5.查看RabbitMQ状态 systemctl status rabbitmq- server #Active: active (running) 说明处于运行状态 # service rabbitmq -server status 用service指令也可以查看,同systemctl指令 6.启动、停止、重启命令 service rabbitmq- server start # 启动 service rabbitmq - server stop # 停止 service rabbitmq -server restart # 重启 7.启用 web端可视化操作界面,我们还需要配置Management Plugin插件

centos下安装rabbitmq

廉价感情. 提交于 2020-04-27 21:08:25
一.安装erlang 先新建rabbitmq文件夹 cd /usr/local/src/ mkdir rabbitmq cd rabbitmq //下载rpm,如果下载速度慢可以本地下载上传Linux中也可 wget https://packages.erlang-solutions.com/erlang/esl-erlang/FLAVOUR_1_general/esl-erlang_21.2.2-1~centos~7_amd64.rpm //导入公钥 rpm –import http://packages.erlang-solutions.com/rpm/erlang_solutions.asc //安装自动更新依赖(不建议使用rpm安装) yum install esl-erlang_21.2.2-1~centos~7_amd64.rpm //验证是否安装成功 erl 二.安装rabbitmq //下载rabbitmq wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.9/rabbitmq-server-3.7.9-1.el7.noarch.rpm //导入RabbitMQ signing key.Before the Yum repository can be used,

python-RabbtiMQ消息队列

懵懂的女人 提交于 2020-04-27 21:08:05
1.RabbitMQ简介 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。 AMQP的主要特征是面向消息、队列、路由(包括点对点和发布 / 订阅)、可靠性、安全。 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 2.RabbitMQ能为你做些什么? 消息系统允许软件、应用相互连接和扩展.这些应用可以相互链接起来组成一个更大的应用,或者将用户设备和数据进行连接.消息系统通过将消息的发送和接收分离来实现应用程序的异步和解偶. 或许你正在考虑进行数据投递,非阻塞操作或推送通知。或许你想要实现发布/订阅,异步处理,或者工作队列。所有这些都可以通过消息系统实现。 RabbitMQ是一个消息代理 - 一个消息系统的媒介。它可以为你的应用提供一个通用的消息发送和接收平台,并且保证消息在传输过程中的安全。 3.RabbitMQ 安装使用 4

【RabbitMQ学习之一】RabbitMQ入门

╄→гoц情女王★ 提交于 2020-04-27 20:41:38
环境   win7   rabbitmq-server-3.7.17   Erlang 22.1   RabbitMQ使用Erlang语言开发消息中间件。RabbitMQ基于AMQP(高级消息队列协议)协议,更适合业务系统、交易系统做消息缓冲的场景,比如订单缓冲等,要求稳定性高、严谨、丢数据可能性小; kafka适合做日志、大数据中数据交换缓冲,优势是吞吐量大,相对rabbitMQ丢数据可能性弱。阿里新版本的RocketMQ既可应用于业务交易系统,也适用于日志系统。 1、安装 需要先安装Erlang在安装RabbitMQ,安装(含windows和linux)参考:https://blog.csdn.net/hellozpc/article/details/81436980#RabbitMQ_12 windows安装 Linux安装 windows安装后目录一览: 2、启动 (1)启用插件 rabbitmq-plugins enable rabbitmq_management (2)开启和关闭 停止:net stop RabbitMQ 启动:net start RabbitMQ 3、验证 浏览器地址输入管理界面URL:http://127.0.0.1:15672/,默认账号登录:guest/ guest 4、管理界面的一些操作 参考 参考: RabbitMQ教程 Kafka

(持续更新) C# 面试技术点、常见SQL技术点 和 解决高并发的相关技术

时光毁灭记忆、已成空白 提交于 2020-04-27 20:39:32
这篇博客 持续更新. 方便小伙伴们学习与面试前的复习 😆文中的错误 😬更好的答案 😏建议增加的知识点 😗有更好的建议 … ❤️ ❤️欢迎大家在评论区留言 ❤️ ❤️ 文章目录 更新日志 C# 面试题 常用轮子 SQL Server SQL优化 SQL题 高并发系列 缓存 Redis 消息队列 RabbitMQ 更新日志 😄 时间 更新内容 2019.06.20 ➕增加"常用轮子"栏目 2019.05.27 ➕增加"高并发系列"栏目 2019.05.16 ➕增加 “SQL优化” 栏目 2019.05.14 ➕增加 “目录” 2019.05.13 ⭕️初次更新 C# 面试题 🍎 点击前往 ----> C#面试题 常用轮子 🍐 点击前往 ----> C#/Java常用轮子 SQL Server SQL优化 🍇 点击前往 ----> SQL优化 SQL题 🍋 点击前往 ---->SQL题 高并发系列 缓存 Redis 🍌 点击前往 ----> Redis面试问答 消息队列 RabbitMQ 🍉 点击前往 ----> RabbitMQ面试问答 来源: oschina 链接: https://my.oschina.net/u/4391166/blog/3538585

如何保证MQ的顺序性?比如Kafka

谁说胖子不能爱 提交于 2020-04-27 20:37:35
三、如何保证消息的顺序性 1. rabbitmq 拆分多个queue,每个queue一个consumer,就是多一些queue而已,确实是麻烦点;或者就一个queue但是对应一个consumer,然后这个consumer内部用内存队列做排队,然后分发给底层不同的worker来处理 2. kafka 写入一个partition中的数据一定是有序的,生产者在写的时候 ,可以指定一个key,比如指定订单id作为key,这个订单相关数据一定会被分发到一个partition中去。消费者从partition中取出数据的时候也一定是有序的,把每个数据放入对应的一个内存队列,一个partition中有几条相关数据就用几个内存队列,消费者开启多个线程,每个线程处理一个内存队列 。 面试题 如何保证消息的顺序性? 面试官心理分析 其实这个也是用 MQ 的时候必问的话题,第一看看你了不了解顺序这个事儿?第二看看你有没有办法保证消息是有顺序的?这是生产系统中常见的问题。 面试题剖析 我举个例子,我们以前做过一个 mysql binlog 同步的系统,压力还是非常大的,日同步数据要达到上亿,就是说数据从一个 mysql 库原封不动地同步到另一个 mysql 库里面去(mysql -> mysql)。常见的一点在于说比如大数据 team,就需要同步一个 mysql 库过来

2019年rabbitMQ面试高频题(java)

强颜欢笑 提交于 2020-04-27 20:37:14
前言 2019即将过去,伴随我们即将迎来的又是新的一年,过完春节,马上又要迎来新的金三银四面试季。那么,作为程序猿的你,是否真的有所准备的呢,亦或是安于本职工作,继续做好手头上的事情。 当然,不论选择如何,假如你真的准备在之后的金三银四跳槽的话,那么作为一个Java工程师,就不可不看了。如何在几个月的时间里,快速的为即将到来的面试进行充分的准备呢? 1. RabbitMQ 的使用场景有哪些? 抢购活动,削峰填谷,防止系统崩塌。 延迟信息处理,比如 10 分钟之后给下单未付款的用户发送邮件提醒。 解耦系统,对于新增的功能可以单独写模块扩展,比如用户确认评价之后,新增了给用户返积分的功能,这个时候不用在业务代码里添加新增积分的功能,只需要把新增积分的接口订阅确认评价的消息队列即可,后面再添加任何功能只需要订阅对应的消息队列即可。 2. RabbitMQ 有哪些重要的角色? RabbitMQ 中重要的角色有:生产者、消费者和代理: 生产者: 消息的创建者,负责创建和推送数据到消息服务器; 消费者: 消息的接收方,用于处理数据和确认消息; 代理: 就是 RabbitMQ 本身,用于扮演“快递”的角色,本身不生产消息,只是扮演“快递”的角色。 3. RabbitMQ 有哪些重要的组件? ConnectionFactory(连接管理器):应用程序与Rabbit之间建立连接的管理器