IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> RabbitMQ简单案例 -> 正文阅读

[大数据]RabbitMQ简单案例

RabbitMQ简单案例

简单笔记

一、概述

抄的

1.1消息队列中间件简介
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性[架构] 使用较多的消息队列有 ActiveMQ(安全),RabbitMQ,ZeroMQ,Kafka(大数据),MetaMQ,RocketMQ
以下介绍消息队列在实际应用中常用的使用场景:异步处理,应用解耦,流量削锋和消息通讯四个场景
1.2什么是RabbitMQ
RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。
AMQP :Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。
RabbitMQ 最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。具体特点包括:
1.可靠性(Reliability)
RabbitMQ 使用一些机制来保证可靠性,如持久化、传输确认、发布确认。2.灵活的路由(Flexible Routing)
在消息进入队列之前,通过 Exchange 来路由消息的。对于典型的路由功能,RabbitMQ已经提供了一些内置的 Exchange 来实现。针对更复杂的路由功能,可以将多个Exchange 绑定在一起,也通过插件机制实现自己的 Exchange 。
3.消息集群(Clustering)
多个 RabbitMQ 服务器可以组成一个集群,形成一个逻辑 Broker
4.高可用(Highly Available Queues)
队列可以在集群中的机器上进行镜像,使得在部分节点出问题的情况下队列仍然可用。
5.多种协议(Multi-protocol)
RabbitMQ 支持多种消息队列协议,比如 STOMP、MQTT 等等。
6.多语言客户端(Many Clients)
RabbitMQ 几乎支持所有常用语言,比如 Java、.NET、Ruby 等等。
7.管理界面(Management UI)
RabbitMQ 提供了一个易用的用户界面,使得用户可以监控和管理消息 Broker 的许多方面。
8.跟踪机制(Tracing)
如果消息异常,RabbitMQ 提供了消息跟踪机制,使用者可以找出发生了什么。
9.插件机制(Plugin System)
RabbitMQ 提供了许多插件,来从多方面进行扩展,也可以编写自己的插件。

二、安装 window版本

安装准备工具(备用的,因为是别人的。我没用。未验证)
1.下载Eralng,底下连接已提供otp_win64_20.2.exe
链接: https://pan.baidu.com/s/1ha-OGMa9AGZFamELP_b48w.
提取码:3gpa
2.下载rabbitmq,底下链接已提供rabbitmq-server-3.7.4.exe
链接: https://pan.baidu.com/s/1kGMjBc_H1QWRPEs8dRYaHA .
提取码:vzar

为甚安装RabbitMQ需要安装 Erlang OTP

因为rabbitmq服务器是由Erlang语言编写的,所以需要先安装erlang环境:

用的这个
RabbitMQ官网,安装时会跳转 Erlang OTP页面https://www.rabbitmq.com/install-windows.html#installer

原文链接:https://blog.csdn.net/qq_47588845/article/details/107986373 安装用的

ps: rabbitmq-plugins enable rabbitmq_management、

访问地址:

http://127.0.0.1:15672

name: guest

pwd: guest

linux版本教程(未验证

? https://blog.csdn.net/aurora125/article/details/115693701

三、使用

注意:使用有很多方法,本次所用的是amqp。有时间继续探讨其他方法。

分为生产者和消费者

1、加入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

2、主程序中(启动程序)加入创建队列

//新建一个用来封装队列参数的对象,放入spring容器
//rabbitmq自动配置类会发现这个对象,使用其中的参数
//来创建队列
@Bean
public Queue orderQueue() {
    //第一个参数为队列名,第二个 参数持久化(队列在服务重启后存活)
    return new Queue("Hello", true);
   
}
@Bean
public Queue nidaye() {
    //多队列
    return new Queue("nidaye", true);
}

Queue(String name, boolean durable, boolean exclusive, boolean autoDelete, Map<String, Object> arguments)

name: 队列名称

durable : 持久化

exclusive : 声明排他队列,只能被声明者使用

autoDelete : 服务器删除队列不再使用

arguments: 用于声明队列的参数

3、创建生产者

 	@Autowired
    private AmqpTemplate t;

    @PostMapping("/producer")
    public void producer() {
        t.convertAndSend("nidaye", "你大爷");
        t.convertAndSend("Hello","我是你爸爸");
        System.out.println("我执行了");
    }

4、创建消费者

import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

//队列名,千万不要写错
@RabbitListener(queues = "Hello")
@Component
public class consumerController {

    @RabbitHandler  //配合 Rabbitlistener,制定处理信息的方法
    //队列中参数的类型
    public void receive(String msg) {
        System.out.println(msg);
    }
}
5、结果

在这里插入图片描述

仅为本菜鸟笔记。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-15 23:47:47  更:2021-07-15 23:48:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 19:26:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码