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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MQ消息队列 -> 正文阅读

[大数据]MQ消息队列

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、MQ是什么?

MQ(Message Quene):翻译为|消息队列,通过典型的生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入轻松的实现系统间解耦。别名为消息中间件通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。

优缺点
解耦
雪要消息的系统自己从消息队列中订阅,从而在不修改系统的情况实现更多功能
异步
将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度
削峰
使用时慢慢从队列中拉取消息,从而减少前置服务高并发导致后置服务也高并发
缺点:
可用性降低
因为增加了消息中间件导致中间件出现问题的时候会出现服务不可用,稳定性下降
缺点
系统更加复杂
比如一致性问题、如何保证消息不被重复消费,如何保证保证消息可靠传输
在这里插入图片描述
jms和amqp的区别
1 通信平台的区别

JMS: 只允许基于JAVA实现的消息平台的之间进行通信
AMQP: 允许多种消息协议进行通信,比如ruby的storm和java的jms都可以在AMQP上进行通信。
结论: AMQP允许多种技术同时进行协议通信

2 通信机制的区别
JMS:消息生产者和消息消费者必须知道对方的Queue
AMQP: 消息生产者和消息消费者无须知道对方的Queue,消息生产者将Exchange通过Route key和任意Queue绑定。消息消费者通过Route key从任意Queue中获取Exchange.

3 消息传输机制的区别
JMS:JMS支持PTP和publis/subscribe机制,PTP只可以点对点通信,public/subscribe在一端发出请求后所有其他端收到消息
AMQP:1 所有RouteKey相同的Queue接受到数据
2 所有相同的Exchange的Queue接受到数据
3 所有wilecard的Exchange的Queue接受到数据
4 可以让webservice等接受到数据

在这里插入图片描述

二、使用步骤

inux中RabbitMQ安装教程
在做一个微服务项目时候用到消息队列,于是深入了解了消息队列知识,并在linux上安装了Rabbitmq,本博客介绍Rabbitmq的安装教程,想要深入了解消息队列相关知识,请参考博客:

  1. 更新基本系统
    安装任何软件包之前,建议使用以下命令更新软件包和存储库

yum -y update
2. 安装Erlang
由于RabbitMQ是基于Erlang(面向高并发的语言)语言开发,所以在安装RabbitMQ之前,需要先安装Erlang。在本教程中我们将安装最新版本的Erlang到服务器中。 Erlang在默认的YUM存储库中不可用,因此您将需要安装EPEL存储库。 运行以下命令相同。

yum -y install epel-release

yum -y update
安装Erlang

yum -y install erlang socat
您现在可以使用以下命令检查Erlang版本。

erl -version
您将得到如下输出:

[root@liptan-pc ~]# erl -version
Erlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 5.10.4
2. 安装RabbitMQ
RabbitMQ为预编译并可以直接安装的企业Linux系统提供RPM软件包。 唯一需要的依赖是将Erlang安装到系统中。 我们已经安装了Erlang,我们可以进一步下载RabbitMQ。 通过运行下载Erlang RPM软件包。

2.1 下载RabbitMQ
下载RabbitMQ

wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
如果你没有安装wget ,可以运行yum -y install wget 。 您可以随时找到最新版本的RabbitMQ下载页面的链接。

2.2 安装RabbitMQ
通过运行导入GPG密钥:

rpm –import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
运行RPM安装RPM包:

rpm -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpm
RabbitMQ现已经安装在系统上。

  1. 使用RabbitMQ
    运行

systemctl start rabbitmq-server
开机自启

systemctl enable rabbitmq-server
检查状态

systemctl status rabbitmq-server
4. 访问Web控制台
4.1 启动web控制台
启动RabbitMQ Web管理控制台,方法是运行:

rabbitmq-plugins enable rabbitmq_management
通过运行以下命令,将RabbitMQ文件的所有权提供给RabbitMQ用户:

chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
4.2 创建用户
现在,您将需要为RabbitMQ Web管理控制台创建管理用户。 运行以下命令相同。

rabbitmqctl add_user admin StrongPassword
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin “.” “.” “.*”
将管理员更改为管理员用户的首选用户名。 确保将StrongPassword更改为非常强大的密码。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-07 12:09:17  更:2021-08-07 12:11:52 
 
开发: 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/17 16:18:31-

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