热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RabbitMQ基础教程(1)HelloWorld

RabbitMQ基础教程(1)–HelloWorld注:本文是对浩瀚博客的进修和总结,能够存在明白毛病。请带着疑心的眼力,同时假如有毛病希望能指出。假如你喜欢我的文章,能够关注我的
RabbitMQ 基础教程(1) – Hello World

注:本文是对浩瀚博客的进修和总结,能够存在明白毛病。请带着疑心的眼力,同时假如有毛病希望能指出。

假如你喜欢我的文章,能够关注我的私家博客:http://blog-qeesung.rhcloud.com/

RabbitMQ是一个message broker,音讯的临盆者(producer)担任临盆音讯,然后将音讯传入传入queue(音讯行列)消耗者(consumer)从音讯行列中掏出音讯举行处置惩罚。

简朴来讲,音讯行列就像邮局一样,我们将信封(音讯)投递到邮局的信筒,然后信差依据信封上面的地点将信封投递到对应的地点(消耗者)。

以下所示:

queue
+---------------+ +--+--+--+--+--+--+--+ +---------------+
| producer |-----> |m1|m2| ... | | | |------>| consumer |
+---------------+ +--+--+--+--+--+--+--+ +---------------+

装置RabbitMQ

RabbitMQ是基于Erlang来开辟的,起首装置Erlang的运转环境

装置Erlang

Erlang官网下载并装置

装置RabbitMQ

RabbitMQ官网下载并装置

设置RabbitMQ

博主实在也是RabbitMQ小白,敕令行东西不太熟悉,光荣的是RabbitMQ为我们供应web设置页面,然则要举行一些简朴的设置。

  • 翻开RabbitMQ Command Prompt 或 直接经由过程cmd进入到RabbitMQ Server的装置目录下的rabbitmq_server-*/sbin途径

  • 实行下面的敕令:

rabbitmq-plugins.bat enable rabbitmq_management
rabbitmq-service.bat stop
rabbitmq-service.bat install
rabbitmq-service.bat start

  • 末了在http://localhost:15672/就能够接见RabbitMQ为我们搭建起来的Web服务器,初始化用户名和暗码是guestguest
    《RabbitMQ 基础教程(1) - Hello World》

Hello World 例子

RabbitMQ支撑多种语言,包含Python,PHP,nodejs等等,我们这里的例子就采纳Nodejs

装置RabbitMQ

npm install amqplib

这里我们起首将音讯推入行列,然后消耗者从行列中去除音讯举行消耗。

临盆音讯

var amqp = require('amqplib/callback_api');
// 连接上RabbitMQ服务器
amqp.connect('amqp://localhost', function(err, conn) {
conn.createChannel(function(err, ch) {
var q = 'hello';
// 声明行列,然后将行列中的音讯耐久化作废
ch.assertQueue(q, {durable: false});
// 将字符串存入Buffer中,并推入行列
ch.sendToQueue(q, new Buffer('Hello World!'));
console.log(" [x] Sent 'Hello World!'");
});
});
/**
$ node rabbit-producer.js
[x] Sent 'Hello World!'
*/

如今音讯已发送到RabbitMQ的行列中

《RabbitMQ 基础教程(1) - Hello World》

消耗音讯

var amqp = require('amqplib/callback_api');
amqp.connect('amqp://localhost', function(err, conn) {
conn.createChannel(function(err, ch) {
var q = 'hello'; // 声明已存在的行列
ch.assertQueue(q, {durable: false});
console.log(" [*] Waiting for messages in %s. To exit press CTRL+C", q);
// 监听行列上面的音讯
ch.consume(q, function(msg) {
console.log(" [x] Received %s", msg.content.toString());
}, {noAck: true});
});
});
/**
$ node rabbit-consumer.js
[*] Waiting for messages in hello. To exit press CTRL+C
[x] Received Hello World!
*/

《RabbitMQ 基础教程(1) - Hello World》

在本文中学问引见了RabbitMQ的一些基础学问,RabbitMQ另有一些庞杂东西,我们将会在后面的文章中一一引见。


推荐阅读
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • 本文档介绍了如何在Visual Studio 2010环境下,利用C#语言连接SQL Server 2008数据库,并实现基本的数据操作,如增删改查等功能。通过构建一个面向对象的数据库工具类,简化了数据库操作流程。 ... [详细]
  • 2017-2018年度《网络编程与安全》第五次实验报告
    本报告详细记录了2017-2018学年《网络编程与安全》课程第五次实验的具体内容、实验过程、遇到的问题及解决方案。 ... [详细]
  • Google排名优化-面向Google(Search Engine Friendly)的URL设计 ... [详细]
  • 本文详细介绍了Java中实现异步调用的多种方式,包括线程创建、Future接口、CompletableFuture类以及Spring框架的@Async注解。通过代码示例和深入解析,帮助读者理解并掌握这些技术。 ... [详细]
  • 本文详细介绍了如何解压并安装MySQL集群压缩包,创建用户和组,初始化数据库,配置环境变量,并启动相关服务。此外,还提供了详细的命令行操作步骤和常见问题的解决方案。 ... [详细]
  • 远程过程调用(RPC)是一种允许客户端通过网络请求服务器执行特定功能的技术。它简化了分布式系统的交互,使开发者可以像调用本地函数一样调用远程服务,并获得返回结果。本文将深入探讨RPC的工作原理、发展历程及其在现代技术中的应用。 ... [详细]
  • Spring Cloud学习指南:深入理解微服务架构
    本文介绍了微服务架构的基本概念及其在Spring Cloud中的实现。讨论了微服务架构的主要优势,如简化开发和维护、快速启动、灵活的技术栈选择以及按需扩展的能力。同时,也探讨了微服务架构面临的挑战,包括较高的运维要求、分布式系统的复杂性、接口调整的成本等问题。最后,文章提出了实施微服务时应遵循的设计原则。 ... [详细]
  • Spring Cloud Config 使用 Vault 作为配置存储
    本文探讨了如何在Spring Cloud Config中集成HashiCorp Vault作为配置存储解决方案,基于Spring Cloud Hoxton.RELEASE及Spring Boot 2.2.1.RELEASE版本。文章还提供了详细的配置示例和实践建议。 ... [详细]
  • 前言无论是对于刚入行工作还是已经工作几年的java开发者来说,面试求职始终是你需要直面的一件事情。首先梳理自己的知识体系,针对性准备,会有事半功倍的效果。我们往往会把重点放在技术上 ... [详细]
  • 字节跳动夏季招聘面试经验分享
    本文详细记录了字节跳动夏季招聘的面试经历,涵盖了一、二、三轮面试的技术问题及项目讨论,旨在为准备类似面试的求职者提供参考。 ... [详细]
  • java程序员_Java程序员最新职业规划,逆袭面经分享
    java程序员_Java程序员最新职业规划,逆袭面经分享 ... [详细]
  • 配置PHPStudy环境并使用DVWA进行Web安全测试
    本文详细介绍了如何在PHPStudy环境下配置DVWA( Damn Vulnerable Web Application ),并利用该平台进行SQL注入和XSS攻击的练习。通过此过程,读者可以熟悉常见的Web漏洞及其利用方法。 ... [详细]
  • 深入理解 JMeter 定时器
    本文详细介绍了JMeter中定时器的功能和使用方法,探讨了其在性能测试中的重要性,并结合实际案例解释了如何合理配置定时器以模拟真实的用户行为。文章还涵盖了定时器的执行顺序及其与其他元件的相互作用。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
author-avatar
我就唔分_753
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有