RabbIT

rabbitMQ笔记

懵懂的女人 提交于 2020-11-08 15:36:09
六种工作模式 官网介绍:https://www.rabbitmq.com/getstarted.html 简单模式:一个生产者,一个消费者 work模式:一个生产者,多个消费者,每个消费者获取到的消息唯一。 订阅模式:一个生产者发送的消息会被多个消费者获取。 路由模式:发送消息到交换机并且要指定路由key ,消费者将队列绑定到交换机时需要指定路由key topic模式:将路由键和某模式进行匹配,此时队列需要绑定在一个模式上,“#”匹配一个词或多个词,“ *”只匹配一个词。 简单模式/work模式 Channel channel = rabbitTemplate.getConnectionFactory().createConnection().createChannel( false ); channel.queueDeclare("yangsimple", false , false , false , null ); channel.basicPublish( "", "yangsimple", null , "simple message" .getBytes()); System.out.println( "basic publish" ); channel.close(); 订阅模式/路由模式 // 生产者 Connection connection =

干货!消息队列RabbitMQ入门教程

南笙酒味 提交于 2020-11-01 23:36:19
​ 写在前面:全文12000多 字,从为什么需要用消息队列,到rabbitMQ安装使用,如何使用 JavaAPI生产消费消息,以及使用消息队列带来的一些常见问题。绝对很适合新手入门学习。 为什么需要消息队列 异步处理 削峰限流 秒杀活动,一般会因为流量过大,导致应用挂掉。加入消息队列可控制活动人数,缓解短时间的高流量。 应用解耦 双十一购物节,订单系统需要通知库存系统,传统做法是订单系统直接调用库存系统的接口,库存系统出现故障时订单就会失败。可在订单系统和库存系统中间加一个MQ,达到应用解耦的需求。 A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?A 系统负责人几乎崩溃...... 日志处理 消息队列有哪些 Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点? 特性 ActiveMQ RabbitMQ RocketMQ Kafka 单机吞吐量 万级,比 RocketMQ、Kafka 低一个数量级 同 ActiveMQ 10 万级,支撑高吞吐 10 万级,高吞吐,一般配合大数据类的系统来进行实时数据计算、日志采集等场景 topic 数量对吞吐量的影响 topic 可以达到几百/几千的级别,吞吐量会有较小幅度的下降,这是 RocketMQ 的一大优势,在同等机器下,可以支撑大量的

建议收藏!深度剖析RabbitMQ可靠性消息投递以及实践方案

非 Y 不嫁゛ 提交于 2020-10-31 18:59:30
一般而言,如果你选择RabbitMQ,那肯定就是把可靠性放在第一位。毕竟,RabbitMQ可是金融行业消息队列的标配。如果把性能放在第一位,那毫无疑问,必须是Kafka。但是,可靠性毕竟是相对的,就拿大火的阿里云,AWS云,或者传统的IBM小型机,Oracle数据库,没有谁敢说自己可靠性100%,都是说几个9。所以,本文的目的很明确,就是尽可能的提高我们RabbitMQ的可靠性,从发送、存储、消费、集群、监控、告警等多个维度给出可行性方案,指导开发者以及运维人员获取更加可靠的消息投递,保障我们的业务系统安全、可靠、稳定的运行。 数据可靠性是和RabbitMQ节点、生产者、消费者以及服务器等息息相关的。本文比较长,大概分为如下几个段落: 确认机制 生产者 消费者 队列镜像 告警 监控和Metrics 健康检查 如下是一张RabbitMQ架构图,本文对可靠性的分析,会涉及到架构图中的方方面面: 1. 确认机制 当连接出现问题的时候,在客户端和服务端之间的消息可能正在投递中,还没有被Broker接收,它们可能正在被编码或者解码,或者一些其他的情况。在这种场景下,消息并没有被投递,那么它们是需要被重新投递以保障业务稳定性。确认机制让服务端和客户端知道什么时候需要做这些事情,它对于生产者和消费者保障数据安全是非常重要的。 确认机制能被用在两个方向:允许消费者告诉服务器(Broker

软件-MQ-RabbitMQ:RabbitMQ

♀尐吖头ヾ 提交于 2020-10-29 11:13:30
ylbtech-软件-MQ-RabbitMQ:RabbitMQ RabbitMQ是实现了 高级消息队列协议(AMQP) 的 开源消息代理软件 (亦称 面向消息的中间件 )。RabbitMQ服务器是用 Erlang 语言编写的,而集群和故障转移是构建在 开放电信平台 框架上的。所有主要的编程语言均有与代理接口通讯的客户端 库 。 1. 返回顶部 1、 中文名:消息队列 外文名:Message Queue 简 称:MQ 释 义:一种程序对程序的通信方法 目录 1 简介 2 历史 3 基本概念 4 主要特性 5 安装 6 参见 2、 2. 返回顶部 1、 简介 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用 Erlang 语言编写的,而群集和故障转移是构建在 开放电信平台 框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。 历史 Rabbit科技有限公司开发了RabbitMQ,并提供对其的支持。起初,Rabbit科技是LSHIFT和CohesiveFT在2007年成立的合资企业,2010年4月被 VMware 旗下的SpringSource收购。RabbitMQ在2013年5月成为GoPivotal的一部分。 基本概念 RabbitMQ是一套 开源(MPL) 的消息队列服务软件,是由 LShift

RabbitMQ

喜夏-厌秋 提交于 2020-10-28 20:46:58
windows系统上安装rabbitmq时,参照http://blog.csdn.net/lu1005287365/article/details/52315786 这个教程安装完成之后,发现在执行 http://localhost:15672/ 提示该页无法访问 cmd进入rabbitmq安装目录sbin目录(D:\RabbitMQ Server\rabbitmq_server-3.7.0\sbin)下分别执行这两句 (1) rabbitmq-plugins enable rabbitmq_management (2)rabbitmqctl start_app 之后再访问就ok了 以下转载自:http://blog.csdn.net/sxf359/article/details/78239382 在执行 http://localhost:15672/ 提示该页无法访问,因为这是rabbitmq安装后的一个web管理平台入口。当安装后就能访问了。需要在cmd窗口执行一个命令: rabbitmq-plugins enable rabbitmq_management 此命令执行要先定位到rabbitmq的安装目录下的sbin文件夹下。 执行后仍然不能访问,通过cmd中的提示,说是需要执行rabbitmqctl start_app 但是执行后提示: starting node

linux上安装RabbitMQ

和自甴很熟 提交于 2020-10-27 03:29:42
1、安装erlang 以root身份执行下面命令 yum install erlang yum install erlang xmlto 2、安装epel源 rpm -ivh http: / /download.fedoraproject.org/pub /epel/ 6 /x86_64/epel-release- 6 - 8 .noarch.rpm wget -O /etc/yum.repos.d/epel-erlang.repo http: / /repos.fedorapeople.org/repos /peter/erlang /epel-erlang.repo 3、安装rabbitmq rpm包 wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.1.5/rabbitmq-server-3.1.5-1.noarch.rpm rpm -ivh rabbitmq-server-3.1.5-1.noarch.rpm 4、启动rabbitmq,并验证启动情况 rabbitmq-server --detached &ps aux | grep rabbitmq 5、以服务的方式启动 service rabbitmq-server start 6、检查端口5672是否打开 /sbin/iptables -I INPUT

RabbitMQ怎么在工程实践中具体落地

半腔热情 提交于 2020-10-24 14:15:58
消息中间件,我一直认为是对开发人员来说非常重要的一部分知识,但很少有人能把它精通。多数人都是为了面试或者是应付工作,学了很多遍,学了一些通用的零散的理论,而实际使用中,只会最基本的几个配置、几个命令。学了像是没学一样。时间久了,甚至有学它没什么用的感觉。 其实理解消息中间件,对理解分布式非常有帮助。消息中间件学好了,甚至可以改造成分布式事务框架。 我的好朋友 Jacquie 跟我说,同学们处在一个矛盾的情形下,一方面觉得好多课程里用到了MQ,都讲了几节,都学烂了,不想听了。另一方面,在专门讲MQ的专题课内,又觉得讲的理论化、脱离实际,用不到自己的工作中去。我们俩一合计,一起策划了 这门课 。 这就是我们俩的初心。 课程上线后,作为一个“长尾却刚需的产品”,原本只是想默默打磨质量,没想过一炮走红,很匠人的心态去做。 没想到却因为广受好评成为同期中 非常有个性的一门课程 ,所以Jacquie她又代表慕课网,找到我来回访。 有幸受访,我也又有了许多新收获。希望也可以对看文章的你有所帮助~ Jacquie: 短短一月,还跨越了十一长~~~假,课程却无论在课程评论区还是在QQ群内,都广受好评,而且都是“眼前一亮”“wow~ ⊙o⊙”的感觉,我来从几位同学的好评的角度,提出一些问题,我们一起做个复盘吧~ Moody: 好的 Jacquie:最初是怎么想到使用项目迭代的方式的

RabbitMQ使用分析和高可用集群搭建

倖福魔咒の 提交于 2020-10-24 11:05:45
一、RabbitMQ 基础理解 RabbitMQ,是一个使用 erlang 编写的 AMQP(高级消息队列协议)的服务实现,简单来说,就是一个功能强大的消息队列服务。 概念理解: Producer : 消息发送者 RabbitMQ : Vhost: 相当于分组,每个vhost下数据是隔离的 Exchange: 路由器,接收消息,本根据RoutingKey分发消息 headers:消息头类型 路由器,内部应用 direct:精准匹配类型 路由器 topic:主题匹配类型 路由器,支持正则 模糊匹配 fanout:广播类型 路由器,RoutingKey无效 RoutingKey: 路由规则 Queue: 队列,用于存储消息(消息的目的地) Consumer : 消息消费者 持久化: 一个好的消息队列当然需要消息持久化功能,服务宕机,未消费消息不丢失,RabbitMQ持久化分为Exchange、Queue、Message Exchange 和 Queue 持久化 指持久化Exchange、Queue 元数据,持久化的是自身,服务宕机,Exchange 和 Queue 自身就没有了 Message 持久化 顾名思义 把每一条消息体持久化,服务宕机,消息不丢失 Durable 持久、Transient 临时,Queue新建类似 分析理解: 便于更直观的理解,把 RabbitMQ

三种典型的博弈论问题之巴什博奕(Bash Game)

霸气de小男生 提交于 2020-10-23 05:59:53
什么是博弈论 官方回答: 博弈论,又称为对策论(Game Theory)、赛局理论等,既是现代数学的一个新分支,也是运筹学的一个重要学科。 博弈论主要研究公式化了的激励结构间的相互作用,是研究具有斗争或竞争性质现象的数学理论和方法。 博弈论考虑游戏中的个体的预测行为和实际行为,并研究它们的优化策略。生物学家使用博弈理论来理解和预测进化论的某些结果。 博弈论已经成为经济学的标准分析工具之一。在金融学、证券学、生物学、经济学、国际关系、计算机科学、政治学、军事战略和其他很多学科都有广泛的应用。 个人理解: 博弈论是将某些看似不可预测的一些游戏变得可预测。(我们大可不必在意这么多)今天我们要说的是编程中的博弈论。相对于来说没那么复杂。 巴什博奕 那么什么是巴什博弈呢??其实就是类似于这样的问题: 只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 可能有那么一丝抽象。那我们随便举一下例子好了(聪明的可以直接跳过下面分析): 现在有30个石头, A 和 B 轮流从这堆石头里面往外取,每次最少取 1 个,最多取 4 个,最后取光的那个人就是胜利者。假设让 A 先取,问 A 是否能赢得这次比赛。 碰到这道题猛一看貌似没什么规律,而且不知道怎么下手。 别慌,我们慢慢看。 (1)假如说石头数量少于 4 的话,因为 A 先拿,所以 A 可以一次性拿完,A

RabbitMQ的常见队列模型,simple模式、work模式、fanout模式、direct模式、topic模式、headers模式、RPC

天大地大妈咪最大 提交于 2020-10-22 23:59:59
目录 一、simple模式 simple模式实现-生产者 simple模式实现-消费者 二、work模式(能者多劳模式) work模式实现-生产者 work模式实现-消费者 三、订阅模式-fanout fanout模式实现-生产者 fanout模式实现-消费者 四、订阅模式-direct direct模式实现-生产者 direct模式实现-消费者 五、订阅模式-topic topic模式实现-生产者 topic模式实现-消费者 六、 订阅模式-headers 七、RPC 一、simple模式 即简单的点对点消息模型。开启mq服务,开启进程P 生产者向mq 写消息,进程C消费者监听mq,消费消息。 simple模式实现-生产者 simple模式实现-消费者 二、work模式(能者多劳模式) 一个生产者P,对应了多个消费者C。这些多个C,消费的消息各自不同,C1和C2 消费的消息,构成所有消息的一个全集。可开启C的消费竞争 channel.basicQos(1);C1和C2 能者多劳。 work模式实现-生产者 work模式实现-消费者 三、订阅模式-fanout 订阅模式中会用到交换机。根据交换机类型的不同,订阅模式的效果也会有所不同。 所有发送到该交换器的消息全部发送到其对应的队列中 fanout模式实现-生产者 fanout模式实现-消费者 四、订阅模式-direct