一、为什么使用RabbitMQ

只要写入数据库就响应给用户,用户体验比较好,发送邮件和短信就慢慢发

1.1串行方式

1.2 并行方式

开两个线程快一些

1.3 消息队列(这种最好)

彻底分开为两个程序

一个程序往队列里放消息,只负责把消息写入数据库;

另一个程序就等待处理消息,拿到消息去发邮件或者发短信。

只要消息写入消息队列,就算注册成功。

1.4 作用

  • 应用解耦:写数据库和发送短信邮件分开

  • 流量削峰:流量高的时候不要一起处理,都放到消息队列里,拿一个处理一个,就不会丢数据了,解决了数据库连接数量不足

二、主流消息中间件

2.1 ActiveMQ

比较老的中间件,只能用java连接

2.2 KAFKA

大数据方面用的

2.3 RocketMQ

阿里,收费,部分免费

2.4 RabbitMQ

AMQP(advanced高级 message消息 queue队列 protocol协议)什么语言都能用,JMS只有java能用

三、RabbitMQ核心概念及AMQP协议

3.1 RabbitMQ高性能的原因

Erlang语言最初在于交换机领域的架构模式,这样使得RabbitMQ在Broker之间进行数据交互的性能是非常优秀的

3.2 AMQP高级消息队列协议

3.3 AMQP协议模型

3.4 AMQP核心概念

3.5 RabbitMQ的整体架构

四、安装(linux)

开端口:图形界面管控台端口15672,接收消息端口5672

4.1 安装包

4.2 默认guest只能本机访问,修改配置

vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.7.16/ebin/rabbit.app

4.3 管理插件

查看默认插件

rabbitmq-plugins list

安装

rabbitmq-plugins enable rabbitmq_management

4.4 服务启动和停止

systemctl start rabbitmq-server
systemctl stop rabbitmq-server
systemctl restart rabbitmq-server

4.5 开端口

15672 图形界面管控台的端口

5672 接收消息的端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

4.6访问

要用linux的ip加端口号

五、安装(windows)

6.1

ELNAG配置环境变量

6.2装RabbitMQ

6.3安装插件

六、使用(HelloWorld模式)

每个操作都有命令

windows:图形界面可以自定义操作

6.1原生api简单示例

一个生产者和一个消费者,这种效率比较低

我们写这种简单模式,不需要将交换机与队列进行绑定

6.1.1 生产者publish

正常是两个程序,一个生产者一个消费者,我们测试就写在一个程序里面

后面都是操作channel

声明队列

就是操作界面这些属性

发送消息给队列,注意:交换机不能写成null,可以写成""

关闭资源

6.1.2 消费者consumer

队列定义在一边即可,不用两边都写

如果定义在消费者一边,生产者有的属性不能用,否则会报错,先启动消费者,就没问题了

持久化队列,重新启动还有没有队列,其实意义不大,一般消息都会及时处理

后面两个独占和自动删除肯定是false,实际应用没啥意义

自动回复,只要进了方法体,即使出现了错误或者没有处理完,所有消息都会丢失,它会默认把所有消息都丢给你。所以一般不使用,都用手动处理

RabbitMQ-1-概念及简单应用相关推荐

  1. 深入了解RabbitMQ工作原理及简单使用

    深入了解RabbitMQ工作原理及简单使用 RabbitMQ系列文章 RabbitMQ在Ubuntu上的环境搭建 深入了解RabbitMQ工作原理及简单使用 RabbitMQ交换器Exchange介绍 ...

  2. 深入解读RabbitMQ工作原理及简单使用

    深入解读RabbitMQ工作原理及简单使用 RabbitMQ系列目录 RabbitMQ在Ubuntu上的环境搭建 深入解读RabbitMQ工作原理及简单使用 Rabbit的几种工作模式介绍与实践 Ra ...

  3. RabbitMQ 基本概念与高级特性

    文章目录 1. 什么是消息队列 1.1 消息队列概述 1.2 使用消息队列的优势 1.3 使用消息队列的劣势 1.4 常见的消息队列产品对比 2. RabbitMQ 基本概念 2.1 RabbitMQ ...

  4. (2)RabbitMQ基础概念及工作流程详解

    上一节中我们对MQ做了一个概要介绍,这一节开始我们选取RabbitMQ开始进行学习,本节将会RabbitMQ做个简单介绍,并且会对其常见的基础概念做个讲解,最后会简单介绍一下RabbitMQ的工作流程 ...

  5. tensorflow笔记:流程,概念和简单代码注释

    tensorflow是google在2015年开源的深度学习框架,可以很方便的检验算法效果.这两天看了看官方的tutorial,极客学院的文档,以及综合tensorflow的源码,把自己的心得整理了一 ...

  6. RabbitMQ基本概念(一)-RabbitMQ的优劣势及产生背景

    本篇并没有直接讲到技术,例如没有先写个Helloword.我想在选择了解或者学习一门技术之前先要明白为什么要现在这个技术而不是其他的,以免到最后发现自己学错了.同时如果已经确定就是他,最好先要了解下技 ...

  7. RabbitMQ六种队列模式-简单队列模式

    前言 RabbitMQ六种队列模式-简单队列 [本文] RabbitMQ六种队列模式-工作队列 RabbitMQ六种队列模式-发布订阅 RabbitMQ六种队列模式-路由模式 RabbitMQ六种队列 ...

  8. 计算机基本概念及简单的二进制运算

    计算机基本概念及简单的二进制运算 ----------------------------------------------------------------------------------- ...

  9. REST API 概念的简单介绍

    REST API 概念的简单介绍 最近发现很多人不了解REST是什么,我综合了下网上的文章,摘录了一下. 首先要明确一点:REST(Representational State Transfer,表述 ...

  10. RabbitMQ 幂等性概念及业界主流解决方案

    RabbitMQ 幂等性概念及业界主流解决方案 参考文章: (1)RabbitMQ 幂等性概念及业界主流解决方案 (2)https://www.cnblogs.com/shoshana-kong/p/ ...

最新文章

  1. opencv中LUT函数实现颜色空间缩减
  2. android fps 垂直同步,浅谈Android流畅度
  3. 灵感编程:最大公约数算法解析
  4. 【转】sharepoint foundation 2013升级sp1补丁后无法使用搜索功能
  5. tf.graph函数
  6. python学习第六天运算符总结大全
  7. 常用youtube快捷键,让看视频学技术起飞
  8. fiddler抓包史上最完整细致的步骤(抓包微信小程序解决无法Iphone无法上网)
  9. windows使用choco安装cmake
  10. C语言规定 程序中各函数之间_,C语言规定,程序中各函数之间________。 答案:既允许直接递归调用也允许间接递归调用...
  11. Matlab中int2str函数使用
  12. 车牌识别,车辆检测,车牌检测和识别,与车相关的点点滴滴
  13. mysql 定时任务 每月15号执行
  14. c# 获取照片的经纬度和时间
  15. 【K-S检验】检验两个数据集的分布是否一致
  16. 电磁兼容RS485接口EMC电路设计方案
  17. codeforces1000a csdn-博客
  18. 布局云计算的下一个主场,紫光云引领行业云三大趋势
  19. 生化危机6pc测试软件,《生化危机6》PC性能测试 移植作一贯不忍直视
  20. CMS识别、CDN探测和Waf识别技术总结

热门文章

  1. 博学谷python_2020年最新博学谷Python基础班,资源教程下载
  2. Dopamine-PEG-N3,DOPA-PEG-azide,水溶性PEG试剂供应
  3. python中的pickle是什么意思_python中pickle模块浅析
  4. mysql 查询成绩排名_mysql 学生成绩查询排名
  5. 波士顿房价预测的TensorFlow实现(多元线性回归)
  6. kubernetes源码剖析读后感(一)
  7. 超级详细!!!Spring、SpringMVC、Mybatis知识点完整版更新!IOD、DI依赖注入、Mybatis配置、SQL、MVC拦截器、Web开发、SSM整合案例。
  8. Python爬虫贴吧内容
  9. uniapp uview-ui退出登录后重新登录token不是最新的解决方案
  10. 怎么加网上的精准引流?精准引流有没有小技巧?