RabbitMQ

【SpringBoot MQ系列教程】RabbitMq 初体验

雨燕双飞 提交于 2020-02-26 15:53:21
【SpringBoot MQ系列教程】RabbitMq 初体验 mq 在异步解耦削峰的优势非常突出,现在很多的项目都会用到,掌握 mq 的知识点,了解如何顺畅的使用 mq,可以说是一个必备的职业技能点了 接下来我们进入 rabbitmq 的学习过程 <!-- more --> I. 环境准备 在测试之前,需要安装 rabbitmq,下面分别给出 mac + centos 的安装教程 1. mac 安装 安装命令 brew install rabbitmq ## 进入安装目录 cd /usr/local/Cellar/rabbitmq/3.7.5 # 启动 brew services start rabbitmq # 当前窗口启动 rabbitmq-server 启动控制台之前需要先开启插件 ./rabbitmq-plugins enable rabbitmq_management 进入控制台: http://localhost:15672/ 用户名和密码:guest,guest 2. centos 安装 安装命令 yum install erlang wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-3.6.15-1.el6.noarch.rpm yum install

RabbitMq原理

若如初见. 提交于 2020-02-26 15:19:44
将消息投递给 exchange(交换器) ,然后交换器负责消息的投递。 交换器投递消息的时候将指定路径和 路由key 进行匹配(交换器的三种类型:表示不同的匹配规则)。 1.Message 消息。消息是不具名的,它由消息头消息体组成。消息体是不透明的,而消息头则由一系列可选属性组成,这些属性包括:routing-key(路由键)、priority(相对于其他消息的优先权)、delivery-mode(指出消息可能持久性存储)等。 2.Publisher 消息的生产者。也是一个向交换器发布消息的客户端应用程序。 3.Consumer 消息的消费者。表示一个从消息队列中取得消息的客户端应用程序。 4.Exchange 交换器。用来接收生产者发送的消息并将这些消息路由给服务器中的队列。 三种常用的交换器类型 1. direct(发布与订阅 完全匹配) 2. fanout(广播) 3. topic(主题,规则匹配) 5.Binding 绑定。用于消息队列和交换器之间的关联。一个绑定就是基于路由键将交换器和消息队列连接起来的路由规则,所以可以将交换器理解成一个由绑定构成的路由表。 6.Queue 消息队列。用来保存消息直到发送给消费者。它是消息的容器,也是消息的终点。一个消息可投入一个或多个队列。消息一直在队列里面,等待消费者链接到这个队列将其取走。 7.Routing-key 路由键

SpringCloud 进阶: 消息驱动(入门)Spring Cloud Stream【Greenwich.SR3】

折月煮酒 提交于 2020-02-26 14:34:23
 我的博客: 程序员笑笑生 ,欢迎浏览博客!  上一章 SpringCloud 基础教程(十二)-Zipkin分布式链路追踪系统搭建 当中,我们使用Zipkin搭建完整的实时数据追踪系统。本章开始我们将进入Spring Cloud的更高阶的内容部分,首先从消息驱动Spring Cloud Stream开始。 前言  消息驱动,顾明思议,在企业级应用中,消息中间件经常用于处理非同步场景、消息通知、应用解耦等。常用的有RabbitMq、kafka、Redis等消息队列等。Spring Cloud Stream是一个构建事件消息驱动的微服务框架,提供了一个灵活的编程模型。并基于Spring的基础之上,支持发布-订阅模型、消费者分组、数据分片等功能。 一、Stream 应用模型 Middleware: 消息中间件,如RabbitMq等 Binder:可以认为是适配器,用来将Stream与中间连接起来的,不同的Binder对应不同的中间件,需要我们配置 Application Core:由Stream封装的消息机制,很少情况下自定义开发 inputs:输入,可以自定义开发 outputs:输出,可以自定义开发 接下来快速开始,主要就是针对以上几个组件进行不同的配置。 二、快速开始  接下来,我们以RabbitMQ为例(消息队列的环境搭建整这里不做过多的介绍,本章以Stream为主)

RabbitMQ 高性能原因

痞子三分冷 提交于 2020-02-26 14:19:32
Erlang语言最初在于交换机领域的架构模式,这样使得RabbitMQ在Broker之间进行数据交互的性能是非常优秀的 Erlang的优点:Erlang有着和原生socket一样的延迟 来源: oschina 链接: https://my.oschina.net/u/4253180/blog/3163127

美团7面 问了哪些问题 java 4年

与世无争的帅哥 提交于 2020-02-26 13:49:12
前提:包括电面,美团一共7面,面了两个部门,后面一个部门面完hr面,等通知。结果凉凉。 详细的已经记不清楚了,每个问题都是根据回答再继续扩展问,只是简单的列一下。 explain的用法 分布式锁 写接口时考虑哪些 事务的传播机制 分布式一致性 线上遇到的问题,怎么解决 rabbitmq 消息发送的流程 rabbitmq如果一个消息堵在了队列头,如何处理 是否使用过rabbitmq的ack应答机制 rabbitmq的持久化 volitile关键字 threadlocal的使用场景 锁有哪几种 创建线程池的参数的含义 动态代理有哪些? mybatis的查询过程 btree和b+tree和二叉树、红黑树有什么区别 spring中用到哪些设计模式 来源: oschina 链接: https://my.oschina.net/wuyiyi/blog/3159617

RabbitMQ---Linux安装RabbitMQ

倖福魔咒の 提交于 2020-02-26 12:19:49
安装RabbitMQ需要,先安装Erlang依赖环境。本次安装环境:CentOS Linux release 7.5 RabbitMQ 3.6.8。 1.安装需要插件 yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel 2.安装Erlang yum install erlang 安装完成后可以检测是否安装成功,使用如下命令 erl 使用如下命令退出Erlang q(). 3.安装RabbitMQ 首先下载一个RabbitMQ wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.8/rabbitmq-server-3.6.8-1.el7.noarch.rpm 然后使用如下命令安装 rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc yum install rabbitmq-server-3.6.8-1.el7.noarch.rpm rpm -i --nodeps rabbitmq-server-3.6.8-1.el7.noarch.rpm 启动RabbitMQ /sbin/service

一男子激动地安装了RabbitMQ,看完博文后笑容没了

 ̄綄美尐妖づ 提交于 2020-02-26 11:46:27
一个事物总是会关联着很多事物。 要了解RabbitMQ,先了解 AMQP,要了解AMQP,先了解MQ。 (1)MQ Message Queue 消息队列,简称MQ,用于跨进程之间的上下游非实时通信。此处的上下游是平行关系。 MQ适用场景:上下游之间需要进行低频、非实时通信、上下游之间业务不相互依赖。 MQ不适用场景:高频、实时、上下游相互依赖、耦合。此时用方法调用的方式。(方法调用或远程调用)。 MQ是一种技术的统称。 (2) AMQP 一种应用层协议,专用用于消息通信,算是一个RFC标准(HTTP1.1 定义在RFC2616中)。应用层协议不需要了解太多。只需要了解OSI七层模型中,TCP和UDP 位于传输层,基于TCP/UDP之上的协议后来都是应用层协议。 这些协议的区别在我看来无非就是长连接、短链接,报文协议格式不同而已。既如此,理解HTTP就够了。AMQP、RSTP、MQTT、FTP、WebSocket、SMTP... 这些协议,有需求再去理解。一般也不用去理解,会有对应的框架和技术来屏蔽各种协议,让你面向对象或者面向API开发。 AMQP是一种通信协议。 (3)RabbitMQ Tomcat,Nginx,Apache 都按照HTTP协议去实现,所以它们的相同点就是都是HTTP服务器。RabbitMQ是一种实现了AMQP协议的软件程序。自然叫做消息服务器

CentOS下安装rabbitMQ

久未见 提交于 2020-02-26 11:28:52
1. 安装erlang : yum install erlang 2. 安装rabbitmq-server : yum install rabbitmq-server 3. 启动rabbitmq-server : service rabbitmq-server start 4. 启动管理控制台: cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.1.5/sbin (cd到rabbitmq_server的sbin所在目录) 执行: ./rabbitmq-plugins enable rabbitmq_management ./rabbitmqctl start_app 5. 访问: http://{ip}:15672 界面如下: 初始化用户名:guest 密码:guest 来源: oschina 链接: https://my.oschina.net/ghw/blog/3157792

Teuthology平台部署手册

心已入冬 提交于 2020-02-26 11:07:31
Teuthology架构 自动化测试框架流程大致如下: 软件组成 Teuthology 测试框架所使用到的软件组成如下: Jenkins 持续集成工具 teuthology Ceph 测试套件 shaman 查询提供软件包的 chacra 节点,水平扩展和调度 chacra 节点 chacra 提供不同架构二进制包或文件的管理 REST API 接口 Teuthology部署 部署paddles/pulpito node 安装依赖 yum install git python-dev python-virtualenv postgresql postgresql-contrib postgresql-server-dev-all supervisor gcc epel-release 配置postgresql数据库 初始化数据库 postgresql-setup initdb systemctl start postgresql //启动数据库 systemctl enable postgresql postgresql安装并启动后,会自动生成postgres用户 su - postgres //进入该用户 -bash-4.2$ psql //进入数据库 postgres=# \password postgres //更改用户postgres的密码 //按照输出的提示输入密码即可

【SpringBoot MQ 系列】RabbitMq 核心知识点小结

早过忘川 提交于 2020-02-26 10:24:15
【MQ 系列】RabbitMq 核心知识点小结 以下内容,部分取材于官方教程,部分来源网络博主的分享,如有兴趣了解更多详细的知识点,可以在本文最后的文章列表中获取原地址 RabbitMQ 是一个基于 AMQP 协议实现的企业级消息系统,想要顺畅的玩耍的前提是得先了解它,本文将主要介绍 rabbitmq 的一些基本知识点 特点 基本概念 消息投递消费的几种姿势 事务 集群 <!-- more --> I. 基本知识点 它是采用 Erlang 语言实现的 AMQP(Advanced Message Queued Protocol)的消息中间件,最初起源于金融系统,用在分布式系统存储转发消息,目前广泛应用于各类系统用于解耦、削峰 1.特点 首先得了解一下 rabbitmq 的特点,看看是否满足我们的系统需求(毕竟学习一个框架也是要不少时间的) 以下内容来自: MQ 和 RabbitMQ 作用特点 主要特点,大致可以归纳为以下几个 可靠性:通过支持消息持久化,支持事务,支持消费和传输的 ack 等来确保可靠性 路由机制:支持主流的订阅消费模式,如广播,订阅,headers 匹配等 扩展性:多个 RabbitMQ 节点可以组成一个集群,也可以根据实际业务情况动态地扩展集群中节点。 高可用性:队列可以在集群中的机器上设置镜像,使得在部分节点出现问题的情况下队仍然可用。 多种协议