【学相伴】狂神说RabbitMQ笔记(简单使用RabbitMQ)

【学相伴】狂神说RabbitMQ笔记(简单使⽤RabbitMQ)
⽬录
什么是rabbitMQ
RabbitMQ是⼀个由erlang开发的AMQP(Advanced Message Queue ⾼级消息队列协议 )的开源实现,能够实现异步消息处理
RabbitMQ是⼀个消息代理:它接受和转发消息。
你可以把它想象成⼀个邮局:当你把你想要发布的邮件放在邮箱中时,你可以确定邮差先⽣最终将邮件发送给你的收件⼈。在这个⽐
喻中,RabbitMQ是邮政信箱,邮局和邮递员。
RabbitMQ和邮局的主要区别在于它不处理纸张,⽽是接受,存储和转发⼆进制数据块
优点:异步消息处理
业务解耦(下订单操作:扣减库存、⽣成订单、发红包、发短信),将下单操作主流程:扣减库存、⽣
液氨是怎么生产的成订单然后通过MQ消
息队列完成通知,发红包、发短信
错峰流控 (通知量 消息量 订单量⼤的情况实现MQ消息队列机制,淡季情况下访问量会少)
灵活的路由(Flexible Routing)
在消息进⼊队列之前,通过 Exchange 来路由消息的。对于典型的路由功能,RabbitMQ 已经提供了⼀些内置的 Exchange 来实现。针对更复杂的路由功能,可以将多个 Exchange 绑定在⼀起,也通过插件机制实现⾃⼰的 Exchange 。
RabbitMQ⽹站端⼝号:15672
程序⾥⾯实现的端⼝为:5672
使⽤docker安装RabbitMQ,如果没有使⽤过docker的可以看这篇⽂章
1.拉取RabbitMQ镜像
docker pull rabbitmq:management
2.运⾏RabbitMQ镜像
docker run -itd --name rabbit01 --hostname myrabbit -e RABBITMQ_DEFAULT_USER=chenjinxian -e RABBITMQ_DEFAULT_PASS=chenjinxian -p 15672:15672
注意:RABBITMQ_DEFAULT_USER=chenjinxian -e RABBITMQ_DEFAULT_PASS=chenjinxian
连通域这⾥设置的是(RABBITMQ_DEFAULT_USER)登录的账号和( RABBITMQ_DEFAULT_PASS)密码,根据⾃⾝来修改
这⾥看到容器已经开启成功了,然后就可以使⽤了
3.通过浏览器打开
如果你使⽤的是本地虚拟机,那么你直接使⽤虚拟机显⽰的ipv4地址加端⼝号就可以访问了;
如果你使⽤的是云服务器,那么你需要在对应服务器(阿⾥云,腾讯云等)的安全组中开放15672端⼝,并且在防⽕墙中也开放15672端⼝
显⽰如上图那么就可以开始使⽤了
然后通过命令进⼊rabbitmq容器
隔离桩docker exec -it rabbit01 /bin/bash
授权账号和密码
rabbitmqctl add_user admin admin
设置⽤户分配操作权限
rabbitmqctl set_user_tags admin administrator
⽤户级别:
1. administrator:可以登录控制台、查看所有信息、可以对 rabbitmq进⾏管理
2. monitoring:监控者 登录控制台,查看所有信息
3. policymaker:策略制定者 登录控制台,指定策略
4. managment 普通管理员 登录控制台
为⽤户添加资源权限
rabbitmqctl set_permissions -p / admin ".*"".*"".*"
也可以在界⾯操作进⾏添加⽤户
RabbitMQ⽀持的消息模型
1.简单模式 Simple
2.⼯作模式 Work
3.发布订阅模式
4.路由模式
5.主题 Topic模式
电子数据系统
6.参数模式
7.出版商确认模式
1.⼊门案例
蝈蝈罐
1. RabbitMQ⼊门案例 - Simple 简单模式
1. jdk1.8
2. 构建⼀个 maven⼯程
3. 定义⽣产者
4. 定义消费者
5. 观察消息的在 rabbitmq-server服务中的进程
01 构建⼀个maven⼯程
02 导⼊依赖
<dependencies>
<!--导⼊rabbitmq的依赖-->
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>5.13.0</version>
天网搜索
</dependency>
</dependencies>
3.代码编写
在上图的模型中,有以下概念:
1. ⽣产者,也就是要发送消息的程序
2. 消费者:消息的接受者,会⼀直等待消息到来。
3. 消息队列:图中红⾊部分。类似⼀个邮箱,可以缓存消息;⽣产者向其中投递消息,消费者从其中取出消息。⽣产者
package com.chen.rabbitmq.simple;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.MessageProperties;
/**
* @description: 简单模式Simple
*/
public class Producer {

本文发布于:2024-09-22 05:39:21,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/183650.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:消息   实现   控制台   登录   操作   模式   队列
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议