前言

今天开始我们正式进入RabbitMQ系列学习,在这系列博客中也会发表.NET Core和EF Core文章,网上关于RabbitMQ例子比比皆是,我将综合网上所提供的信息并加上我个人的理解来详细介绍RabbitMQ,欢迎各位大佬指正我这个菜鸟。

RabbitMQ安装后启动

关于安装RabbitMQ就无需我再多言,网上例子比比皆是,这里只是列出在启动时可能存在的问题,我们从官网上下载并安装了对应应用程序后,都会有对应的操作快捷方式。

当安装完毕后,我们首先通过rabbitmqctl status命令来查看服务器状态。网上的所给服务器状态失败情况大部分原因可归纳为两个如下查看状态失败。

我们从上述第二张图中Current node details下三点可得知node name为rabbitmqcli41@wangpeng,@后面为我们电脑的计算机名称。而第二点和第三点得知此时Erlang cookie存在于C\Users\JeffckyWang文件目录下。为解决这个问题我们可首先从两个方面来快速定位问题,第一:保证C:\Windows和 C\Users\JeffckyWang下的.erlang.cookie要一致,如果不存在那就复制保证二者一致,如果依然不能解决问题,那就启用第二种方案。默认情况下安装RabbitMQ后会在服务中存在RabbitMQ,此时RabbitMQ的默认登录身份为本地账号,此时可能是账户不一致而导致,上述也有讲到根据第二张图中最后节点详细信息中第二点知,有效的用户账户为JeffckyWang,所以我们修改账户为JeffckyWang:

接下来再来运行rabbitmqctl status命令和rabbitmq-plugins enable rabbitmq_management命令启动RabbitMQ可视化界面。如果运行这两个命令没有出错,那么我们在浏览器中输入地址:http://localhost:15672,默认用户名和密码为guest,如下:

RabbitMQ介绍

消息传递是一种以可靠和可维护的方式解决不同系统之间通信的技术。我们可以有各种相互之间通信的平台比如Windows服务,基于Java servlet的Web服务,MVC Web应用程序等。消息传递旨在整合这些系统,以便它们可以以分离的方式交换信息即分布式。消息总线可能是消息传递基础结构中最重要的组件。它是协调在消息队列中发送和接收消息的机制。在此之前业界有许多解决消息传递的方法:Java消息传递服务,MSMQ,IBM MQ,但它们从未真正得到普及,因为基于这些技术的消息系统是复杂的,昂贵的,难以连接并且通常难以使用,而且他们没有遵循任何特定的消息传递标准;即每个供应商都有自己的标准,客户必须严格遵守。在小型项目中我们不需要用到事件总线,我们完全可采用代理调用接口的方式来进行,但是一旦项目大一点这个时候可能就需要考虑事件总线,为什么呢?我们拿常见用户注册可能需要用到发送邮件激活,对于当用户注册时,用户提交信息后调用代理接口来发送邮件,但是我们怎么能够保证代理是实时的呢,或者并发上来代理挂了,那么要发送的消息是不是就丢了呢?这将会造成重大事故,最重要的是这个操作是同步的,只有等发送完邮件回执时我们才能进行下一步操作,整个操作会造成堵塞,我们理想的情况是用户注册后,紧接着我们只需要发布一条激活邮件的消息,其他我们就不用再关心,完全不需要等待这个操作完成。

RabbitMQ是基于Erlang编程语言的高可用性开源消息框架。 “高可用性”意味着它在处理消息时不仅非常快速,而且还具有可扩展性。这是一个管理Web UI的服务,我们可以在多个服务器上进行安装。这些服务器然后作为一组消息代理一同启动。如果集群中的一台服务器出现故障,其他服务器仍然可以处理传入的消息。因此,它类似于部署在两台或更多台Web服务器上的Web应用程序,前端具有负载均衡器。默认情况下,RabbitMQ是实现高级消息队列协议(AMQP)的高可用性消息传递框架,AMQP是一个类似于HTTP的开放标准线级协议。它独立于任何特定的供应商,独立于任何特定的供应商这是最重要的一点,AMQP不是公司的专有协议,而是“在应用程序或组织之间传递业务信息的开放标准。它连接系统,为业务流程提供所需的信息,并可靠地传输实现其目标的指令。

总结

今天我们只是初略介绍了RabbitMQ,接下来我们正式进入RabbitMQ的学习,希望对您有些许帮助同时也能得到大佬们的批评指正,我们下节再会。

跟着小菜学习RabbitMQ启动和基础(系列一)的更多相关文章

  1. 小菜学习编程-Winform系列(初学者)

    前言 记得上次写<小菜的程序员道路(二)>,这篇文章的时候说过,要把工作以来整理的编程知识分享给大家,因为这半年来的工作实在是忙,现在也在忙着公司产品上线,但是答应的一定要实现,大家看我上 ...

  2. 【原创 深度学习与TensorFlow 动手实践系列 - 3】第三课:卷积神经网络 - 基础篇

    [原创 深度学习与TensorFlow 动手实践系列 - 3]第三课:卷积神经网络 - 基础篇 提纲: 1. 链式反向梯度传到 2. 卷积神经网络 - 卷积层 3. 卷积神经网络 - 功能层 4. 实 ...

  3. 深度学习基础系列(九)| Dropout VS Batch Normalization? 是时候放弃Dropout了

    Dropout是过去几年非常流行的正则化技术,可有效防止过拟合的发生.但从深度学习的发展趋势看,Batch Normalizaton(简称BN)正在逐步取代Dropout技术,特别是在卷积层.本文将首 ...

  4. 深度学习基础系列(五)| 深入理解交叉熵函数及其在tensorflow和keras中的实现

    在统计学中,损失函数是一种衡量损失和错误(这种损失与“错误地”估计有关,如费用或者设备的损失)程度的函数.假设某样本的实际输出为a,而预计的输出为y,则y与a之间存在偏差,深度学习的目的即是通过不断地 ...

  5. Java工程师学习指南第1部分:夯实Java基础系列

    点击关注上方"Java技术江湖",设为"置顶或星标",第一时间送达技术干货. 本文整理了微信公众号[Java技术江湖]发表和转载过的Java优质文章,想看到更多 ...

  6. Netty基础系列(3) --彻底理解NIO

    前言 上一节中我们提到了同步异步与阻塞非阻塞的区别,知道了同步并不等于阻塞.而本节的主角NIO是一种同步非阻塞的I/O模型,并且是I/O多路复用模型.NIO在java中被称为 New I/O.它并不能 ...

  7. python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda

    ---恢复内容开始--- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda 从头开启python的开发环境搭建.安装比较简单, ...

  8. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  9. JVM基础系列第14讲:JVM参数之GC日志配置

    说到 Java 虚拟机,不得不提的就是 Java 虚拟机的 GC(Garbage Collection)日志.而对于 GC 日志,我们不仅要学会看懂,而且要学会如何设置对应的 GC 日志参数.今天就让 ...

随机推荐

  1. python——模块与包2

    模块与包2 1 什么是包 包是一种通过使用.'模块名'来组织python模块名称空间的方式. 无论是import形式还是from...import形式,凡是在导入语句中(而不是在使用时)遇到带点的,都 ...

  2. python——re模块

    python--re模块 一 正则表达式的作用 1.给字符串进行模糊匹配, 2.对象就是字符串 二 字符匹配(普通字符.元字符) 普通字符:数字字符和英文字母和自身匹配 2.元字符:. ^ $ * + ...

  3. Hibernate(七):*.hbm.xml配置文件中Set三个属性

    背景: 在上一篇文章中实现双向关联时,其中在Customer.java中我们使用了java.util.List<Order>来关联多的Order.其实还有另外一种实现方法:使用java.u ...

  4. JavaScript实现轮播图(隔3秒显示一张图)

    <!DOCTYPE html><html> <head> <script> var time; function init(){ //获取div里面的东 ...

  5. PAT 1082. 射击比赛 (20)

    本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军:谁差得最远,谁就是菜鸟.本题给出一系列弹洞的平面坐标(x,y),请你编写程序找出冠军和菜鸟.我们假设靶心在原点(0,0). 输入 ...

  6. drupal 8 建立我的相册

    一.先建一个存图片的内容类型 1.创建内容类型 点击[结构]>[内容类型]>[+add content type] 点击[保存和管理字段] 2.添加字段 点击[+添加字段] 点击[保存并继 ...

  7. ActiveMQ(七)_伪集群和主从高可用使用(转)

    本文转自: https://www.cnblogs.com/gossip/p/5977489.html 一.本文目的         介绍如何在同一台虚拟机上搭建高可用的Activemq服务,集群数量 ...

  8. shell编程-项目部署(优化篇)

    在实际工作中小编遇到了一个问题那就是当我去操作部署脚本的时候,另一个人也可以操作,这怎么能行啊,后来小编就觉得重新优化下代码,给它加一个进程锁 老规矩,先梳理下思路: 同一时间内,脚本只能够允许一个人 ...

  9. 深入探索.NET框架内部了解CLR如何创建运行时对象

    原文地址:http://msdn.microsoft.com/en-us/magazine/cc163791.aspx 原文发布日期: 9/19/2005 原文已经被 Microsoft 删除了,收集 ...

  10. [AHOI2005]约数研究

    题目描述 科学家们在Samuel星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机“Samuel II”的长时间运算成为了可能.由于在去年一年的辛苦工作取得了不错的成绩,小联被允许用“Samu ...